【发布时间】:2011-07-03 07:11:56
【问题描述】:
我有一个按钮事件,无论用户输入什么,它都会通过电子邮件发送给我。我收到消息很好....主题....消息。但是来自电子邮件的部分只是从我自己那里显示的(与它将要显示的相同)
如何从他们输入的任何电子邮件地址显示它?
我正在使用 gmail smtp 连接到我设置的 gmail 帐户。
MailMessage 有 4 个参数(发件人、收件人、主题、正文)
txtEmail.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>
有什么帮助吗?
【问题讨论】:
-
我知道一些邮件服务器会重写 From/From: 基于身份验证用户(我假设您正在执行 smtp 身份验证)作为安全功能。根据您的意图,仅使用回复标头可能更简单/更容易 - 请参阅msdn.microsoft.com/en-us/library/… - 或者,如果您想验证重写是否正在发生,请运行您自己的邮件服务器进行测试(为此我喜欢 hMailServer - hmailserver.com)
-
好的,我尝试了以下类似的方法,但仍然无法正常工作。 message = new MailMessage(ReplyToList[0].toString(), toEmail, 主题, 评论);
-
您的 smtp 是如何设置的?您连接到哪个 STMP 服务器?您是否正在验证 gmail 服务器?如果是这样,它可能会阻止您更改“发件人”地址以防止垃圾邮件等......当我使用我的 NetworkCredentials 对我的公司 Exchange 服务器进行身份验证时,我从未遇到过这种情况。
-
我尝试了以下但仍然无法正常工作。我添加了我的 web.config。还有其他建议吗?
标签: c# asp.net visual-studio smtpclient mailmessage