Jmail 邮件乱码问题详解

1. 情景:

    在VS.NET 平台上利用w3 Jmail V4.5组件进行邮件发送程序开发,邮件内容可能是各种语言形式,比如“简体”、“繁体”、“日文”等内容.

 

2.问题:

   但实际开发后,发现发送的邮件内容对于非英文内容、标题等都会出现乱码。

 

3.解决方法:

     从网络上搜索到的信息来看,多数都认为问题出在jmail.Message 一些重要的属性设置上。我依照网友提供的帮助提示及成功经验来设置属性,但是问题依然存在;实在没辙,我只能采用最笨的方法,枚举所有可能的设置;最终发现了最佳参数设置可以解决上述问题。

      奇异的是,本人的设置的结果与网友的成功经验设置,简直就是完全相反。很奇怪到底是怎么一回事,然而实践是检验真理的唯一标准,无论怎么样我的设置方式是实践检验OK的。

       下面将列举我的设置方式,及与他人的显著差异。

    

      jmail.Message jmessage = new jmail.MessageClass();


       //郵件格式設置
      jmessage.Charset = "utf-8";  //采用utf-8形式,可以兼容多語言問題。
      jmessage.Silent = true;.

 

     //EnableCharsetTranslation屬性必須設置true,否則郵件內容、標題會亂碼 .
      jmessage.EnableCharsetTranslation = true ;

 

      jmessage.ContentTransferEncoding = "base64";
      jmessage.Encoding = "base64";

     

      //必須設置ISOEncodeHeaders為True,否則標題會出現亂碼。(此处与网友提供的设置完全相反)
      jmessage.ISOEncodeHeaders = true;  

 

     //Caution:如果有附件,ContentType不能设为 "text/html";而必须是 "text/plain";

     // 否则附件就會變成email body的一部分,而且是乱码。
      //jmessage.ContentType = "text/plain";
     

 

    采用上述设置后,不管邮件内容如何,都不会出现乱码了。

 

 

 

你可能感兴趣的:(Jmail 邮件乱码问题详解)