SendGridでメールを送信する時に改行が上手くいかない時の対処法
SendGridを介してメールを送信する時に、Contentをplain/textにしていると意図した改行がなされないとことがある。その時の対処法を記す。
対処法と言っても、非常に簡単な設定を行うだけである。
生じる問題
例えば、以下のような改行コードを入れた文字列の場合に生じる(SendGridのAPIを叩くためのJSONの一部を抜粋)
Content: []Contents{{
Type: "text/plain”,
Value: "アイウエオ\nカキクケコ\nサシスセソ",}},
この場合、メールで送信されてくる中身は、以下のようなものを期待している
しかし、デフォルトの設定のままだと以下のような内容が送信されてくる
問題が生じる原因
SendGridの Plain Content: Convert your plain text emails to HTML
.という設定が、OFFになっているために生じる。(Settings > Mail Settings > Plain ContentのACTIVE)
これは、その設定の説明の通り、plain text のメールをSendGridがHTMLに変換してくれるというものである。
これがあるために、改行コードが無視されたHTML形式に変換されメールが送信されるので、先ほどのような問題が生じる。
解決策
Plain Content: Convert your plain text emails to HTML
(Settings > Mail Settings > Plain ContentのACTIVE)の設定を「ON」にすれば良い
若干ややこしいが、「OFF」にしていると、plain text のメールをSendGridがHTMLに自動で変換されるようになってしまう。