我正在尝试通过asp.net mvc2发送电子邮件,所有这些都适用于我们公司的邮件服务器。
但是,我们希望切换到使用客户的BPOS帐户。这在本地工作正常,但是当部署到azure时,我们会遇到一些超时错误。
有人可以确认我有以下正确吗?
SmtpClient smtp = new SmtpClient("Smtp.mail.emea.microsoftonline.com");
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("BPOS-EMAIL", "BPOS-PASSWORD");
此外,有没有人知道为什么它在本地运行时有效,但在天蓝色运行时却不行?
答案 0 :(得分:3)
您是否在完全信任中运行Web角色?默认情况下,SmtpClient将在ASP Medium信任下执行。在该模型下,只允许Smtp通过Azure中的端口25进行通信。
如果您需要使用SmtpClient.Port属性,则需要让角色在完全信任下运行。
通过在服务定义中的Web角色上设置 enableNativeCodeExecution 属性来实现。
<WebRole name="WebRole1" enableNativeCodeExecution="true">
这是我能想到的唯一一件事。如果不是这样,您可以发布错误日志,这可能会显示有关问题的更多详细信息。