@@ -405,21 +405,6 @@ defmodule Mail.Parsers.RFC2822 do
405
405
defp decode_header_value ( _key , % DateTime { } = datetime , _opts ) ,
406
406
do: datetime
407
407
408
- defp decode_header_value ( "received" , value , _opts ) ,
409
- do: value
410
-
411
- defp decode_header_value ( _key , [ value | [ param | _params ] = params ] , opts )
412
- when is_binary ( value ) and is_tuple ( param ) do
413
- decoded = parse_encoded_word ( value , opts )
414
- params = Enum . map ( params , fn { param , value } -> { param , parse_encoded_word ( value , opts ) } end )
415
- [ decoded | params ]
416
- end
417
-
418
- defp decode_header_value ( _key , { name , email } , opts ) do
419
- decoded = parse_encoded_word ( name , opts )
420
- { decoded , email }
421
- end
422
-
423
408
defp decode_header_value ( key , addresses , opts )
424
409
when key in [ "to" , "cc" , "from" , "reply-to" ] and is_list ( addresses ) do
425
410
addresses =
@@ -435,8 +420,28 @@ defmodule Mail.Parsers.RFC2822 do
435
420
addresses
436
421
end
437
422
423
+ defp decode_header_value ( "from" , { _name , _address } = value , opts ) do
424
+ [ from ] = decode_header_value ( "from" , [ value ] , opts )
425
+ from
426
+ end
427
+
438
428
defp decode_header_value ( "from" , value , _opts ) , do: value
439
429
430
+ defp decode_header_value ( "received" , value , _opts ) ,
431
+ do: value
432
+
433
+ defp decode_header_value ( _key , [ value | [ param | _params ] = params ] , opts )
434
+ when is_binary ( value ) and is_tuple ( param ) do
435
+ decoded = parse_encoded_word ( value , opts )
436
+ params = Enum . map ( params , fn { param , value } -> { param , parse_encoded_word ( value , opts ) } end )
437
+ [ decoded | params ]
438
+ end
439
+
440
+ defp decode_header_value ( _key , { name , email } , opts ) do
441
+ decoded = parse_encoded_word ( name , opts )
442
+ { decoded , email }
443
+ end
444
+
440
445
defp decode_header_value ( _key , value , opts ) do
441
446
parse_encoded_word ( value , opts )
442
447
end
0 commit comments