配置 web.config 以发送电子邮件?
Configuring web.config to send emails?
我准备将我的第一个 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 服务器,显然它不适用于生产服务器。
请告诉我应该做哪些更改才能启用此功能?
编辑
当我从表单发送消息时,进程终止,我的电子邮件收到隐私警告。
这是一篇关于使用 windows azure 发送电子邮件的博客 post:
http://blog.smarx.com/posts/emailtheinternet-com-sending-and-receiving-email-in-windows-azure
TLDR - 不要在云主机上使用您的个人电子邮件发送电子邮件,这些服务可能会将云主机 IP 地址范围列入黑名单以帮助防止垃圾邮件。如post链接中指出的那样,在本地、云端或使用第三方服务设置合法的 SMTP 服务器。
我准备将我的第一个 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 服务器,显然它不适用于生产服务器。 请告诉我应该做哪些更改才能启用此功能?
编辑 当我从表单发送消息时,进程终止,我的电子邮件收到隐私警告。
这是一篇关于使用 windows azure 发送电子邮件的博客 post:
http://blog.smarx.com/posts/emailtheinternet-com-sending-and-receiving-email-in-windows-azure
TLDR - 不要在云主机上使用您的个人电子邮件发送电子邮件,这些服务可能会将云主机 IP 地址范围列入黑名单以帮助防止垃圾邮件。如post链接中指出的那样,在本地、云端或使用第三方服务设置合法的 SMTP 服务器。