6

私が理解している限り、sendmailを使用して商品を配信するPHP mail()関数を介してメールを送信しようとしています。今私の問題は、mail()がtrueを返すが、メールボックスにメールの痕跡すら存在しないことです(はい、私もスパムをチェックしました)。

だから私はターミナルから手動でいくつかのメールを送信しようとしましたが、問題は解決しません。sendmailは、開発マシンのドメインを/ etc / hostsに追加し、それを127.0.0.1に関連付けることで修正したドメインエラーを特定できないことを除いて、エラーを表示しません。

andreas@Andreas-PC-Ubuntu:~$ sendmail xxxxxxx@xxxxxxx.com
Test
.
andreas@Andreas-PC-Ubuntu:~$

エラーを出さないだけでなく、sendmailはメールが正常に送信されたことを/​​var/log/mail.logに記録します。

Apr  7 01:16:21 Andreas-PC-Ubuntu sendmail[11759]: q36NGIfD011759: from=andreas, size=5, class=0, nrcpts=1, msgid=<201204062316.q36NGIfD011759@home.hagenz.com>, relay=andreas@localhost
Apr  7 01:16:21 Andreas-PC-Ubuntu sm-mta[11760]: q36NGL1J011760: from=<andreas@home.hagenz.com>, size=299, class=0, nrcpts=1, msgid=<201204062316.q36NGIfD011759@home.hagenz.com>, proto=ESMTP, daemon=MTA-v4, relay=ip6-localhost [127.0.0.1]
Apr  7 01:16:21 Andreas-PC-Ubuntu sendmail[11759]: q36NGIfD011759: to=xxxxxxx@xxxxxxx.com, ctladdr=andreas (1000/1000), delay=00:00:03, xdelay=00:00:00, mailer=relay, pri=30005, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q36NGL1J011760 Message accepted for delivery)

そうそう、何か提案はありますか?

4

2 に答える 2

4

受信者のSMTPサーバーがメールをドロップ(または少なくともグレーリスト)していないことを確認しますか?メールサーバーが、認識されたMXサーバーから送信されていないメッセージをスパムとして扱うことは非常に一般的です。

sendmailはSMTPリレー/スマートホストを使用するように構成されていますか?そうでない場合、ISP、雇用主、または他のホスティングプロバイダーのサーバーを使用するように構成するとどうなりますか?

于 2012-04-06T23:47:42.153 に答える
1

php.iniファイルで構成を設定しましたか?

自分のサーバーでphpをセットアップするとき(サーバー2003でIISを実行していて、Exchange for emailsを使用していた)、php.iniファイルを編集してメール機能を構成する必要がありました。

コメントを外して、そのSMTP部分のメールサーバーを指定する必要がありました。

編集

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = #mymailserver#
; http://php.net/smtp-port
smtp_port = 25

Webサーバー環境に応じて、おそらく同じまたは同様のことを行う必要があります

于 2012-04-06T23:32:11.597 に答える