使用ASP.NET MVC C#从gmail SMTP发送电子邮件

本文关键字:SMTP 电子邮件 gmail ASP NET MVC 使用 | 更新日期: 2023-09-27 18:27:13

我正在创建应用程序,它返回错误。这是web.config文件中配置SMTP连接的一部分:

<system.net>
    <mailSettings>
      <smtp>
        <network host="smtp.gmail.com" 
                 port="587" 
                 userName="mymail@gmail.com" 
                 password="mypassword" 
                 enableSsl="true"
                 defaultCredentials="false"/>
      </smtp>
    </mailSettings>
  </system.net>

下面是Helpers控制器中的代码:

namespace Subscription.Helpers
{
    public static class MailHelper
    {
        private static SmtpClient _smtpClient;
        static MailHelper()
        {
            _smtpClient = new SmtpClient();
        }
        public static void SendEmail(List<string> recipientAddress, string subject, string news)
        {
            using (MailMessage mail = new MailMessage())
            {
                mail.From = new MailAddress("mymail@gmail.com", "Google.com", Encoding.UTF8);
                foreach(string address in recipientAddress)
                {
                    mail.Bcc.Add(new MailAddress(address));
                }
                mail.Subject = subject;
                mail.Body = news;
                mail.SubjectEncoding = Encoding.UTF8;
                mail.BodyEncoding = Encoding.UTF8;
                mail.Priority = MailPriority.High;
                _smtpClient.Send(mail);
            }
        }
    }
}

当我想从数据库向所有地址发送电子邮件时,它会返回未处理的异常,并进行通信:"未指定SMTP主机"和源错误中的行"_smtpClient.send(mail);"。我做错了什么?

使用ASP.NET MVC C#从gmail SMTP发送电子邮件

首先向标签添加描述,如下所示:

<smtp deliveryMethod="Network" from="username@gmail.com">

然后在你的代码后面添加smtp。EnableSsl=true;并将其从web.config中删除。