PostfixとGoogleメールアカウントを用いてPHPからメール送信( mb_send_mail() )ができない

投稿者: Anonymous

stackoverflowにて初めての質問です。
不慣れな部分がありますが、どうかよろしくお願いします。

現在、「PHP+MySQLマスターブック」という書籍に沿って学習を進めているのですが、

mb_send_mail()を使って上手くメールを送信することができません。

以下のプログラムを実行すると、「メールを送信しました(以下略)」と表示されるのですが、実際にはメールが送信されている様子はありません。

========== 解決済み ==========

原因は、DNSの設定上手くいっていないことにありました。
お手数おかけしました。

同様に

(Host or domain name not found. Name service error for name=smtp.gmail.com type=MX: Host not found, try again)

のエラーに悩まされている方は、おそらくDNSの設定で躓いていることが考えられるので、

システム環境設定から、Network->Advanced…->DNSと進み、
Google Public DNSの8:8:8:8を一番上に追加してみてください。

==============================

—- mail.php —–

<?php
$to = "<自分のgmailアドレス>@gmail.com";
$subject = "(件名)テストで送信";
$message = "(本文)受信できるかな?";
$add_header = "From: <自分のgmailアドレス>@gmail.com";

if(mb_send_mail($to,$subject,$message,$add_header)) {
    print "メールを送信しました<BR>";
    print "$to<BR>";
   print "$subject<BR>";
    print "$message<BR>";
    print "$add_header<BR>";
    print php_ini_loaded_file();
} else {`
    print "メール送信に失敗しました";
}

?>

どこか設定で欠けている部分があるのでしょうか?

以下、詳細です。

—- 環境概要 —–
OS : Mac OS X Yosemite version 10.10.5
IDE : eclipse Mars.2 (4.5.2)
ローカル開発環境: MAMP
PHP version : 5.6.10

—- /private/etc/postfix/main.cf —-
参考書籍に従い、以下6行を追加しました。

relayhost=smtp.gmail.com:587
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/private/etc/postfix/sasl_passwd
smtp_sasl_security_options=
smtp_use_tls=yes
smtp_tls_security_level=encrypt

—- /private/etc/postfix/sasl_password —-
sasl_passwordには以下の内容(1行)を記述しています。

smtp.gmail.com:587<自分のアカウント>@gmail.com:<パスワード>

<パスワード>には、https://myaccount.google.com/から
App passwordsを生成したものを使用しています。
(普通のパスワードを入れた場合も同様に試してみましたが、駄目でした。)

—- /var/log/mail.log で確認したエラー —-

Nov 23 20:59:08 MacBook-Pro.local postfix/smtp[81944]: 7611E52EEA4: 
to=<自分のアドレス@gmail.com>, relay=none, delay=29845, delays=29835/0.02/10/0, dsn=4.4.3, status=deferred 
(Host or domain name not found. Name service error for name=smtp.gmail.com type=MX: Host not found, try again)

ホストが見つからないと言われているのですが、
これはどう対処するべきなのでしょうか?

どうぞ、よろしくお願いいたします。

解決

設定にもし間違いが無いのならば

安全性の低いアプリからのアカウントへのアクセスを変更する
はどうでしょうか?

また、マックという環境を考えれば
Macでコマンドラインやプログラムからmailを送る
の記事で解決できる内容があるかもしれません。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *