質問: ### cakePHPで大量メール送信を時間指定付で行いたいと考えています。 社内連絡システム、特定のグループが使う連絡システムで、送信時間の指定付機能を実装したいと考えています。 ### 質問 * 質問1:未来の時間を検知し、その時間になれば、メールが送られるという仕組みはどのように作られているのでしょうか。シェルをcakePHPで扱うことは可能でしょうか。調べる方向性を教えてください。メールのスプールを時間で管理するということは可能でしょうか。 * 質問2:時間指定なし(即時)でも時間指定ありでも、大量送信の上限は何件以上になれば、分割して送りたいと設計されますでしょうか?サーバのスペックにもよるとは思いますが、5000件ぐらいまでなら一括して送っても問題ないような気もしますがどうでしょうか。
回答: CakePHPにはシェル用のクラスが実装されているので、そこにコードを記述すればよいでしょう。 https://book.cakephp.org/3.0/ja/console-and-shells.html 後はcronなどで定期的に実行させて、送信する必要があれば送信処理を行うというようなことをすれば一応実現は可能です。 即時送信の場合も、2,3通なら問題ありませんが、たくさんの場合は送信自体に時間がかかるので非同期でシェル上で行うような形で設計することをお勧めします。 ただ、無計画に大量にメール送信するとスパムとみなされてしまう場合が多いと思います。 予算が許せばメール配信サービスなどを利用してそこ経由で送るような形にしたほうが安全です。