2007年5月4日 星期五

[PHP] mail.log 中出現 501 Syntax error in parameters or arguments 訊息

若在 Ubuntu 上,以 PHP 開發收發 Mail 相關的程式時,一定會使用到 PHP Mail 相關 function,而若在收發信發生問題,並且檢查 /etc/logs/mail.log 中發現了類似以下的訊息:
Apr 10 23:54:04 ubuntu postfix/pickup[5118]: 49E6369C05D: uid=33 from=<www-data>
Apr 10 23:54:04 ubuntu postfix/cleanup[5304]: 49E6369C05D: message-id=<20070410155404.49E6369C05D@ubuntu>
Apr 10 23:54:04 ubuntu postfix/qmgr[4958]: 49E6369C05D: from=<www-data@ubuntu>, size=682, nrcpt=1 (queue active)
Apr 10 23:54:04 ubuntu postfix/smtp[5306]: 49E6369C05D: to=<godleon1202@yahoo.com.tw>, relay=mx1.mail.tw.yahoo.com[203.188.197.10]:25, delay=0.48, delays=0.13/0.02/0.32/0.01, dsn=5.0.0, status=bounced (host mx1.mail.tw.yahoo.com[203.188.197.10] said: 501 Syntax error in parameters or arguments (in reply to MAIL FROM command))
Apr 10 23:54:04 ubuntu postfix/cleanup[5304]: BCEE869C05E: message-id=<20070410155404.BCEE869C05E@ubuntu>
Apr 10 23:54:04 ubuntu postfix/bounce[5307]: 49E6369C05D: sender non-delivery notification: BCEE869C05E
Apr 10 23:54:04 ubuntu postfix/qmgr[4958]: BCEE869C05E: from=<>, size=2444, nrcpt=1 (queue active)
Apr 10 23:54:04 ubuntu postfix/qmgr[4958]: 49E6369C05D: removed
Apr 10 23:54:04 ubuntu postfix/local[5308]: BCEE869C05E: to=<www-data@ubuntu>, relay=local, delay=0.14, delays=0.03/0.07/0/0.04, dsn=2.0.0, status=sent (delivered to mailbox)
Apr 10 23:54:04 ubuntu postfix/qmgr[4958]: BCEE869C05E: removed
表示對方的 MTA 看不懂主機寄出去的信中所包含的 domain name,此時只要修改設定檔 /etc/postfix/main.cf 的內容,將以下兩行設定註解即可:
append_at_myorigin = no
append_dot_mydomain = no
如此一來,PHP 的 mail function 就可以正常使用了!

沒有留言:

張貼留言