herokuに作ったアプリでメール送信機能を実装したのでその時のメモを。
まずメール送信自体はmb_send_mailなどではなく、SendGridというアプリを使います。
使い方ですが、herokuの管理画面にはいり、Resourcesを選んでプラグインを追加します。
Send・・と入力すればSendGridが選択されると思います。
そのままSendGridを選択するとherokuのメールアドレスなどがそのまま取得できています。(これ以上、特段することはないです。)
sendgridのライブラリ自体は、cakePHPの場合、appフォルダ直下のcomposer.jsonに
1 |
"sendgrid/sendgrid": "2.0.5" |
と記述し、composer updateでインストールします。
送信をするメールに関しては下記プログラムから送信できます。
1 2 3 4 5 6 7 |
$sendgrid = new SendGrid(getenv('SENDGRID_USERNAME'), getenv('SENDGRID_PASSWORD')); $email = new SendGrid\Email(); $email ->addTo("送信先メールアドレス")-> setFrom("送信元メールアドレス")-> setSubject($title)-> setText($mailMessage); $res=$sendgrid->send($email); |
ユーザー/パスワードに関してはheroku内部の環境変数として設定されているのでgetenvで取得できます。
直に取得することも可能ですが、その場合はheroku configでパスワードを見る必要があります。
メール送信後はSendGridの管理画面から見ることができます。(送信されてから状態が更新されるまで1分ちょっとぐらいかかります。)
参考リンク