【问题标题】:Sending e-mail from gmail SMTP with ASP.NET MVC C#使用 ASP.NET MVC C# 从 gmail SMTP 发送电子邮件
【发布时间】:2015-12-16 16:19:02
【问题描述】:

我正在创建应用程序并返回错误。这是 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);”在源错误中。我做错了什么?

【问题讨论】:

  • SmtpClient 肯定需要直接分配给它的主机详细信息:_smtpClient.Host = "smtp.gmail.com"_smtpClient.Port = 587。如果我弄错了,请有人纠正我,但我之前没有看到 SmtpClientweb.config 读取它的设置。
  • 不,这就是 web.config 部分的用途。 SmtpClient 应该从那里读取它。问题是 &lt;smtp&gt; 标记上缺少属性和/或添加到其他 Web.config 的 OP,而不是站点根目录中的属性。
  • 感谢您的澄清,我没有意识到它会这样做。

标签: c# asp.net-mvc-4 smtp gmail


【解决方案1】:

首先像这样向你的标签添加描述:

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

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

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 2016-09-02
    • 2015-10-22
    • 2011-08-18
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多