我正在尝试使用下面的代码和配置从ASP.Net通过GMail发送电子邮件。不幸的是,它似乎不起作用,也没有抛出错误消息。服务器日志或邮件IIS邮件文件夹中没有任何内容,我什至检查了发件人地址的废纸trash,以查看邮件是否在那里结束。任何帮助将非常感激。
C#部分
public void SendFeedback()
{
string emailFrom = this.Email.Text;
MailMessage message = new MailMessage();
// here is an important part:
message.From = new MailAddress(emailFrom, "Mailer");
// it's superfluous part here since from address is defined in .config file
// in my example. But since you don't use .config file, you will need it.
message.Subject = "www.gumpshen.com - Website Query";
message.IsBodyHtml = true;
message.Body = string.Format(" Name = {0}, Phone = {1}", Name.Text, Phone.Text);
message.Body += Environment.NewLine;
message.Body += Environment.NewLine;
message.Body += ProjectDetails.Text; ;
var client = new SmtpClient();
try
{
client.Send(message);
这是“配置”部分:
<system.net>
<mailSettings>
<smtp from="myEmail@gmail.com" deliveryMethod="Network" >
<network host="smtp.gmail.com" port="587"
userName="myEmail@gmail.com" password="myPassword"/>
</smtp>
</mailSettings>
</system.net>
最佳答案
您需要client.EnableSsl=true;
从此站点检查代码:Email via Gmail
Here is an example on how to send HTML email from your ASP.NET page using your Google account. (This setup can be easily used to send messages via any other SMTP server that requires authentication). Note: the code snippet assumes you have a Label component on Page with named lblMsg that will show success/failure message to the user that is sending email. (But this can be easily changed).
SmtpClient client = new SmtpClient(); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.Host = "smtp.gmail.com"; client.Port = 587; // setup Smtp authentication System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("your_account@gmail.com", "yourpassword"); client.UseDefaultCredentials = false; client.Credentials = credentials; MailMessage msg = new MailMessage(); msg.From = new MailAddress("your_account@gmail.com"); msg.To.Add(new MailAddress("destination_address@someserver.com")); msg.Subject = "This is a test Email subject"; msg.IsBodyHtml = true; msg.Body = string.Format("<html><head></head><body><b>Test HTML Email</b></body>"); try { client.Send(msg); lblMsg.Text = "Your message has been successfully sent."; } catch (Exception ex) { lblMsg.ForeColor = Color.Red; lblMsg.Text = "Error occured while sending your message." + ex.Message; }
关于asp.net - 通过gmail发送Asp.Net电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559011/