如何通过C#发送电子邮件并获取发件人的电子邮件地址而不让他从他的帐户发送邮件
我有一个网站,用户必须发送有关他的汽车的某些信息,并且这些信息还包含他的电子邮件地址以便我可以回复并向他发送消息。如何通过C#发送电子邮件并获取发件人的电子邮件地址而不让他从他的帐户发送邮件
在这个网站上的消息被发送,我的代码是:
protected void Button1_Click(object sender, EventArgs e)
{
try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.To.Add("myemailaddress");
SmtpServer.Port = 587;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("myemailaddress, "mypassword");
mail.From = new MailAddress(TextBox3.Text);//gets the email address of the sender
SmtpServer.EnableSsl = true;
mail.Subject = "subject";
mail.Body = "body";
SmtpServer.Send(mail);
string script = "alert(\"Email was sent!\");";
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", script, true);
}
catch (Exception ex)
{
// Response.Write(ex.ToString());
string script = "alert(\"Email was not sent!\");";
ScriptManager.RegisterStartupScript(this, GetType(), "ServerControlScript", script, true);
}
这是可以正常使用,但你可以看到消息正在从我的电子邮件地址,并给我的电子邮件地址不从发送者的发送帐户。
所以我不能回复,除非我得到发件人发送的电子邮件地址,它包含在textbox3中。
问题是发件人可能会错误地写他的电子邮件,这样我就不能回复他的邮件。我想我可以让他在第二个文本框中重新输入他的电子邮件地址,我会检查两个文本框是否包含相同的邮件地址,否则邮件将不会发送。但这不是一个好主意;我能做些什么来获得发件人的正确电子邮件地址?
我这样做是因为您知道Gmail需要身份验证,我不想让发件人输入密码。
出于安全原因,您无法使用GMail SMTP Server更改自己以外的发件人地址。要么拥有自己的邮件服务器并进行适当配置,要么在发送给您的电子邮件正文中发送所有相关信息。您可以在正文中提供一个链接,以便为发件人的回复打开一条新消息,或者您可以创建一个简单的网页,将所有信息加载到表单中,也可以通过查询字符串传递,以发送允许修改的回复电子邮件。无论哪种方式,你需要重新考虑你的策略。
是的,但是当我添加凭据的“来自”内容正在改变...... – user6340838
如果添加适当的标点符号和大写字母,您可能会得到更好的回复。也许显示一些代码。我所理解的是电子邮件正在发送。 –
不,您不会从我的帐户发送电子邮件。我怎么知道你只是*发送给自己,而不是发送给我的联系人列表中的每个人?如果您需要某人的电子邮件地址,请将其包含在表单中。也许你给他们发送了一封确认电子邮件(“使用这个电子邮件地址在xyz.com注册的人,是你吗?”),但我不给任何人*从我的账户发送电子邮件的能力,而且你不应该也期待其他人。 – RoadieRich
它不会是我谁会从您的帐户发送电子邮件,您将从您的帐户发送电子邮件,但从我的网站这是想法... – user6340838