服务器发送邮件
大家都知道 C#中的 System.Net.Mail.SmtpClient 类是专门用来请求 SMTP 服务器发送邮件的,但是
如果使用本地的 SMTP 服务器(比如本机 IIS 的 SMTP 服务器)发送邮件,会被许多大型网站的邮箱当做
垃圾邮件来处理,原因是本地 SMTP 服务器的地址并不为人所知,发送的邮件理所当然会被当做来历不明
的邮件,所以我们要借助一些大型知名网站的 SMTP 服务器来为我们发送邮件,这里就向大家介绍使用
163 的 SMTP 服务器发送邮件的方法。
PS:使用 163 的 SMTP 服务器发送邮件会使得你开发系统所发送的邮件都使用 163 的邮箱地址作为发信
人的地址,但是我认为这总比把邮件每次都发送到用户的垃圾邮件箱要强,因为如果你发送的邮件全是垃
圾邮件,用户可能根本就不会去看你发送的是什么,就把邮件删掉了,这才是最糟糕的....
下面我们来看看代码:
System.Net.Mail.SmtpClientclient=newSystem.Net.Mail.SmtpClient();
client.Host="smtp.163.com";//使用 163 的 SMTP 服务器发送邮件
client.UseDefaultCredentials=true;
client.DeliveryMethod=System.Net.Mail.SmtpDeliveryMethod.Network;
client.Credentials=newSystem.Net.NetworkCredential("abc","*******");//
163 的 SMTP 服务器需要用 163 邮箱的用户名和密码作认证,如果没有需要去 163 申请个,
//这
里假定你已经拥有了一个 163 邮箱的账户,用户名为 abc,密码为*******
System.Net.Mail.MailMessageMessage=newSystem.Net.Mail.MailMessage();
Message.From=newSystem.Net.Mail.MailAddress("abc@163.com");//这里需要注意,
163 似乎有规定发信人的邮箱地址必须是 163 的,而且发信人的邮箱用户名必须和上面 SMTP 服务器认证
时的用户名相同
//因为上面用的用
户名 abc 作 SMTP 服务器认证,所以这里发信人的邮箱地址也应该写为 abc@163.com
Message.To.Add("123456@gmail.com");//将邮件发送给 Gmail
Message.To.Add("123456@qq.com");//将邮件发送给 QQ 邮箱
Message.Subject="测试标体";
Message.Body="测试邮件体";
Message.SubjectEncoding=System.Text.Encoding.UTF8;
Message.BodyEncoding=System.Text.Encoding.UTF8;
Message.Priority=System.Net.Mail.MailPriority.High;
Message.IsBodyHtml=true;
client.Send(Message);