我有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配置:
答案 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);
}