質問: True ``` 上記のような設定で、サーバーからのメール送信をしたところ、google Cloud Platformでは仕様により実装できませんでした。 https://stackoverflow.com/questions/48629072/django-sendmail-on-google-app-engine-flexible-env サーバー自体にメール処理を置くと非同期をしない限り、もっさりしてしまうので別のメールサービスなどで実装したほうがいいのかと思っていますが、実際にサービスを作る場合のメール送信処理についてご意見をいただけると幸いです。 やはり別サービスもしくは、別サーバーを設けてAPI通信などでメール処理を分けたほうがいいのでしょうか?
回答: メール配信サービスなどを開発しているのでない限り、今時は何らかのメール配信のSaaS等を利用することが一般的です。 用途が記載されていないので、もしかしたらミスマッチかもしれませんが、例えばSendGridなどのサービスではWebhookでメールを送信することができます。http postを投げるだけなので、実装が容易なのがメリットです。 dJangoの機能で送りたいのであれば、Gmailとの連携がありますので、そちらを利用されると良いかと思います。 * SendGridのwebhook * Djangoで、メール送信 今回の例ではGCPでしたが、他のパブリッククラウド、例としてAzureでもメールを配信するサーバを構築することは難しいようになっています。 * Azure 上にメールサーバー/SMTP サーバーを構築する場合の注意事項 こちらのサイトにも記載がありますが、スパムメールなどの配信元として利用されるケースがあるためです。 ではオンプレでメールサーバを構築すれば良いかと言うと、技術的な面からそれも推奨できません。単純にSMTPサーバとPOP3サーバを建てるだけならばドメインと固定IPさえあれば難しくありませんが、最近ではスパムメール対策に様々な送信元認証技術が開発されており、それらに対応していないSMTPサーバからのメール配信は拒否される場合があります。 * 送信ドメイン認証(wikipedia) 上記の他にも色々あるようで、以前キャリアの中の人からキャリアメールのサーバについて伺う機会があったのですが、スパム送信元扱いされないよう様々な調整を行なっているそうです。 メールの送受信だけでも非常に高度化しており、そちらの設定や構築は専門の業者・人間に任せ、サービス構築に専念するのが良いかと思います。