C# 邮件ASP.NET从电子邮件发送错误?

C# 邮件ASP.NET从电子邮件发送错误?,c#,asp.net,visual-studio,smtpclient,mailmessage,C#,Asp.net,Visual Studio,Smtpclient,Mailmessage,我有一个按钮事件,只要用户输入什么就给我发电子邮件。我很好地理解了这个信息……主题……信息。但是来自电子邮件的部分只是从我自己那里显示出来的(与它将要显示的部分相同) 如何从他们输入的任何电子邮件地址显示 我正在使用gmail smtp连接到我已设置的gmail帐户 MailMessage有4个参数(from、to、subject、body) Text确实正确保存了他们的电子邮件地址 protected void Wizard1_FinishButtonClick(object sender,

我有一个按钮事件,只要用户输入什么就给我发电子邮件。我很好地理解了这个信息……主题……信息。但是来自电子邮件的部分只是从我自己那里显示出来的(与它将要显示的部分相同)

如何从他们输入的任何电子邮件地址显示

我正在使用gmail smtp连接到我已设置的gmail帐户

MailMessage有4个参数(from、to、subject、body)

Text确实正确保存了他们的电子邮件地址

protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
    this.toEmail = "myemail@gmail.com";
    this.subject = txtSubject.Text;
    this.fromEmail = txtEmail.Text;
    this.comment = txtComment.Text;
    message = new MailMessage(fromEmail, toEmail, subject, comment);
    smtp.Send(message);
    message.Dispose();
}
我尝试了下面这样的建议。。。我仍然在展示自己

message = new MailMessage(ReplyToList[0].toString(), toEmail, subject, comment);
我甚至试着这样做,但还是从自己身上表现出来。我甚至仔细检查了代码,以确保它有不同的电子邮件地址,而且确实如此

protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{

    this.subject = txtSubject.Text;
    this.comment = txtComment.Text;

    to = new MailAddress("myemail@gmail.com");
    from = new MailAddress(txtEmail.Text);

    MailMessage message = new MailMessage(from, to);
    message.Subject = txtSubject.Text;
    message.Body = txtComment.Text;
    message.Headers.Add("Reply-To", txtEmail.Text);
    smtp.Send(message);
    message.Dispose();
}
在代码中,我只调用
SmtpClient-client=new-SmtpClient()

然后在我的web.config中

  <mailSettings>
    <smtp from="bob">
      <network host="smtp.gmail.com" port="587" userName="myemail" password="mypassword" enableSsl="true"/>
    </smtp>
  </mailSettings>


有什么帮助吗?

正如詹姆斯·曼宁所建议的,一种简单的方法是在发送电子邮件之前设置回复标题,如下所示:

this.ReplyToList.Add(txtEmail.Text);

尝试像这样创建SmtpClient(您没有包括它,所以这可能不是您的问题)


虽然没有通过gmail smtp服务器进行验证,但这对我来说一直有效:

MailMessage message = new MailMessage(from, to);
message.ReplyToList.Add(new MailAddress(from));
message.Subject = txtSubject.Text;

我知道一些邮件服务器将根据身份验证用户(我假设您正在执行smtp身份验证)重写From/From:作为安全功能。根据您的意图,只使用reply to header可能会更简单/更容易-请参阅-或者,如果您想验证重写是否正确,请运行您自己的邮件服务器进行测试(我喜欢hMailServer),好的,我尝试了以下类似的方法,但仍然不起作用。message=新邮件消息(ReplyToList[0].toString(),toEmail,主题,注释);您的smtp是如何设置的?您连接到哪个STMP服务器?你在验证gmail服务器吗?如果是这样,它可能会阻止您更改“发件人”地址以防止垃圾邮件等。。。当我使用NetworkCredentials对我的公司Exchange服务器进行身份验证时,我从未遇到过这种情况。我尝试了以下方法,但仍然无法工作。我添加了我的web.config。还有其他建议吗?我试过了,但还是一样的问题。在代码中,我只调用SmtpClient=newsmtpclient();然后在我的web.config中
MailMessage message = new MailMessage(from, to);
message.ReplyToList.Add(new MailAddress(from));
message.Subject = txtSubject.Text;