我正在尝试从我的asp.net应用程序发送电子邮件,该功能在我的机器上工作正常,但当我在网络服务器上部署它时,我收到错误:SMTP服务器需要安全连接或客户端是未经过身份验证。服务器响应为:5.5.1需要身份验证,
任何人都可以提供帮助吗?感谢
答案 0 :(得分:8)
最后我设法解决了,SSL也应该在网络服务器上启用,这里有一个在IIS7上启用ssl的链接
答案 1 :(得分:6)
请试试这个
private void MailSendThruGmail()
{
MailAddress fromAddress = new MailAddress("sender@gmail.com", "From Name");
MailAddress toAddress = new MailAddress("recipient@gmail.com", "To Name");
const string subject = "test";
const string body = @"Using this feature, you can send an e-mail message from an application very easily.";
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(fromAddress.Address, toAddress.Address, subject, body);
msg.IsBodyHtml = true;
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("username", "password"),
EnableSsl = true
};
try
{
client.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
答案 2 :(得分:3)
转到您的邮件服务器并检查您的防火墙设置。然后转到gmail,在帐户设置中将您的服务器地址添加到gmail安全客户端列表中。
答案 3 :(得分:0)
您是域的一部分,SMTP服务器也在此域中。如果是这种情况,则可能是您自动通过Windows身份验证进行身份验证,并且运行IIS的用户可能是其所在计算机的本地用户。您可以在域用户下运行应用程序池并使用模拟(未经过测试,但应该可以使用),或者在发送电子邮件时以编程方式向SMTP服务器添加一些凭据。