PostfixとGoogleメールアカウントを用いてPHPからメール送信( mb_send_mail() )ができない
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)
ホストが見つからないと言われているのですが、
これはどう対処するべきなのでしょうか?
どうぞ、よろしくお願いいたします。