发送邮件 - 天蓝色

时间:2014-05-16 20:58:55

标签: email azure

我试图从我的asp.net应用程序发送邮件,但是没有成功。

我的本​​地机器能够使用相同的代码执行此操作:

MailMessage msg = new MailMessage();
msg.From = new MailAddress("maymail@gmail.com", "myName");
msg.Subject = subject;
msg.Body = body;
msg.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
msg.IsBodyHtml = html;
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 25; //587 works too
client.Credentials = new NetworkCredential("mymail@gmail.com", "myPass");
client.EnableSsl = true;
client.Send(msg);

我的环境,它运作良好。

在azure环境中部署后,我收到异常:

SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。

有谁知道为什么?

非常感谢!

2 个答案:

答案 0 :(得分:2)

与客户端环境不同,Azure环境没有可用于直接连接到SMTP并与SMTP交互的端口。有一些服务可用,例如SendGrid,它提供从Azure内发送电子邮件的API。我强烈建议您查看并使用该服务而不是现有方法。

http://sendgrid.com/windowsazure.html

您也可以使用SendGrid等服务从您的开发和azure发送电子邮件。

答案 1 :(得分:0)

尝试添加以下两行:

client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;

我也会尝试端口587而不是25。