.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 " );
mail.To.Add( new MailAddress( " toabc@163.com " , " 名字 " ,Encoding.GetEncoding( " GB2312 " )));
mail.SubjectEncoding = Encoding.GetEncoding( " GB2312 " );
mail.BodyEncoding = Encoding.GetEncoding( " GB2312 " );