tanaka's Programming Memo

プログラミングについてのメモ。

macからPHPでメール送信する(mailtrap.io の設定を追加)

mailtrap.io を利用する場合(2017/2/28 追記)

実際にメールを宛先に届けずに、デバッグ用の mailtrap.io に受信させる場合です。

  • https://mailtrap.io に接続
  • Sign in する。 GitHub アカウントがあれば、ログインした状態でログインできる
  • Inbox から使いたい設定をクリックして選択

f:id:am1tanaka:20170228145001p:plain

  • Integrations 欄の下のコンボボックスをクリックして一覧を表示して、[Postfix]を選択

f:id:am1tanaka:20170228144919p:plain

最後の postfix のリスタートコマンドは実行できないかもしれません。その場合は、以下で一度停止してから、再起動してください。

sudo postfix stop
sudo postfix start

以上で、設定の仕方が表示されます。それに従って設定を進めれば、メールが mailtrap.io へ送信されるようになります。


テストメールの送信

以下で、テストメールを送信します。

mail -s 'test' 宛先のメールアドレス
body
.
  • 登録しているGmailアドレスに「ログイン試行をブロックしました」というメールが届く
  • 詳細のところにあるリンクをクリック
  • 「安全性の低いアプリからのアカウントへのアクセスを変更する」の指示に従って、安全性の低いアプリのアクセスを[ON]にする

以上が設定できたら、改めてテストメールを送信します。今度は送信が成功します。

不要になったら、安全性の低いアプリのアクセスを[OFF]にしておくことをお勧めします。


PHPから送信

以下で、日本語のメールを送信します。
mb_send_mailの引数を、適宜、送りたい内容に書き換えます。

<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");
if (mb_send_mail(
    "TEST_TO_ADDR@domain.com",  // 送信先メールアドレス
    "件名",
    "本文",
    "From :".mb_encode_mimeheader("テスト送信元")."<TEST_FROM_ADDR@domain.com>"
))
{
    echo "成功\n";
}
else {
    echo "失敗\n";
}