asp.net mvc发送电子邮件错误:无法发送电子邮件

时间:2012-01-06 14:16:22

标签: asp.net-mvc email

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

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配置: enter image description here

2 个答案:

答案 0 :(得分:1)

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

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

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

在您的示例中,我注意到您在创建SmtpClient时未指定端口 - 可能有助于指定端口。

答案 1 :(得分:1)

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);
        }