[解決] sendmail 錯誤訊息 5.3.0 unknown mailer error 139

No Comments / 13,775 views

某日在作一些主機昇級動作之後,sendmail 出現 5.3.0 unknown mailer error 139 的訊息,造成極大困擾。

因為筆者有把 gmail 信箱裡特定信件自動轉寄到公司郵件主機備份的設定,而這個錯誤會造成不正常的退件。不只是 gmail, 只要任何寄信到公司郵件主機的人,都會收到退件。

一開始,從字面上的訊息,以為是 mail.local 這支程式出現異常。因為連 sendmail 官方網頁都說這訊息是 mail.local 在異常時回傳的錯誤代碼。

#define EX_OK           0       /* successful termination */

#define EX__BASE        64      /* base value for error messages */

#define EX_USAGE        64      /* command line usage error */
#define EX_DATAERR      65      /* data format error */
#define EX_NOINPUT      66      /* cannot open input */
#define EX_NOUSER       67      /* addressee unknown */
#define EX_NOHOST       68      /* host name unknown */
#define EX_UNAVAILABLE  69      /* service unavailable */
#define EX_SOFTWARE     70      /* internal software error */
#define EX_OSERR        71      /* system error (e.g., can't fork) */
#define EX_OSFILE       72      /* critical OS file missing */
#define EX_CANTCREAT    73      /* can't create (user) output file */
#define EX_IOERR        74      /* input/output error */
#define EX_TEMPFAIL     75      /* temp failure; user is invited to retry */
#define EX_PROTOCOL     76      /* remote error in protocol */
#define EX_NOPERM       77      /* permission denied */
#define EX_CONFIG       78      /* configuration error */

#define EX__MAX 78      /* maximum listed value */

但卻一直找不到問題點。139?? 該不會是不同錯誤的組合?

這種不易監控程式執行步驟的機制最難找bug....(汗)

最後,只有一步一步來。

由於轉寄進來的程式是先經 .forward 檔將它 pipe 給一支 php 程式來處理(編碼,並寫入資料庫,然後將信件轉存)。

所以就用 forward_mails.php < some_mail_from_gmail.eml  把剛才收到的 gmail 郵件倒給處理程式看看~~~

驚!

竟然出現 Segmentation fault (core dumped)

這就怪了,之前明明都運作正常,用很久了。因此,讓我想到該不會是升級時加載的外掛有問題吧?

目標就指向了最後加入的 memcached 這個外掛了。

但奇怪的是,用 pecl install memcached 一切正常,而在 phpinfo 裡也看到它被載入了。

然而執行程式時,卻是因為它而出現異常,而這支程式裡卻完全沒用到 memcached。移除這支外掛後,上述的 Segmentation fault 就消失了。

所以結論就是 php 的外掛加載可能造成 php 程式的異常,這點需要特別留意。

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Post to Twitter Post to Plurk Post to Digg Post to Facebook

Facebook comments:

Leave a Reply

You must be logged in to post a comment.