iT邦幫忙

0

sendmail 收信有時會亂碼,應該要如何設定才能避免?

原本公司用exchange,用戶都沒有出現什麼亂碼的問題

但是換了linux,三不五時都會出現用戶反應收信亂碼這問題

找了很久資料,找不到好的解答,好像都是無解

只好來這裡求助看看有沒有前輩能指導的
centos 5.4
sendmail-8.13.8-8.el5
sendmail-cf-8.13.8-8.el5

原本在/etc/sysconfig/i18n
設定為big5但是用戶反應一直有問題
所以又改成LANG="zh_TW.UTF-8"
好像還是不行,

sendmail.cf,dovecot好像找不到相關的設定

請問要怎麼做才好呢

2 個回答

12
逮丸逮丸
iT邦大師 1 級 ‧ 2010-08-20 00:16:30
最佳解答

古早以前,通常會造成亂碼,
是因為 Server 預設以 7 bit 來處理信件,
所以會把是8bit的非英文信件給處理成亂碼。
但 sendmail 已很早把信件預設以 8bit 來處理…

若是 7,8 bit 的問題的話,
檢查一下 /etc/mail/sendmail.cf 裡
下面的兩個參數設定:
這是我舊版本 sendmail-8.13.3 的設定,
並不大會有亂碼的問題:

<pre class="c" name="code"># strip message body to 7 bits on input?
O SevenBitInput=False

# 8-bit data handling
#O EightBitMode=pass8

第二行,可確保不是用 7 bit 的方式處理。
第五行把前面的 # 拿掉,可確保是 8 bit 模式進行。

以上是就 sendmail 可能造成的設定問題。

但目前大多不是那麼舊的 mail server 版本,
不大可能是上述的問題,
比較常是因為 mail client 寄出去時的情況;
最常是以「程式」寄信時所造成的。

如果確定不是「程式」寄的信,
而是一般使用者的收發信軟體,
仍會亂碼的話;
有幾個要考量:
一、試試用各大像 gmail, yahoo 等信箱寄,是否會有同樣情形?
如果不會有亂碼問題的話,大概就不會是 sendmail 的問題。
二、如果 一、 是有亂碼的話,
看看是否您那一台 sendmail,
是直接就收 gmail, yahoo 來的信件?
還是前端還有另一台 mail server 當前端處理而後送呢?
假設寄到您公司的信箱是 xxx@abc.com 的話,
MX 是 mx.abc.com
接著後送到您那一台 sendmail 是 pop3.abc.com,
如果是這樣架構的話,
看看把收信對象設為 xxx@pop3.abc.com 這樣寄的話,
就不會透過 mx.abc.com 轉信的情況下,
是否還是會有亂碼情形?
或者在 outlook express POP3 client 之類,
把 pop3.abc.com 設成 SMTP,
然後寄給 xxx@pop3.abc.com 看看,
是否仍會亂碼嗎?

如果上述仍未解決的話,
您需要到 /usr/share/sendmail-cf/cf
重編一個 sendmail.mc,來產生新的 sendmail.cf,
來替代舊的 sendmail.cf 看看。

看更多先前的回應...收起先前的回應...

我已找到一封有亂碼的信了
還請你幫忙查看一下原因
jay是我
polly是用戶反應說他收到亂碼的信

這是本文
http://www.badongo.com/file/23923427

表頭
http://www.badongo.com/file/23923397

還請您多加幫忙了筆記

公司前面有郵件守門員通過後才寄至公司

def123452002提到:
這是本文
http://www.badongo.com/file/23923427
表頭
http://www.badongo.com/file/23923397

這一封信看起來是沒問題的,
有問題的是 polly 收到的信有亂碼問題,
而polly用「轉寄」的方式,
絕對無法看出問題,
要請他以「附件方式轉寄」,
才會看到他信件完整的原貌,
較可能判斷是哪邊的問題。

請問是要請polly把他收到的亂碼信另存新檔成如123.mai這種檔案後
然後把123.mai當成附件他再寄信給我,是這個意思嗎?

不,是要用這樣子的方式寄:

該信按右鍵,「以附件方式轉寄」。

twtw提到:
以附件方式轉寄

以附加檔案方式轉寄

由於polly所用的 outlook 2003 沒有「以附奇檔案方式」轉寄的選取鍵,
可參閱:
【軟體求助】使用Outlook時如何在新郵件中附加另一封郵件 [論壇存檔] - PCZONE 討論區
的作法,
同時選取兩封信,就可以

