C# 谷歌邮箱发送邮件

1.介绍

记录一下,那些年踩过的坑!

2.谷歌账号及邮箱配置过程

第一步:设置gmail邮箱账号,登录进google.com谷歌账号(需要翻墙) ,进入邮箱服务器,点击右上角的设置,然后选择转发和 POP/IMAP,启用POP和IMAP这两项的功能.

链接: https://mail.google.com/mail/u/0/?ogbl#settings/fwdandpop

C# 谷歌邮箱发送邮件

第二步:降低谷歌账号的安全性访问 ,设置“启用”按钮会自动保存,这个是为了降低谷歌的安全检查措施。 如果被停用了需要更改的安全设备性质才能保存。

进入账号链接: https://www.google.com/settings/security/lesssecureapps
C# 谷歌邮箱发送邮件
第三步:允许任何设备登陆

链接: https://accounts.google.com/b/0/DisplayUnlockCaptchaC# 谷歌邮箱发送邮件
C# 谷歌邮箱发送邮件
第四步:到谷歌账号中确认本人所为(注意:布置到生产服务器上需要在这里确认下,最好把第三、四步整个设置过程也在服务器上的浏览器走一次)

链接: https://myaccount.google.com/security?origin=3C# 谷歌邮箱发送邮件
a.首次调用接口时这里有时会有提示需要确认
C# 谷歌邮箱发送邮件
C# 谷歌邮箱发送邮件
C# 谷歌邮箱发送邮件

3.代码

代码片

        /// <summary>         /// 发送邮件         /// </summary>         /// <param name="toEmail">收件人地址</param>         /// <param name="title">邮件标题</param>         /// <param name="content ">邮件内容</param>         public bool SendEmail(string toEmail, string title, string content )         {             var emailAcount = "xxxx@gmail.com";//发件邮箱             var emailPassword = "xxxx";//密码             var emailSmtp = "smtp.gmail.com";             var SenderName = "zhong";//发件人名称                          MailMessage message = new MailMessage();             //设置发件人,发件人需要与设置的邮件发送服务器的邮箱一致             MailAddress fromAddr = new MailAddress(emailAcount,SenderName);             message.From = fromAddr;             //设置收件人,可添加多个             message.To.Add(toEmail);             //设置抄送人             //message.CC.Add("xxx@gmail.com");             //设置邮件标题             message.Subject = title;              message.IsBodyHtml = true;             //设置邮件内容             message.Body = content;             //设置邮件发送服务器,服务器根据你使用的邮箱而不同             SmtpClient client = new SmtpClient(emailSmtp);              //设置发送人的邮箱账号和密码             client.Credentials = new NetworkCredential(emailAcount, emailPassword);             //启用ssl,也就是安全发送             client.EnableSsl = true;             //设置587端口             client.Port = 587;             //client.Timeout = 50000;             //client.DeliveryMethod = SmtpDeliveryMethod.Network;//Gmail的发送方式是通过网络的方式,需要指定             //client.UseDefaultCredentials = false;             try             {                 //发送邮件                 client.Send(message);                 return true;             }             catch (Exception e)             {                 Log.WriteLog("发送邮件失败" + e, "log");                 return false;             }         } 

4.本地调试以及发布生产后可能出现的问题

1.调试错误:连接服务器失败。这需要本地电脑翻墙才可以调试成功
C# 谷歌邮箱发送邮件
2.发布生产后的错误:发送邮件失败System.Net.Mail.SmtpException: SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为:5.7.0 Authentication Required. Learn more at!!!

解决方式:再重新走一遍第三、四步。

如果还不行那就直接使用应用专用密码: 先开启两步验证, 再配置应用专用密码。用专用密码来代替原密码。参考: https://blog.csdn.net/qq_38637558/article/details/109453887
C# 谷歌邮箱发送邮件

注:第一次写,只能这样啦,看不懂的请联系博主,哈哈哈哈哈!

版权声明:玥玥 发表于 2021-03-28 0:52:47。
转载请注明:C# 谷歌邮箱发送邮件 | 女黑客导航