0
4
テーマ、知りたいこと
メールの大量配信(想定件数/月8,000件~10,000件程度)について、どのようなやり方が一番スマートなのか知りたいです。
背景、状況
当初は送信リストをMySQLでDBとして作成し、PHPで1日1,000~2,000件ずつCronで処理し、送信済みのアドレスにはフラグをたてて、数日かけて順に処理していこうかなと思っていたのですが、よくよく調べるとメール配信専用のAPI(Sendgrid等)があることが分かりました。
導入すると何が良いのか、PHPで処理するのとどう違うのか、Qiitaの以下記事を見てみましたがいまいち理解ができません…。
メール運用がロストテクノロジーになっていく話
https://qiita.com/koichiro/items/d65ac1af03b9063f0592
なんとなく理解できたのは、下記のことです。(間違っているかもしれません。)
- メールの処理が確実に行える
- 送信後のアクションを拾える(開封済み等)
PHPでアナログ的に処理を作って行うよりも、このような配信サービスを使うと何が違うのか、何が良いのかを知りたいです。
ざっくりとした意見でも構いませんので、よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答10件
#1
総合スコア4820
投稿2024/04/18 01:58
編集2024/04/18 01:59参考)
https://xtech.nikkei.com/atcl/nxt/column/18/00989/120500134/
単純にPHPからメールを送ると、リジェクト扱いもしくは迷惑メール扱いになると思います。今の時代はSPF、DKIM、DMARCに対応する必要がありますが、PHPだけでの実装はほぼ無理なのでかなりの構築コスト・運用コストがかかります。SMTPサーバの運用など含めて自前でやるコストとSendGrid等のサービスにお金を払うコストを比較すると、大半のケースは後者を選んだ方が安いという結論になると思います。
#2
総合スコア297
投稿2024/04/18 02:04
https://sendgrid.kke.co.jp/about/
↑このへんとか、そのリンク先とかを見ると何が良いかが書いてあります。
「一番」とか「もっとも」については存じません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア4820
投稿2024/04/18 02:39
編集2024/04/18 02:42「代行」というような感じではありませんが、適切な設定をすればDKIMやDMARCに対応したメールを短時間で大量に送信することができます(特にドメイン周りの設定などは自前で行う必要があります)。
あと、別件になりますがメールアドレスが消失して戻ってきた場合(バウンスメール)の対応がしやすいのもSendGridなどを使いたくなる要因の一つです。どのメールが届かず戻ってきたかがAPIを通じて簡単に把握できるので、次回送信時にはこれらを除外することで、迷惑メールと判断されにくくすることができます(除外する実処理は自前で実装する必要がありますが)。これを自前で実装するとなるとかなり骨が折れます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
退会済みユーザー
総合スコア0
投稿2024/04/18 04:25
メール送信はもうAWSのSESしか使ってない。
別に最近変わった話ではなく常識すぎてこんなこと誰も議論してない。
そのQiitaの記事でさえ10年近く前。
レンタルサーバーのsendmailでPHPから素朴にメール送信なんてことをやってたのは前世紀の話。
長年の迷惑メール被害のせいでこんな送信方法では届かない。
送信できてるように見えても届いてるかどうか分からない不安定なメールに依存した設計はできないので確実に届く方法を使う以外の選択肢がない。
「ユーザー登録後のメール確認」「パスワードを忘れた時にリセット」
色々なところでメールが必要だけど届かなかったら破綻する。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア1455
投稿2024/04/21 02:00
PHPでアナログ的に処理を作って行うよりも、このような配信サービスを使うと何が違うのか、何が良いのかを知りたいです。
まず、前提としてご理解いただきたいのは、メールは相手に届く保証のないサービスなんですね。ISP等による、スパム業者への対策の影響というのが背景にあるのですが、ざっくりいうと、SMTPで大量メール配信すると、スパム判定されちゃうんです。
システムから不特定多数にメールを配信した際に、相手に届く割合を、メール到達率と言ったりしますが、なにも対策せずメール配信をすると、メール到達率は低くなります。
メール到達率を上げるためには、IPレピュテーションのスコアを上げたり、SPF、DKIM、DMARCに対応したりといっった対策が必要です。また、バウンスメールの対策も必要で、DNS逆引きや、ブラックリスト対策、といったSMTPサーバーの適切な運用も重要になります。他にもいろいろな要素がありますので、考えなきゃいけないことが多すぎるんですね。
Sendgridなどのメール配信サービスはこういった対策を行っていますので、サービスを利用するだけで、運用コストをかけずに、メール配信率を高めることが期待できるというわけです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#9
総合スコア5
投稿2024/04/29 02:25
開発等も行う専門的な人が私一人しかいないので、何が良いのか道筋が分からなかったのですが、
素人の安易な考えに対して、現役の方々のご意見等も聞けて大変参考になりました。
もしかしたら当たり前すぎる事かもしれませんが、わざわざ回答していただいた事に感謝します。
たった一言の情報でも調べる道しるべとなったり、今後の参考になります。
とりあえず、、、
- 初めからアナログ的に処理(mb_send_mail等)するよりも、APIを使った配信の方が到達率が高く効率的
- メール配信はAWSが強い(主流?)が、メリットデメリットを理解していればsendgridも悪くはない
ということなので、まずは手が出しやすそうなsendgridを使って開発をしてみたいと思います。
// クラウド系のサービスもいつかは手をだしたい…
// 余談ですが、4月23日のメールマガジンで「先週投稿された閲覧数の多い意見交換トップ3」に入ってびっくり!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#10
総合スコア5
投稿2024/04/30 00:46
#5 pcsさん
もうすでにSendgridで一通りの流れを構築してしまったのですが、
改めてAWSのSESについて調べると、コスパがかなり高いですね。
AWSって高いイメージがあったのですが、専用IP($24.95/月)設けても配信がそこまでなければ安く抑えられますね。無料枠もあるみたいなので、数か月はSendgridでやって、その間にSESに移行しようかと思います!
■参考サイト
【AWSコスト計算】Amazon SESの料金とは?毎月のコストを算出してみた。
https://go.dx.business/dev/aws/20110
料金 - Amazon SES | AWS
https://aws.amazon.com/jp/ses/pricing/
ご意見感謝です。ありがとうございます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。