linux (fedora 20) msmtp 構成はシェルから送信されますが、PHP/Apache からは失敗します。困惑しています...私の目的は、localhost 開発 Web サーバーから gmail smtp を介してメールを送信し、メールを送信するコードの出力をテストすることです。
php.ini sendmail ファイルの読み取り: sendmail_path = /usr/bin/msmtp --debug -C /etc/msmtprc --read-recipients
システムには、/etc/php.ini にある CLI と Web サーバーの両方に使用される php.ini が 1 つだけあります。
/etc/msmtprc の権限は apache:apache 600 に設定されています
root として次のコマンドを実行すると、テスト メールが生成されます。
- php -r "mail('emily@emilytench.net', '最新のテストメール', 'テストメール本文');"
- runuser -l apache -c '/usr/bin/msmtp --debug -C /etc/msmtprc --read-recipients < /var/www/html/test.mail' (test.mail には to および from 行が含まれます)
しかし、php メール関数が次のスクリプトから呼び出されると、apache/php はエラーを生成します。
if (mail('emily@emilytench.net', 'Newest Test Email', 'Test email body'))
print "Email successfully sent";
else
print "An error occured";
エラー時のログ ファイルは次のように読み取られます。
- /var/log/httpd/error_log : msmtp: smtp.gmail.com に接続できません、ポート 587: アクセス許可が拒否されました msmtp: メールを送信できませんでした (アカウントのデフォルトは /etc/msmtprc から)
/etc/msmtprc には以下が含まれます:
defaults
auth on
tls on
tls_trust_file /etc/pki/tls/cert.pem
account default
host smtp.gmail.com
port 587
user emily@emilytench.net
from emily@emilytench.net
password [******]
auth on
syslog on
正しい方向へのポインターは歓迎されます...私のgmail smtpサーバーを介して電子メールを送信するためにlocalhost phpメール機能の簡単な手段を達成しようとしているだけです-これは本番サーバー構成ではなく、Web用の私のローカルApache/php Webサーバーです発達