none
有關windows server 2008 R2 IIS smtp server轉寄中文信件到Office 365會造成亂碼 RRS feed

  • 問題

  • 由於我司非微軟平台的IBM AIX Unix ERP Server sendmail 通知信透過windows server 2008 R2 IIS smtp server轉寄信件到Office 365,從上星期二2019/4/16早上發現中文信件都呈現亂碼,不知道是否是因為windows server 2008 R2 IIS smtp server 有關TLS 1.2加密造成中文信件亂碼,在此請教微軟的專家,是否有甚麼設定需要安裝或修改,麻煩提供給我,謝謝!
    2019年4月22日 上午 06:49

所有回覆

  • 由於我司非微軟平台的IBM AIX Unix ERP Server sendmail 通知信透過windows server 2008 R2 IIS smtp server轉寄信件到Office 365,從上星期二2019/4/16早上發現中文信件都呈現亂碼,不知道是否是因為windows server 2008 R2 IIS smtp server 有關TLS 1.2加密造成中文信件亂碼,在此請教微軟的專家,是否有甚麼設定需要安裝或修改,麻煩提供給我,謝謝!
    Office365 team告知我windows server 2008 R2沒有支援TLS 1.2,因此有可能造成連線傳送中文信時發生亂碼,建議我使用windows server 2016,但是我在windows server 2016的環境架設IIS smtp Server做測試結果一樣中文信件還是亂碼,因此在此補充,請求微軟的專家們可以給我一個答覆,我該如何處理這樣的狀況,謝謝!
    2019年4月22日 上午 07:01
  • 檢查從 O365 收到的中文郵件是否有宣告 UTF8 或 BIG5 編碼?
    也有可能是從 ERP Server 產生的郵件就未宣告,
    2008R2 或 Server 2016 上的 SMTP Server 正常應該只是郵差的功能,
    也就是幫忙做轉送,並不會對郵件本身做宣告編碼處理

    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部

    論壇不是神壇,沒人會通靈知道問題狀況
    請正確簡述標題及詳述狀況
    如何在論壇正確發問,可以參考iThome的文章:
    如何問到我要的答案

    2019年4月22日 上午 09:48
    版主
  • 能的話先用 Live Mail 之類的軟體測試編碼,大部分的原因是寄件端問題,寄件端並沒有設定外寄郵件編碼。

    例如開發者問題可參考:

    [VBNET] 繞路解決 MailMessage 在 Header 亂編碼的 bug

    常識:

    Outlook 亂碼問題


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年4月22日 下午 03:32
  • 微軟專家你好!

    我已經向Office365 team查詢過我司的後台預設編碼是BIG5

    1.          登入Office 365的管理者帳號。

    $LiveCred = Get-Credential

    2.          開始使用雲端架構服務的PowerShell

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUrihttps://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic AllowRedirection

    3.          載入PowerShell中所使用Exchange指令

    Import-PSSession $Session 

    4.          載入指令後輸入:

    Set-RemoteDomain -Identity Default -CharacterSet Big5 -NonMimeCharacterSet Big5 將編碼改為Big5,或者是系統設定的編碼即可。

    5.          確定目前的設定為何:

    Get-RemoteDomain -Identity Default |fl CharacterSet,NonMimeCharacterSet


    利用上面的方式查出預設編碼是BIG5

    但是我從Windows server 2008 R2 and windows server 2012 R2建立的IIS SMTP server 直接測試寄一封信,卻是收到無法轉編碼的中文信件但是英數文字都正常,只有中文會呈現亂碼,目前已經不知道該如何處理,下圖為亂碼的狀況


    • 已編輯 Morerich 2019年4月23日 上午 10:24
    2019年4月23日 上午 10:19
  • 看到你的截圖及說明,我猜可能是這個狀況
    因為你是用 OWA 網頁方式看郵件,
    該頁面猜測是以 UTF8 呈現,
    但郵件本身是 BIG5 編碼,
    所以最後從網頁上看到的就會變成亂碼

    試著用 Win10 上的郵件 APP 或其他郵件軟體去存取 Exchange Online 郵件,
    確認是否會發生同樣的亂碼問題


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部

    論壇不是神壇,沒人會通靈知道問題狀況
    請正確簡述標題及詳述狀況
    如何在論壇正確發問,可以參考iThome的文章:
    如何問到我要的答案

    2019年4月23日 上午 11:33
    版主
  • 微軟專家你好!

    我試了用Windows 10 郵件App開依樣是亂碼且無法辨識的編碼,畫面如下:

    2019年4月23日 下午 01:52
  • 微軟專家你好!

    我試了用Windows 10 郵件App開依樣是亂碼且無法辨識的編碼,畫面如下:

    補充一點這是從上星期二2019/4/16早上8:00過後發生的,之前信件都是正常可以看到中文
    2019年4月23日 下午 01:56
  • SMTP Server 本身不用管編碼,不然經過的跨國郵件要怎麼辦?

    RFC 裡面關於 MIME 格式的編碼要求,是針對 Mail Client 端。

    你用 ERP 程式產生,應該是 ERP 要負責解決,所以先前回給你的都是 Mail Client 端的解法。

    你應該洽詢 ERP 廠商怎樣搞,或著先用 Live Mail 確認該郵件的預設編碼,通常網頁系統產生的郵件是 utf8 格式。

    寄件過程如下:

    Sender[未知格式] -> SMTP Server[寄件伺服器] -> SMTP Server[轉寄伺服器] -> SMTP Server[收件伺服器] -> Reader[未知格式]

    中間經過多台 SMTP Server 你根本不可能控制 SMTP Server ,此外,依據 RFC 規範,Message[信件] 本身傳遞過程中使用的是純文字格式,所以 SMTP Server 再轉送信件過程中根本不會動到信件編碼或格式。

    當 Sender 未標明編碼格式時,Reader 就只能猜,猜錯就是亂碼,為了避免 Reader 猜錯,就要要求 Sender 加上編碼格式標記,也就是上面連杰說明的內容。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年4月23日 下午 04:46
  • 微軟專家你好!

    我試了用Windows 10 郵件App開依樣是亂碼且無法辨識的編碼,畫面如下:

    補充一點這是從上星期二2019/4/16早上8:00過後發生的,之前信件都是正常可以看到中文

    試試看用 Microsoft Remote Connectivity Analyzer 裡面的 Message Header Analyzer,
    將郵件中的原始編碼內容丟進去分析,
    看亂碼的郵件與 4/16 之前正常的郵件有什麼不同

    如果可以的話,將分析結果提供給大家參考,
    會更好進行研究及討論

    另外,論壇是微軟提供公開交流討論的地方,
    沒有哪一個網友或專家應該要出面負責回答您的問題,
    所以未來請盡量避免點名


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部

    論壇不是神壇,沒人會通靈知道問題狀況
    請正確簡述標題及詳述狀況
    如何在論壇正確發問,可以參考iThome的文章:
    如何問到我要的答案


    2019年4月23日 下午 09:57
    版主
  • 微軟專家你好!

    下圖為我將4/16前ERP Server產生的正常信和之後異常的信件分析圖片貼上來提供給專家

    2019年4月24日 上午 02:05
  • 微軟專家你好!

    下面是我排除ERP寄出的信,直接從Windows server 2008 R2 IIS SMTP Server做的信件測試,如下圖:


    下圖為測試中文信件的狀況

    下圖為我Office365寄出的備份信內容

    下圖為我個人Gmail從Office365發過來收到的信件


    • 已編輯 Morerich 2019年4月24日 上午 03:39
    2019年4月24日 上午 03:09
  • 微軟專家你好!

    下圖為我將4/16前ERP Server產生的正常信和之後異常的信件分析圖片貼上來提供給專家

    從截圖看,似乎並沒有正確取得郵件的標頭原始碼,
    而是把郵件內容貼上而已

    可以參考這篇文件取得,然後重新分析
    檢視網際網路郵件標頭
    一點通 - 爲什麽在 Outlook 2010 找不到察看郵件標頭資訊的功能呢? (MVP 撰寫)


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部

    論壇不是神壇,沒人會通靈知道問題狀況
    請正確簡述標題及詳述狀況
    如何在論壇正確發問,可以參考iThome的文章:
    如何問到我要的答案


    2019年4月24日 上午 10:06
    版主
  • 你沒有從 RFC 規範關於 MIME 格式的角度看問題,純粹是 End user 的角度。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年4月24日 下午 02:42
  • 微軟專家你好!

    補上正確郵件標頭分析圖

    1. 4/16前正常信的訊息分析圖

    2.4/16之後異常信件的訊息分析圖

    2019年4月25日 上午 02:00
  • 微軟專家你好!

    謝謝您的指教,的確我只是一個End User略懂一些電腦方面的常識,對於RFC規範沒有很了解,在此虛心領教您的指導,如果我都知道就不用在此請教各位專家,希望您能見諒我的無知,謝謝!

    2019年4月25日 上午 02:09
  • 比了一下兩信件的資料,
    確認郵件內容的 Content-Type 都是一致的 text/plain
    看來真的只是差別在 16 號之後會發生

    如果都沒有調整過什麼,可能會是以下方向
    1. 請 O365 端再協助測試確認
    2. 更改指定輸出的編碼


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部

    論壇不是神壇,沒人會通靈知道問題狀況
    請正確簡述標題及詳述狀況
    如何在論壇正確發問,可以參考iThome的文章:
    如何問到我要的答案

    2019年4月25日 上午 07:22
    版主
  • 謝謝微軟專家的意見
    2019年4月25日 上午 08:57
  • 如果你根本不打算理解 RFC ,那就用 End User 的方法。

    1. 先確認 OWA 及 Outlook 其他信件有無問題,以便確認問題的大範圍。

    2. 一般大範圍應該是沒問題,有的話,整個論壇都會一堆類似問題,可以鎖定是特定信件問題。在這邊先假設特定信件問題。

    a. 針對同一系統將正確的信與異常的信使用 Outlook 打開信件後,選單、檔案、內容、網際網路標題 分別貼出來,必須是原始收件者,不得使用轉寄。

    b. From / To / Subject 等採用的是行內編碼 (inline) ,理論上一起錯,你 outlook 的圖收件者中文正確,title 錯誤,如果是原始收件者就有這堆人,信頭要特別看 To / Subject 這兩個進行檢討。

    c. 有正確全信編碼的應該有這樣的關鍵字,注意有底線的字:

    Content-Type: text/plain; charset=xxx
    Content-Transfer-Encoding: xxx

    你已貼出的內容並沒有,所以假定 Outlook 使用預設語系解碼。

    使用 Outlook 打開信件後,工具列 動作 其他動作 編碼 先確認目前編碼是甚麼,試著選擇其他編碼看看。

    ERP 發出的信件,若是 Windows 程式,通常是 big5 ,若是 Web base ,通常是 utf-8

    Mail Server 端不會動信件原始的編碼,但有可能被 Anti-Spam 移除特定信頭的標籤。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年4月25日 下午 03:47
  • 微軟專家你好!

    我測試過從OWA和Outlook寄信是沒有問題,但是我司的ERP是IBM UNIX系統AIX 5.3版它是使用Sendmail系統寄送郵件,由於此系統它發送都是直接以文字內容Text/plain丟出資料,並不會在信件內附加編碼的標籤,最重要是它在4/16 8:00前信件都是正常,之後卻是亂碼的狀況,實在令人百思不得其解,加上我從windows server 2008 R2做測試直接丟中文字檔案的信到office365,中文就是亂碼,後來我將中文檔案使用Notepad ++另存檔案為UTF8編碼 檔首無BOM格式寄的中文信就正常了,表示BIG5編碼檔格式的中文檔案是有問題的

    下圖為測試中文信件的狀況,直接將編輯好的中文信丟到office 365中文是亂碼

    下圖是用Notepad++轉檔,則發現中文字就正常

    以上說明謝謝指教

    2019年4月26日 上午 02:52
  • 說實話,我覺得目前比較快的解決方式,
    會是研究如何從 ERP 程式系統端指定輸出 Unicode 編碼

    另外,比較可以確定原因應該不是在發問的 IIS SMTP Server 上了 :)


    蘇老碎碎念
    資訊無涯,回頭已不見岸
    Facebook - 微軟台灣官方論壇愛好者俱樂部

    論壇不是神壇,沒人會通靈知道問題狀況
    請正確簡述標題及詳述狀況
    如何在論壇正確發問,可以參考iThome的文章:
    如何問到我要的答案

    2019年4月26日 下午 02:41
    版主
  • RFC 的規範,在 SMTP 中,是不會有 BOM 存在,那不然 gb2312 怎麼辦?

    前面也列範例給你看,純文字的編碼標示是:

    Content-Type: text/plain; charset=utf-8

    當 charset 省略時,就會使用 client 端預設語系解碼。

    初判應該是 ERP 的格式被變更,檢查一下維護狀況或是更新情形。

    再次強調 SMTP 不會變更你的編碼,SMTP 只是郵差,他不會把你的信改寫。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年4月26日 下午 03:04