LoginSignup
3
0

More than 5 years have passed since last update.

SendGridで改行が消えた/増えた場合の対応

Posted at

改行が消えている場合

原因

SendGridのデフォルト設定ではプレーンテキストを自動的にHTML化するようになっており、変換時に改行コードが削除されてしまう。

対策

SendGridにログインして、「Setting」→「Mail Settings」→「Plain Content」をONにして”INACTIVE”から”ACTIVE”に変更すればプレーンテキストのまま送信するようになる。

改行が増えている場合

原因

SendGridの設定を変更してプレーンテキストで送信するようにしても、CakePHP3のEmailクラスを利用してメール送信すると1つの改行が2つに増えてしまう事象が発生した。

今回はcharsetを"UTF-8"として送信したいのだが、Emailクラスではcharsetが"UTF-8"の場合にはContent-Transfer-Encodingを"8bit"とするようになっている。

SendGridのサポートページによると、

歴史的経緯から、メールサーバの中には7bitエンコードしか扱えないものが存在します。このため、Content-Transfer-Encodingに8bitが指定された場合、SendGrid側で自動的にquoted-printableに変換します。この際、余分な改行が追加される場合があります。

とのことでこちらの事象が発生している。

対策

Emailクラス自体には本文のエンコード方法(=Content-Transfer-Encoding)を変更する手段がなさそうなので、こちらの記事を参考にbase64でエンコードするクラスを別途用意してそちらを使う事で解決が出来た。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0