teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

送信時に考慮すべきことを追記しました。

2017/02/18 09:23

投稿

nakansuke
nakansuke

スコア12

answer CHANGED
@@ -3,5 +3,14 @@
3
3
  皆さんおっしゃる通りやはり専用のサービスをお使いいただくのがもっとも楽かと思います。確かに有料ではありますが、送信を早くするためにやらなければならないこと、エラーへの対応等を考えていると十分ペイするコストだと思います。
4
4
  メール周りは宛先ISPの都合で色々とトラブルが発生しやすいですが、そのへんも含めて全て任せられるので運用の事自体をほとんど気にする必要もなくなります。
5
5
 
6
+ 大量送信時に具体的に考慮しなければならないのは、
7
+ - 同時コネクション数
8
+ - 1コネクションあたりの送信メッセージ数
9
+ - 時間あたりの送信数
10
+ - 4xxのレスポンスがあったときの再送頻度、間隔
11
+ あたりです。
12
+
13
+ これらは各ISPによって異なりますし、送信元のレピュテーションによっても変動するので自分たちで最適値を導き出すのはかなり難易度が高いと思います。メール送信サービスは、それまでのノウハウを蓄積しているので強いわけです。
14
+
6
15
  SendGridのプランで考えると4万通まで送信可能なBronzeプラン(月額1,180円)になると思いますが、移行は一番シンプルな方法だと、今の送信先としているSMTPサーバをSendGridにするだけで終えることが可能です。
7
16
  しかしそれでも一通ずつリクエストを投げるという方法だと時間がかかってしまうので、理想的にはAPIを使って送信部分を実装することをおすすめします。1リクエストで1,000の宛先までいけるので7リクエストで終わります。どんなに遅くても送信処理自体は1分もかからなくなると思います。到達までも数分みておけば十分かと思います。