Sendmail收信有時會出現亂碼,應該要如何設定才能避免?
到iT邦幫忙
def123452002(iT邦初學者10級)發問:
原本公司用Exchange Server,都沒有出現亂碼的問題,但是換了Linux後,三不五時會出現用戶收信內容是亂碼,請問該怎麼處理?
twtw(iT邦高手9級):
通常會造成亂碼,是因為伺服器預設以7-bit的方式來處理信件,所以會把8-bit的非英文信件給處理成亂碼。
但sendmail已很早把信件預設以 8-bit 來處理。若是7、8-bit的問題,檢查一下/etc/mail/sendmail.cf裡。
下面的兩個參數設定(這是我舊版本 sendmail-8.13.3 的設定,並不大會有亂碼的問題):
# strip message body to 7 bits on input?
O SevenBitInput=False
# 8-bit data handling
#O EightBitMode=pass8
第二行,可確保不是用7-bit的方式處理。第五行把前面的#拿掉,可確保是8 bit 模式進行。
但目前大多不是那麼舊的Mail server 版本,不大可能是上述的問題,比較常見到的是因為從電子郵件用戶端寄出去時的情況。
最常見是以「程式」寄信時造成的。如果確定不是「程式」寄出的信,而是一般使用者的收發信軟體,仍會有亂碼,那就有幾個要考量:
1.試試像Gmail、Yahoo等信箱,是否會有同樣情形?如果不會,大概就不會是sendmail的問題。
2.如果上面的情況有亂碼,看看sendmail主機是直接收Gmail、Yahoo 的信件?還是前端還有另一臺Mail Server當前端處理而後送?
假設寄到你公司的信箱是xxx@abc.com,MX是mx.abc.com。接著後送到你那一臺sendmail是pop3.abc.com,把收信對象設為xxx@pop3.abc.com,這樣寄,就不會透過mx.abc.com轉信的情況下,是否還是會有亂碼情形?
或者在用戶端郵件軟體,把pop3.abc.com設成SMTP,然後寄給xxx@pop3.abc.com,看看是否仍是亂碼?
如果上述方法仍未解決你的問題,就需要到 /usr/share/sendmail-cf/cf重編一個sendmail.mc,來產生新的sendmail.cf,替代舊的sendmail.cf。
熱門新聞
2025-12-12
2025-12-16
2025-12-17
2025-12-15
2025-12-15
2025-12-16