如何从ASP.Net/C#Webforms中的任何电子邮件地址发送电子邮件

如何从ASP.Net/C#Webforms中的任何电子邮件地址发送电子邮件,c#,asp.net,smtp,C#,Asp.net,Smtp,我是一名C#的初学者程序员,我想创建一个联系表单,用户可以在其中输入任何电子邮件地址作为“发件人”地址,并且他们可以发送消息。每次发送时,它都会说“发件人”地址就是我正在使用的凭据。如何根据用户的输入将“从地址”更改为其他联系人表单中的地址。我应该使用不同的Smtp服务器吗? 谢谢 如果您的主机未注册为官方邮件提供商,您甚至不应该考虑以其他人的名义发送电子邮件 相反,使用专用地址作为发送方并在智能主机上进行身份验证,并记住将凭据存储在保存位置,这样就没有人可以“采用”它们-示例中的程序源代码肯定

我是一名C#的初学者程序员,我想创建一个联系表单,用户可以在其中输入任何电子邮件地址作为“发件人”地址,并且他们可以发送消息。每次发送时,它都会说“发件人”地址就是我正在使用的凭据。如何根据用户的输入将“从地址”更改为其他联系人表单中的地址。我应该使用不同的Smtp服务器吗? 谢谢


如果您的主机未注册为官方邮件提供商,您甚至不应该考虑以其他人的名义发送电子邮件

相反,使用专用地址作为发送方并在智能主机上进行身份验证,并记住将凭据存储在保存位置,这样就没有人可以“采用”它们-示例中的程序源代码肯定不是保存位置,请将它们存储在IIS属性字段中

在表格中输入的地址可以用作回复,也可以用作发件人的显示名称

正文也不会是html。因此,属性应为“false”

string credMail = "example@gmail.com";
string credPasswd = "example_p@asswd";

MailMessage message = new MailMessage();
message.From = new MailAddress(credMail,fromtxt.Text);
message.To.Add("toEmail");
message.Subject = "Subject: " + subjecttxt;
message.Body = mesgtxt.Text;
message.IsBodyHtml = false;
message.ReplyToList.Add(fromtxt.Text);

SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(credMail, credPasswd);
smtpClient.EnableSsl = true;
smtpClient.Send(message);
MessageBox.Show("Your email has been sent!");

这通常是个坏主意。从与您的电子邮件服务器域不匹配的地址发送邮件是将您的电子邮件标记为垃圾邮件甚至完全阻止的一种好方法。在域上使用通用发件人地址。如果需要,用户输入的地址始终可以用作回复地址
string credMail = "example@gmail.com";
string credPasswd = "example_p@asswd";

MailMessage message = new MailMessage();
message.From = new MailAddress(credMail,fromtxt.Text);
message.To.Add("toEmail");
message.Subject = "Subject: " + subjecttxt;
message.Body = mesgtxt.Text;
message.IsBodyHtml = false;
message.ReplyToList.Add(fromtxt.Text);

SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(credMail, credPasswd);
smtpClient.EnableSsl = true;
smtpClient.Send(message);
MessageBox.Show("Your email has been sent!");