但是如果你一次點兩封信的話,再按右鍵就會變成轉寄項目,就可以把原本的信變成附件了!

這樣他寄給您時,您從信件原始碼,
才有辦法看到他信件的原始面貌。
用 另存新檔的方式 應無法看到原始標頭的相關資訊。

您好,我今天請用戶寄來了,這樣對嗎,表頭

<pre class="c" name="code">From: "Joynew Lisa" <joynew.lisa@gmail.com>
To: "polly" <polly@8888.com.tw>
References: <201008190907.RAA26328@msr31.hinet.net>
Subject: =?big5?B?UmU6IKVbuMumULdOrtE=?=
Date: Thu, 19 Aug 2010 17:17:37 +0800
Message-ID: <AANLkTimXEe13SbcvX_c_yXwHkemh5uSJs8W1QARR-RwK@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0056_01CB42A6.1507FB00"
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on 8888x.8888.com.tw

接上面的

<pre class="c" name="code">X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=5.0 tests=HTML_MESSAGE,RDNS_DYNAMICautolearn=disabled version=3.2.5
X-AuditID: 0a0a0f1d-a341fbb00000067f-17-4c6cf6b3d59f
X-Brightmail-Tracker: AAAAAA==
X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-3.0 (8888x.8888.com.tw [192.168.1.17]); Thu, 19 Aug 2010 17:14:53 +0800 (CST)
X-yoursite-MailScanner-Information: Please contact the ISP for more information
X-yoursite-MailScanner-ID: o7J9Eroo026990
X-yoursite-MailScanner: Found to be clean
X-yoursite-MailScanner-From: joynew.lisa@gmail.com
In-Reply-To: <201008190907.RAA26328@msr31.hinet.net>
Thread-Index: Acs/fvudEnFKW4z+SkmFJU2gnAMUcQ==
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

郵件原件

Dear Polly ,

?躲forwarder 窣霖,
惸侗腔S/O 揃蹋飲祥? , ?善憚簿薆?, 冞善價癒?鶸?.
秪坳7模岆猁樓娊, ?假齬婓8/27(拻)善?,珴珴饜磁.

regards,
Lisa Hsiao

婓 10/8/19ㄛpolly <polly@8888.com.tw> 蚴?ㄩ
Dear Lisa,

扂敵淏掛樓娊肮砩祫扂侗磁釬燊俴ㄛ?跪?眳燊俴婬砃坻?坰淏掛﹝
價癒惝荻燊俴 藝?苤賬
價癒庈笳珨繚15?9 tel:2422-2xxx

婬鎊斕枑鼎跪模s/o ?﹝珴珴 ﹝

Best regards,

Polly Hsieh

看起來是 lisa 用 outlook 寄信給 polly。
1.如果您直接用 gmail 寄給 polly 的話,
polly 看到的會是亂碼嗎?
我猜應不容易,
比較可能是 outlook 在「回」信的時候,
有兩種碼在同一封信造成的;
2.如果 lisa 以 outlook 寫一封「新」的信給 polly 的話,
是否也仍會亂碼?還是不會?

您好,
1:沒有問題 ,沒有亂碼
2:沒有問題 ,沒有亂碼

再和polly確認過,看起來都是
比如
polly和lisa來信通信幾次,有了一些內容轉寄給jay
jay收到的信就會有亂碼

這樣看起來是outlook 2003 的問題,
應不是mail server 的關係。
google找 outlook 2003 亂碼 可找到一些相關解決方式的資料。
可參考:
為什麼會產生亂碼這種現象
該文說明及其中的 outlook 2003 的那一段的圖文解說,
應可解決此亂碼情形。

10
aeolus0829
iT邦研究生 4 級 ‧ 2010-08-19 23:02:07

我不懂 sendmail 也沒有 sendmail 的環境可以測試...

倒是用 sendmail + 亂碼 的關鍵字在 google 找到一堆資料(顯然別人也有類似的問題)

目前看起來最能解決的是
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200912132333364JO&fumcde=FUM20050110200903ZWZ

最簡單的解法
http://social.technet.microsoft.com/Forums/zh-TW/exchangezhcht/thread/aeaa07c0-25dd-4a6e-9544-ef4507269468

希望可以幫上忙 :P

我要發表回答

立即登入回答