发送附件时,防止文件名中的中文字符变成乱码

在.net2005中,利用System.Net.Mail;下的MailMessage类发送邮件,为了防止附件文件名中的中文字符变成乱码,需要加attachment.NameEncoding = Encoding.GetEncoding("GB2312");详细见下面的函数: 

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; 
    } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值