发送附件时,防止文件名中的中文字符变成乱码
生活随笔
收集整理的這篇文章主要介紹了
发送附件时,防止文件名中的中文字符变成乱码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在.net2005中,利用System.Net.Mail;下的MailMessage類發(fā)送郵件,為了防止附件文件名中的中文字符變成亂碼,需要加attachment.NameEncoding?=?Encoding.GetEncoding("GB2312");詳細見下面的函數(shù):?
private?bool?SendMail(string?strFrom,?string?strTo,?string?strSubject,?string?strBody,?bool?isBodyHtml,?string?strFileName,?string?strSenderName,?string?strPassword,?string?strMailServer)?
????{?
????????bool?success?=?false;?
????????MailAddress?from?=?new?MailAddress(strFrom);?
????????MailAddress?to?=?new?MailAddress(strTo);?
????????MailMessage?msg?=?new?MailMessage(from,?to);?
????????msg.Subject?=?strSubject;?
????????msg.Body?=?strBody;?
????????msg.IsBodyHtml?=?isBodyHtml;?
????????if?(strFileName?!=?"")?
????????{?
????????????Attachment?attachment?=?new?Attachment(strFileName);?
????????????attachment.NameEncoding?=?Encoding.GetEncoding("GB2312");?
????????????msg.Attachments.Add(attachment);?
????????}?
????????try?
????????{?
????????????SmtpClient?client?=?new?SmtpClient(strMailServer);?
????????????client.Credentials?=?new?System.Net.NetworkCredential(strSenderName,?strPassword);?
????????????client.Send(msg);?
????????????Response.Write("<font?color=blue>Success:</font>?Send?to?/"<b>"?+?strTo?+?"</b>/"<br?/>");?
????????????success?=?true;?
????????}?
????????catch(Exception?ex)?
????????{?
????????????Response.Write("<font?color=red>Fail:</font>?Send?to?/"<b>"?+?strTo?+?"</b>/""?+?ex.Message?+"<br?/>");?
????????????success?=?false;?
????????}?
????????return?success;?
????}
private?bool?SendMail(string?strFrom,?string?strTo,?string?strSubject,?string?strBody,?bool?isBodyHtml,?string?strFileName,?string?strSenderName,?string?strPassword,?string?strMailServer)?
????{?
????????bool?success?=?false;?
????????MailAddress?from?=?new?MailAddress(strFrom);?
????????MailAddress?to?=?new?MailAddress(strTo);?
????????MailMessage?msg?=?new?MailMessage(from,?to);?
????????msg.Subject?=?strSubject;?
????????msg.Body?=?strBody;?
????????msg.IsBodyHtml?=?isBodyHtml;?
????????if?(strFileName?!=?"")?
????????{?
????????????Attachment?attachment?=?new?Attachment(strFileName);?
????????????attachment.NameEncoding?=?Encoding.GetEncoding("GB2312");?
????????????msg.Attachments.Add(attachment);?
????????}?
????????try?
????????{?
????????????SmtpClient?client?=?new?SmtpClient(strMailServer);?
????????????client.Credentials?=?new?System.Net.NetworkCredential(strSenderName,?strPassword);?
????????????client.Send(msg);?
????????????Response.Write("<font?color=blue>Success:</font>?Send?to?/"<b>"?+?strTo?+?"</b>/"<br?/>");?
????????????success?=?true;?
????????}?
????????catch(Exception?ex)?
????????{?
????????????Response.Write("<font?color=red>Fail:</font>?Send?to?/"<b>"?+?strTo?+?"</b>/""?+?ex.Message?+"<br?/>");?
????????????success?=?false;?
????????}?
????????return?success;?
????}
總結
以上是生活随笔為你收集整理的发送附件时,防止文件名中的中文字符变成乱码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言求完数
- 下一篇: [转帖]外壳命名空间扩展