Gmail发邮件

Posted blogcore

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gmail发邮件相关的知识,希望对你有一定的参考价值。

1、需求说明

在万网或者特别是阿里云的云服务器上,往往都是不开21端口,导致发邮件失败,另外如果是国外服务器,也需要换成465端口的Gmail。代码如下

        /// <summary>
        /// 发送邮件,成功返回True,失败返回
        /// </summary>
        /// <param name="toEmail">接收的邮箱</param>
        /// <param name="title">邮件主题</param>
        /// <param name="content">邮件内容</param>
        /// <returns></returns>
        public static bool SendEmail(string toEmail, string title, string content)
        {
 
            try
            {
                var Model = ConfigHelper.GetEmailConfig();
                System.Net.Mail.MailMessage _Mail = new System.Net.Mail.MailMessage();
                SmtpClient client = new SmtpClient(Model.SMTP, Model.Port.ToInt());
                // ssl
                client.EnableSsl = true;  // SSL安全连接一定要注意设为 true
                client.UseDefaultCredentials = false;//必须在client.Credentials=XXX前面
                // 你的邮件帐号
                client.Credentials = new System.Net.NetworkCredential(Model.Email, Model.Password);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                // 发送邮件地址
                _Mail.To.Add(toEmail);
                // send mail from
                _Mail.From = new MailAddress(Model.Email);
                // send mail subject
                _Mail.Subject = title;
                // 是否为html格式
                _Mail.IsBodyHtml = true;
                // send mail content
                _Mail.Body = content;
                // 发送
                client.Send(_Mail);
                return true;
            }
            catch
            {
                return false;
            }
        }

1.1 必须使用ssl。即client.EnableSsl = true。
1.2 其中代码client.UseDefaultCredentials = false;必须要在client.Credentials = new System.Net.NetworkCredential(Model.Email, Model.Password);这句代码前面。
1.3 Gmail会阻止应用程序访问邮箱服务,发邮件的时候Gmail会发邮件给你,然后去设置下(https://www.google.com/settings/security/lesssecureapps)开启“允许安全性较低的应用”。
1.4 应用程序位置。服务器上打开浏览器并登录到Gmail。这使得Gmail了解到服务器及其IP地址属于您,它将允许您通过您的应用程序发送电子邮件。

以上是关于Gmail发邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何用java发邮件?[重复]

C#和ASP.NET通过Gmail账户发送邮件的代码

apache_conf [gmail SMTP info]用于配置外发电子邮件的smtp信息#gmail #smtp #notifications

Imaplib从带有附件的gmail转发邮件(Python)

发啥我手机发送电子邮件发不出去呢?他老是提示“网络服务器错误”,请高手指点。手机该怎样设置?

树莓开机发邮件告诉自己ip