C# 邮件ASP.NET从电子邮件发送错误?
我有一个按钮事件,只要用户输入什么就给我发电子邮件。我很好地理解了这个信息……主题……信息。但是来自电子邮件的部分只是从我自己那里显示出来的(与它将要显示的部分相同) 如何从他们输入的任何电子邮件地址显示 我正在使用gmail smtp连接到我已设置的gmail帐户 MailMessage有4个参数(from、to、subject、body) Text确实正确保存了他们的电子邮件地址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,
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;