C#实现qq邮箱发送邮件(验证码)

    xiaoxiao2023-11-24  187

    废话不多说,直接开始操作!

    首先,登录发送者QQ邮箱,点开设置----》账户,再将这个(POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务)开启

    例图:

    开启之后点开生成授权码,获得授权码后,将授权码放入下面代码中即可!

    接着编写一个类:

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; using System.Net.Mail; using System.Net; using System.Net.Mime;

    namespace SendEmail {     class Send     {         //实例化一个发送邮件类。         private static MailMessage mailMessage = new MailMessage();         public static bool QQ_email()         {             //发件人邮箱地址,方法重载不同,可以根据需求自行选择。             mailMessage.From = new MailAddress("发件人邮箱","发件人昵称");             //收件人邮箱地址。             mailMessage.To.Add(new MailAddress("收件人邮箱"));             //邮件标题。             mailMessage.Subject = "验证码";             //邮件内容。             mailMessage.Body = "您好,您的验证码为:663245";             //添加到附件中              AddAnnex("1号附件路径,2号附件路径,...");

                //实例化一个SmtpClient类。             SmtpClient client = new SmtpClient();             //在这里我使用的是qq邮箱,所以是smtp.qq.com,如果你使用的是126邮箱,那么就是smtp.126.com。             client.Host = "smtp.qq.com";             //使用安全加密连接。             client.EnableSsl = true;             //不和请求一块发送。             client.UseDefaultCredentials = false;             //验证发件人身份(发件人的邮箱,邮箱里的生成授权码);             client.Credentials = new NetworkCredential("发件人邮箱", "发件人授权码");             //发送             client.Send(mailMessage);             return true;         }

            private static void AddAnnex(string Path)         {             string[] path = Path.Split(',');             Attachment data;             ContentDisposition disposition;             for (int i = 0; i < path.Length; i++)             {                 data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件                  disposition = data.ContentDisposition;                 disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期                  disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期                  disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期                  mailMessage.Attachments.Add(data);//添加到附件中              }         }

        } }  

    然后调用这个类即可完成!相当简单!

    如有不会的,请留言。。。谢谢支持!

     

    补充一点,自己遇到的问题,我在本地测试的时候能够正常发送邮件,但是一但部署到服务器上就不能发送邮件了,其实解决办法很简单,只需要设置一下端口号就行了!client.Port = 587;邮件部署到服务器上发送不出的原因其实是服务器禁用了邮箱端口25,只要将其端口改掉就OK啦!

    最新回复(0)