从显示gmail地址的地址发送邮件smtp gmail

时间:2013-03-19 14:25:54

标签: c# email gmail sendmail document-body

在C#中,我有一种通过Gmail帐户发送电子邮件的方法。 当我在microsoft outlook中打开电子邮件时,from地址显示为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);

3 个答案:

答案 0 :(得分:1)

只需在MailAddress上设置displayname属性,如下所示:

MailAddress fromAddress = new MailAddress("user@domaina.com","no-reply@domainb.com");

答案 1 :(得分:0)

GMail会将“发件人”地址更改为用于登录SMTP服务器的帐户,除非验证“来自”字段中使用的电子邮件地址属于同一所有者。因此,在您的Gmail首选项中,只需从地址添加并验证此特定内容。

答案 2 :(得分:0)

这是因为Google违反了SMTP协议。这里有一篇详细的文章:http://lee-phillips.org/gmailRewriting/

史蒂夫的评论不正确;经过身份验证的发件人应该能够设置任何From:标头。