Posted at

SendGridでメールを送信する時に改行が上手くいかない時の対処法

More than 1 year has passed since last update.


SendGridでメールを送信する時に改行が上手くいかない時の対処法

SendGridを介してメールを送信する時に、Contentをplain/textにしていると意図した改行がなされないとことがある。その時の対処法を記す。

対処法と言っても、非常に簡単な設定を行うだけである。


生じる問題

例えば、以下のような改行コードを入れた文字列の場合に生じる(SendGridのAPIを叩くためのJSONの一部を抜粋)

Content: []Contents{{

Type: "text/plain”,
Value: "アイウエオ\nカキクケコ\nサシスセソ",}},

この場合、メールで送信されてくる中身は、以下のようなものを期待している

expected_mail_screen.png

しかし、デフォルトの設定のままだと以下のような内容が送信されてくる

actual_mail_screen.png


問題が生じる原因

SendGridの Plain Content: Convert your plain text emails to HTML .という設定が、OFFになっているために生じる。(Settings > Mail Settings > Plain ContentのACTIVE)

これは、その設定の説明の通り、plain text のメールをSendGridがHTMLに変換してくれるというものである。

これがあるために、改行コードが無視されたHTML形式に変換されメールが送信されるので、先ほどのような問題が生じる。

plain_text_off.png


解決策

Plain Content: Convert your plain text emails to HTML (Settings > Mail Settings > Plain ContentのACTIVE)の設定を「ON」にすれば良い

若干ややこしいが、「OFF」にしていると、plain text のメールをSendGridがHTMLに自動で変換されるようになってしまう。

plain_text_on.png


関連記事

Go言語でSendGrid Web API v3を使って、メールを送信する

GCE上のGoのコードからSendGridを使用してメールを送信