如何制作一个 ASP.NET C# 电子邮件应用,供用户从我的网站发送反馈?



我是 ASP.NET C#的新手,我一直在试图弄清楚如何做到这一点很长一段时间。我在 Youtube 上找到了一个视频 - https://www.youtube.com/watch?v=Baw6O3ME8Go - 展示了如何在 ASP.NET C# 中制作一个简单的电子邮件应用程序。但是,当我运行脚本时,我不断收到不同的错误。这是我的代码的样子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Net.Mail;
namespace my_site
{
public partial class contact : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void send_Click(object sender, EventArgs e)
{
try
{
MailMessage message = new MailMessage(txtTo.Text, txtFrom.Text, txtSubject.Text, txtBody.Text);
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.Credentials = new System.Net.NetworkCredential("jameshollan79@gmail.com", "************");
client.EnableSsl = false;
client.Send(message);
status.Text = "Thanks for the feedback!";
}
catch (Exception ex)
{
status.Text = ex.StackTrace;
}
}
}
}

一条错误消息显示它位于第 22 行,只是在try之后的"{"。另一个错误说是第33行是"status.Text = ex.StackTrace;"。它提出的另一个错误说是第 28 行说"client.Send(message);"。

对于最后一个,堆栈跟踪说

"at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)

at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)

at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection 收件人, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)

at System.Net.Mail.SmtpClient.Send(MailMessage message)

at my_site.contact.send_Click(Object sender, EventArgs e)

在 C:\用户\管理员\桌面\my_site\my_site\联系人.aspx.cs:第 28 行">

我做错了什么吗?还是有更好的方法

?如果有帮助,我确实在经典ASP方面有一些经验。

您必须进行以下两项更改才能使其正常工作:

  1. 启用 SSL 您必须在使用 gmail 时将 EnableSSL 属性设为 true

    client.EnableSsl = true;
    
  2. 谷歌帐户设置

    转到您的电子邮件 ID "jameshollan79@gmail.com"的 Google 帐户设置 转到"Sign-in & security"选项,然后在该选项下找到"Allow less secure apps"并将其"打开"。这是因为 Gmail 不想发送来自非真实来源的任何邮件。

另外,正如@JBrooks指出的那样,请更正从邮件消息的一部分,它是邮件消息(从,到,主题,正文);

希望对你有帮助

我认为你在错误的地方来回。是的:

new MailMessage(from, to, subject, body);

但实际上应该是:

new MailMessage("jameshollan79@gmail.com", 
"jameshollan79@gmail.com",
"Contact Page: " + txtSubject.Text, 
txtFrom.Text + "<br />" + txtBody.Text);

不应该让他们能够编辑"到"。 并且不要在页面上显示您的电子邮件地址,否则您将开始收到大量垃圾邮件。

最新更新