SMTP経由でメールを送信していて、次のようなトラブルが発生した場合、送信しているメッセージの形式などに原因がある可能性があります。
- 改行されない
- 余分な改行が追加される
- メッセージが途中でカットされる
- 文字化けする
こういった場合、以下の点に注意してメッセージを生成すると解決することがあります。
- 改行コードにはCRLFを使用する
改行コードにCRもしくはLFのみを使用すると改行が正しく処理されず、意図した改行にならない場合があります。 - 1行あたり78文字以内とする(推奨)。998文字を超えないようにする(必須)
SMTPでは1行あたりの長さに制限があります。長すぎるとカットされる場合があります。ここでの制限値は改行コードを除いた文字数です。 - Content-Transfer-Encodingに8bitを指定しない
Content-Transfer-Encodingに8bitを指定すると、SendGridの自動的な変換処理により、余分な改行が追加されることがあります。SendGridへのリクエストでは、7bit相当のエンコードを使用してください。具体的には、以下の対応を行います。- charsetにUTF-8を使用し、MIMEに従いBase64もしくはQuoted-Printableを使用する