【问题标题】:asp.net mvc send email error: unable to send an emailasp.net mvc 发送电子邮件错误:无法发送电子邮件
【发布时间】:2012-07-31 05:28:42
【问题描述】:

当使用以下代码创建新用户时,我有 mvc Web 应用程序发送电子邮件:

private static void SendMail(User user)
        {
            string ActivationLink = "http://localhost/Account/Activate/" +
                                     user.UserName + "/" + user.NewEmailKey;

            var message = new MailMessage("ashu@gmail.com", user.Email)
            {
                Subject = "Activate your account",
                Body = ActivationLink
            };

            var client = new SmtpClient("localhost");
            client.UseDefaultCredentials = false;
            client.Send(message);
        }

我的代码有什么问题请告诉我。

错误:发送邮件失败。 {"无法连接到远程服务器"}

Smtp 配置:

【问题讨论】:

  • 您遇到什么错误?你的stmp服务器是怎么配置的?
  • 请提供异常详情
  • 错误:发送邮件失败。 {"无法连接到远程服务器"}
  • 你在localhost / dev机器上安装并启动了SMTP服务吗?
  • 是的,我使用 smtp config 编辑我的问题

标签: asp.net-mvc email


【解决方案1】:

以下是此错误的可能原因:

1 您没有提供正确的身份验证详细信息

2 端口被阻止,例如被防火墙阻止

在您的示例中,我注意到您在创建 SmtpClient 时没有指定端口 - 指定它可能会有所帮助。

【讨论】:

    【解决方案2】:

    Gmail 在 587 端口打开,你需要启用 ssl。

    试试下面的代码。

            var smtp = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(<fromAddress>, <fromPassword>)
            };
            using (var message = new MailMessage(<fromAddress>, <toAddress>)
            {
                Subject = <subject>,
                Body = <body>
            })
            {
                smtp.Send(message);
            }
    

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多