台灣最大程式設計社群網站
線上人數
593
 
會員總數:244869
討論主題:188880
歡迎您免費加入會員
討論區列表 >> ASP.NET >> ASP.NET發信會亂碼
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
ASP.NET發信會亂碼
價值 : 50 QP  點閱數:5766 回應數:9

樓主

daphne
門外漢
0 1
18 4
發送站內信

請問一下...我用ASP.NET寫一個系統auto reply的程式~
雖然用戶在網頁上填資料,資料進資料庫這個過程..中文都是ok的~ (We.config裡用的encoding是utf-8)
但是 系統自動回覆 郵件時..標題與內容中文的部份都會亂碼 (標題與內文都是抓db裡的值)
可以哪位大大幫我看看要把enconding那段加在哪呢??

以下為程式的信件內容片段..

//開啟資料庫連線
conn.Open();
cmd.ExecuteNonQuery();
//設定寄件用SmtpServer
SmtpMail.SmtpServer = Model.ConferenceGlobalSettings.SMTP;

//取得系統管理者email
string committeEmail = Model.ConferenceGlobalSettings.AdminEmail;
string docRoot = Model.ConferenceGlobalSettings.SystemRoot;
//設定信件內容

string[] authorMailSplit = Email.Split(new char[] {'@'});
//authorMailSplit.

StringBuilder MailBody = new StringBuilder();
//----------------------
MailBody.Append("Dear " + FirstName + " " + LastName + " :");

MailBody.Append(Environment.NewLine);
MailBody.Append(Environment.NewLine);

string Thank="Thank you for registering with the "+Model.ConferenceGlobalSettings.ShortName+" Online Submission System. ";
MailBody.Append(Thank);
MailBody.Append(Environment.NewLine);
MailBody.Append("Your login details are:");
MailBody.Append(Environment.NewLine);
MailBody.Append(Environment.NewLine);
MailBody.Append(" Username: " + Email);
MailBody.Append(Environment.NewLine);
MailBody.Append(" Password: " + Password);

MailBody.Append(Environment.NewLine);
MailBody.Append(Environment.NewLine);
MailBody.Append("To activate your new account, please visit the following URL: ");
MailBody.Append(Environment.NewLine);
MailBody.Append(" " + docRoot + "/Submission/AuthorActivation.aspx?CODE=" + ActCode + "&SRV=" + authorMailSplit[1] + "&ID=" + authorMailSplit[0]);
MailBody.Append(Environment.NewLine);
MailBody.Append(Environment.NewLine);
MailBody.Append("If you have any problems, please ");
MailBody.Append(Environment.NewLine);
MailBody.Append("contact system support at ");
MailBody.Append(Model.ConferenceGlobalSettings.AdminEmail);
MailBody.Append(Environment.NewLine);
MailBody.Append(Environment.NewLine);
MailBody.Append("Best,");
MailBody.Append(Environment.NewLine);
MailBody.Append(Environment.NewLine);
MailBody.Append("System Support");
MailBody.Append(Environment.NewLine);
MailBody.Append(Model.ConferenceGlobalSettings.ShortName);
//----------------------
MailMessage message = new MailMessage();
message.To = Email;
message.From = committeEmail;
message.Subject = Model.ConferenceGlobalSettings.ShortName+" Account Confirmation and Activation";
message.BodyEncoding = Encoding.BIG5;
message.Body = MailBody.ToString();
SmtpMail.Send(message);


搜尋相關Tags的文章: [ ASP.NET ] , [ 發信 ] , [ 亂碼 ] ,
本篇文章發表於2006-05-25 19:16
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Insus.NET
捐贈 VP 給 Insus.NET 檢舉此回應
mail.BodyEncoding = System.Text.Encoding.GetEncoding("big5")
本篇文章回覆於2006-05-25 20:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

daphne
檢舉此回應
謝謝喔~
不過我試過了~
還是不行捏~
我把message.BodyEncoding = Encoding.BIG5;
改成message.BodyEncoding = System.Text.Encoding.GetEncoding("big5")
或是message.BodyEncoding = Encoding.UTF8;
都不行~><~

去查了一下.NET manual
發現encoding的屬性只有ASCII,Unicode,UTF7,UTF8這幾個~
沒有BIG5說..
很鬼異捏><

而且我發現..收下來的信還是default的編碼方式還是西歐語系(ISO)
還有其他辦法嗎?
感謝喔!
本篇文章回覆於2006-05-25 23:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Hungxiang
檢舉此回應
會不會是Web.config中的responseEncoding的關係?
本篇文章回覆於2006-05-26 09:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Johnny
檢舉此回應
hello daphne

妳方便把出現亂碼的標題「原始碼」貼上來嗎?
不是程式 source code
是郵件在 header 區段中 Subject: 這一段的資訊
本篇文章回覆於2006-05-26 09:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

daphne
檢舉此回應
嗯~的確編碼有問題~
所以信的source code出現

Date: Mon, 29 May 2006 18:05:04 +0800
Message-ID: <000c01c68307$5b7ebc80$8282728c@csmot>
MIME-Version: 1.0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft CDO for Windows 2000
Thread-Index: AcaDB1t+GyATtKZxR/2wCQDZn18idQ==
Content-Class: urn:content-classes:message
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807

charset 不知道為啥一直是us-ascii

而且我檢查了Web.config
是設定成降的~
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-US"
/>

看起來都很正常呀~
不知道為啥還是有亂碼><
本篇文章回覆於2006-05-29 18:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

Johnny
檢舉此回應
能不能將 Subject: 這一段也 post 上來
這一段才是重點 ~~~
本篇文章回覆於2006-05-30 09:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

daphne
檢舉此回應
subject中文的部份是亂碼
Subject: 2006???? Account Confirmation and Activation

問號的部分~原本應該顯示中文~
本篇文章回覆於2006-05-30 11:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

Johnny
檢舉此回應
try it


本篇文章回覆於2006-06-01 11:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

daphne
檢舉此回應
那內文亂碼呢?
本篇文章回覆於2006-06-01 19:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.