ec-cube icon indicating copy to clipboard operation
ec-cube copied to clipboard

メールが Quoted-printable だけど、Base64 の方が良くない? (再)

Open seasoftjapan opened this issue 3 years ago • 3 comments

概要(Overview)

Q だと、設定している店名によってはエンコード後の文字列が非常に長くなり、MTA が From: を途中でぶった切るケースがあった。このパターンだと、リレー先の MTA によっては、拒否されることもある。 他にも、Name をオミットして、メールアドレスだけでリレーするケースもあった。

ただ、Swift_Mime_HeaderEncoder_QpHeaderEncoder はマルチバイトを適切に処理できない気がするので、一筋縄ではいかないかも。PHP の生関数で、簡単に処理できた気もしたけど、記憶違いかも。

環境 (environment)

  • EC-CUBE: 4.0.3
    • swiftmailer/swiftmailer は v6.3.0 に更新。
  • PHP: 7.2.26

seasoftjapan avatar Feb 23 '22 10:02 seasoftjapan

発生した経緯から MTA が切っていると思っていましたが、Swift の処理時点で切っている予感もしてきました。

// パターン1 長いと途中で (エンコード後256バイトで?) ぶった切る【悪質】
->setFrom(['[email protected]' => 'ながーーーーーーーーーーーーーーい店舗名'])

/*
配信されたヘッダー
From: =?utf-8?Q?=E3=81=AA=E3=81=8C=E3=83=BC=E3=83=BC?=
 =?utf-8?Q?=E3=83=BC=E3=83=BC=E3=83=BC=E3=83=BC?=
 =?utf-8?Q?=E3=83=BC=E3=83=BC=E3=83=BC=E3=83=BC?=
 =?utf-8?Q?=E3=83=BC=E3=83=BC=E3=83=BC=E3=83=BC?=
 =?utf-8?Q?=E3=81=84=E5=BA=97=E8=88=97=E5=90=8D?= <foo.ba
*/
// パターン2 もっと長いと Name がオミットされる
->setFrom(['[email protected]' => 'ながーーーーーーーーーーーーーーーーい店舗名'])

/*
配信されたヘッダー
From: <[email protected]>
*/

seasoftjapan avatar Feb 24 '22 05:02 seasoftjapan

確か、From は SwiftMailer が切っていたと思います

SwiftMailer が deprecated になっているので、 https://symfony.com/blog/the-end-of-swiftmailer Symfony mailer の導入に倂せて検討すると良いかもしれませんね https://symfony.com/doc/current/mailer.html

nanasess avatar Feb 25 '22 00:02 nanasess

現状では店舗名が固定で入るようになっているので、メール件名のフォーマット化など制御できる方法があってもよいかもしれませんね。

chihiro-adachi avatar Mar 02 '22 04:03 chihiro-adachi