使用System.Net.Mail.SmtpClient发送邮件时出现的乱码问题

以前公司给客户群发邮件采用的是用Socket直接与邮件服务器通讯的方式,但是后来发现可能是我们的那部分模块写的不完善,采用多线程同时发送大量邮件时会出现丢失邮件的情况,大概会丢失10%左右,以前写这个模块的人现已不在公司了,于是决定直接采用.NET自带的System.Net.Mail.SmtpClient组件。

.NET的System.Net.Mail.SmtpClient封装的比较好,发送邮件时操作比较简单,只需简单设置几个属性即可。我采用SmtpClient替换以前的邮件发送模块后,丢失邮件的情况几乎没有了~~~

但过了几天,有些客户反映收到的邮件是乱码,虽然通过让客户修改用来接收邮件的ie或是foxmail等客户端的编码可以解决,但是总不能每次都让客户修改编码吧……

查找原因,发现邮件正文的模版是html格式,编码采用的是gb2312,但用SmtpClient时设置的却是utf-8,遂将SmtpClient发送时的设置改为gb2312,但此时发送出去的邮件却全都是乱码了,在网上查找后得到  stone 兄弟的提示,终于解决,方法如下:

mail.From  =   new  MailAddress( "from abc@163.com " , " 名字 " , Encoding.GetEncoding( " GB2312 " ));
mail.To.Add(
new  MailAddress( " toabc@163.com " , " 名字 " ,Encoding.GetEncoding( " GB2312 " )));

mail.SubjectEncoding 
=  Encoding.GetEncoding( " GB2312 " );
mail.BodyEncoding 
=  Encoding.GetEncoding( " GB2312 " );

转载于:https://www.cnblogs.com/bartholomew/archive/2006/12/01/578697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值