【发布时间】:2013-03-30 23:23:30
【问题描述】:
在 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);
【问题讨论】:
-
AFAIK 此邮件无法发送。您要求 gmail SMTP 服务将邮件从不属于 gmail 的地址发送到外部地址。如果我是对的,这在世界上的每个 SMTP 服务器上都是不允许的(垃圾邮件服务器除外)
-
旁注:
SmtpClient是IDisposable,应该像这样使用:using (var smtp = new SmtpClient()) { ... } -
可以不应该。虽然在 using 语句中包装 Disposable 对象通常被认为是一种好的做法,但情况并非总是如此。有时您需要明确控制对象的处理方式和时间。 - 尽管我同意在这种情况下使用 using 语句是明智的:-)
标签: c# email gmail sendmail document-body