【发布时间】:2016-06-08 15:01:13
【问题描述】:
我即将将我的第一个 ASP.NET 网站部署到 Azure: 我的网站上有一个包含 4 个文本框(电子邮件、姓名、主题和正文)和发送按钮的联系表。我使用此配置发送电子邮件:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="Mohamed <name@outlook.com>">
<network host="Smtp.live.com" port="587" enableSsl="true" userName="name@outlook.com" password="mypassword"/>
</smtp>
</mailSettings>
</system.net>
这是发送按钮的处理程序
protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
string fileName = Server.MapPath("~/App_Data/Message.txt");
string mailBody = File.ReadAllText(fileName);
mailBody = mailBody.Replace("##Name##", TextBoxName.Text);
mailBody = mailBody.Replace("##Email##", TextBoxEmail.Text);
mailBody = mailBody.Replace("##Subject##", TextBoxSubject.Text);
mailBody = mailBody.Replace("##Body##", TextBoxBody.Text);
MailMessage visitorMessage = new MailMessage();
visitorMessage.Subject = "New Message: " + TextBoxSubject.Text;
visitorMessage.Body = mailBody;
visitorMessage.From = new MailAddress(TextBoxEmail.Text, TextBoxName.Text);
visitorMessage.To.Add(new MailAddress("name@outlook.com", "Mohamed"));
visitorMessage.ReplyToList.Add(new MailAddress(TextBoxEmail.Text));
SmtpClient mySmtpClient = new SmtpClient();
mySmtpClient.Send(visitorMessage);
LabelIRespond.Visible = true;
}
}
我将这些设置用于 IIS 服务器,显然它不适用于生产服务器。 请告诉我应该进行哪些更改才能启用此功能?
编辑 当我从表单发送消息时,该过程将终止,并且我会在我的电子邮件中收到隐私警告。
【问题讨论】:
-
生产服务器做什么?你看到一个例外吗?是否写入日志消息?它工作的环境和你的生产环境有什么不同? “它不起作用”并不能真正描述问题。
-
该过程未完成,我收到一封主题为“Microsoft 帐户异常登录活动”的电子邮件
-
您不应该使用 SMTP 服务器而不是您的个人来发送电子邮件吗? Azure 发送电子邮件可能会抛出一个危险信号,而在本地,您可能出于测试目的被“列入白名单”或类似的东西。
-
来自blog.smarx.com/posts/… 直接从像 Windows Azure 这样的云发送电子邮件会带来更多挑战,因为您没有专用 IP 地址,而且垃圾邮件发送者很可能会使用 Windows Azure(如果他们没有'还没有)发送大量垃圾邮件。一旦发生这种情况,垃圾邮件黑名单将迅速将 Windows Azure 数据中心的 IP 范围标记为垃圾邮件的来源。这意味着您的合法电子邮件将无法通过。
-
如果您没有公共邮件服务器,我建议您使用 SendGrid - Azure 订阅附带的免费软件包非常棒。对于一个联系表来说可能有点过分了,但我想我会提到它......
标签: c# asp.net email azure web-config