30614


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

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

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

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

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

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

同様に

[code]

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

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

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

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

\---- mail.php -----

[code]

    <?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 "メール送信に失敗しました";
    }
    
    ?>
    
[/code]

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

以下、詳細です。

\---- 環境概要 -----  
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行を追加しました。

[code]

    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
    
[/code]

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

[code]

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

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

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

[code]

    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)
    
[/code]

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

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


CC BY-SA 3.0
2016-11-23T04:21:08.527
30609
2016-11-23T15:18:37.737
2016-11-23T15:18:37.737
19672
19672
question
php eclipse postfix sendmail
PostfixとGoogleメールアカウントを用いてPHPからメール送信( mb_send_mail() )ができない


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

[安全性の低いアプリからのアカウントへのアクセスを変更する](https://support.google.com/accounts/answer/6010255?hl=ja)  
はどうでしょうか？

また、マックという環境を考えれば  
[Macでコマンドラインやプログラムからmailを送る](http://qiita.com/tmsanrinsha/items/75e06fbdd7e12409bb02)  
の記事で解決できる内容があるかもしれません。


CC BY-SA 3.0
2016-11-23T10:51:02.183
30614
2016-11-23T10:51:02.183
19641
30609
answer