如何在ASP.NET中创建安全的“与我联系”表单?

时间:2016-03-01 14:31:31

标签: c# asp.net

请帮忙,

我需要在我的网站上添加一个“联系我”表格,大多数教程几乎都使用相同的方法,但所有这些都不能正常工作;而不是接收访客消息我收到安全问题警告,如下所示: enter image description here

以下是我使用的代码(outlook和gmail以相同的方式进行交互):

//这是发送按钮的事件处理程序

protected void ButtonSend_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("asdfg@outlook.com", "Mohamed"));
    visitorMessage.ReplyToList.Add(new MailAddress(TextBoxEmail.Text));
    SmtpClient mySmtpClient = new SmtpClient();
    mySmtpClient.Send(visitorMessage);
    LabelIRespond.Visible = true;

}
}

和web.config:

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="Mohamed &lt;asdfg@outlook.com&gt;">
        <network host="Smtp.live.com" port="587" enableSsl="true" userName="asdfg@outlook.com" password="myOutlookPassword" />
      </smtp>
    </mailSettings>
  </system.net>

请帮助我弄清楚我在这里缺少什么,当他们创建这样的表格时没有人谈论这个问题,我希望我在这里找到解决方案?

感谢。

1 个答案:

答案 0 :(得分:4)

大多数电子邮件服务都会让你很难允许应用程序登录并以编程方式使用它(事实上我认为很多都有禁止使用的使用条款)。这就是垃圾邮件发送者如果愿意,可以使用服务向人们发送垃相反,您需要找到一个允许您通过API发送电子邮件或设置自己的SMTP服务器的服务。

我会建议类似SendGrid:https://sendgrid.com/pricing,他们有一个免费的计划,每月包含12,000封电子邮件。