C#使用smtp发送邮件

使用邮件引流在很久很久之前风靡过一段时间,至今仍然有不少人使用邮件服务引流、诈骗等等。作为站长,免不了有时候会对用户进行邮件推送活动服务等信息,而使用网站程序发送邮件过于缓慢,因此,PC端的批量发信是首选。经过半天坑爹测试,终于找到了可以正确发送邮件的程序代码,分享给大家。

C#使用smtp发送邮件

C#使用smtp发送邮件

发信代码很简单,首先添加动态链接库using System.Net.Mail;然后写下如下代码:

string host = "smtp.exmail.qq.com";// 邮件服务器 
string userName = "xxxx@xxx.com";// 发送端账号 
string password = "xxxxx";// 发送端密码
SmtpClient client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式 
client.Host = host;//邮件服务器
client.UseDefaultCredentials = true;
client.Port = 587;//端口
client.EnableSsl = true;//使用ssl
client.Credentials = new System.Net.NetworkCredential(userName, password);//用户名、密码
string strfrom = userName;
string strto = "xxxx@qq.com";
string strcc = "xxxx@163.com";//抄送
string subject = "这是测试邮件标题5";//邮件的主题 
string body = "测试邮件内容5";//发送的邮件正文

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.From=new MailAddress(strfrom,"发信名称");
msg.To.Add(strto);
msg.CC.Add(strcc);

msg.Subject = subject;//邮件标题 
msg.Body = body;//邮件内容 
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
msg.IsBodyHtml = true;//是否是HTML邮件 
msg.Priority = MailPriority.High;//邮件优先级 

try
{
client.Send(msg);
Console.WriteLine("发送成功");
}
catch (System.Net.Mail.SmtpException ex)
{
Console.Write(ex.ToString());
}

有两个问题需要注意:第一个是发信方式client.DeliveryMethod = SmtpDeliveryMethod.Network;不要选错了,否则可能需要安装IIS。第二个就比较坑爹了,按照发信服务器提供的信息,ssl应该使用465端口,事实上是不行的,必须使用587端口,即便你自定义了端口,也必须使用587端口!!!就是这个问题搞了我半天时间,真是坑爹。

注意:启用ssl后必须使用587端口才能正常发信!

不知道别人的程序使用465怎么成功的,而且还有成功的视频,真是奇怪!搞得我都快放弃使用pc发信了,微软真是坑,PHP都能正常发信!PHP发送电子邮件函数mail详解

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/241324.html

(0)
上一篇 2022年4月7日 00:32
下一篇 2022年4月7日 00:32

相关推荐

发表回复

登录后才能评论