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