发送邮件smtp gmail从地址显示gmail地址
本文关键字:地址 gmail 显示 smtp | 更新日期: 2023-09-27 18:04:54
在c#中,我有一个通过gmail帐户发送电子邮件的方法。当我在microsoft outlook中打开电子邮件时,从地址显示为gmail地址,而不是我在标题中使用的strFromAddress。
SmtpClient smtp = new SmtpClient();
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = true;
smtp.EnableSsl = true;
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Credentials = new NetworkCredential("***@gmail.com", "*****");
var strFromAddress = "no-repl@demuynck-printing.be";
var strToAddress = "sander@demuynck-media.be";
var strSubject = "Album: '" + lbltitel.Text + "' bestelling";
var strBody = "<html><head>";
// new instance of MailMessage
MailMessage mailMessage = new MailMessage();
// Sender Address
mailMessage.From = new MailAddress(strFromAddress);
// mailMessage.Headers("Selexion Clix Demuynck <no-reply@demuynck-printing.be>");
// mailMessage.Bcc.Add(new MailAddress("no-reply@demuynck-printing.be"));
// Recepient Address
mailMessage.To.Add(new MailAddress(strToAddress));
mailMessage.Headers.Add("Reply-To", "info@demuynck-printing.be");
// Subject
mailMessage.Subject = strSubject;
// Body
mailMessage.Body = strBody;
// format of mail message
mailMessage.IsBodyHtml = true;
// new instance of Smtpclient
smtp.Send(mailMessage);
在MailAddress上设置displayname属性,如下所示:
MailAddress fromAddress = new MailAddress("user@domaina.com","no-reply@domainb.com");
GMail将把'from'地址更改为用于登录SMTP服务器的帐户,除非'from'字段中使用的电子邮件地址被验证属于同一所有者。所以,在你的gmail偏好设置中,只需添加并验证这个特定的from地址。
这是因为Google违反了SMTP协议。这里有一篇详细的文章:http://lee-phillips.org/gmailRewriting/
Steve的评论不正确;通过身份验证的发送方应该能够设置任何From: header