在C#中,我有一种通过gmail帐户发送电子邮件的方法。 当我在Microsoft Outlook中打开电子邮件时,发件人地址显示为gmail地址,而不是我在标题中使用的strFromAddress。从显示Gmail地址的地址发送邮件smtp gmail
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 = "[email protected]";
var strToAddress = "[email protected]";
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 <[email protected]>");
// mailMessage.Bcc.Add(new MailAddress("[email protected]"));
// Recepient Address
mailMessage.To.Add(new MailAddress(strToAddress));
mailMessage.Headers.Add("Reply-To", "[email protected]");
// 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服务器都不允许的(垃圾邮件服务器除外) – Steve 2013-03-19 14:28:59
注意:'SmtpClient'是'IDisposable',应该这样使用:'使用(var smtp = new SmtpClient()){。 ..}' – 2013-03-19 14:29:57
可不可以。尽管在使用语句中包装一次性对象通常被认为是很好的做法,但事实并非总是如此。有时你需要明确地控制对象的处理方式和时间。 - 虽然我同意在这种情况下使用陈述是明智的:-) – Mintey 2013-03-19 14:35:17