ASP.Net:发送包含Rich Text HTML正文中嵌入的图像的电子邮件

时间:2015-04-22 17:45:15

标签: asp.net email

发送邮件以及嵌入式图像&使用asp.net的HTML文本。

我试过这样的话:

 public ActionResult Contact(tblCredential data)
            {
                string emailAddress = data.UserName;
                string password = data.Password;
                if (!string.IsNullOrEmpty(emailAddress))
                {

                    //Send email to consultancy
                    string htmlText = "<img src='R:/MVC@2/EmailWithHtmlBody/EmailWithHtmlBody/images/message.jpg'></img>
<h1>Thank you</h1>";

                    string from = "******@gmail.com";   // Your Mail-id here emailAddress
                    string @touser = emailAddress;  // To Mail-id
                    MailMessage mail = new MailMessage(from, touser);
                    {
                        mail.Subject = emailAddress + " sent a message";
                        mail.Body = htmlText;
                        mail.IsBodyHtml = true;

                        SmtpClient smtp = new SmtpClient { Host = "smtp.gmail.com", EnableSsl = true };
                        NetworkCredential networkCredential = new NetworkCredential(from, "*****");    //Your Password here..
                        smtp.UseDefaultCredentials = false;
                        smtp.Credentials = networkCredential;
                        smtp.Port = 587;
                        smtp.Send(mail);

                    }
                }
                return RedirectToAction("Index");
            }

已发送电子邮件,但HTML代码无效。在邮件中,它显示HTML标记。 帮助我。

2 个答案:

答案 0 :(得分:2)

在您的代码中,您首先设置mail.IsBodyHtml = true;,然后再设置mail.IsBodyHtml = false;。显然,这不会起作用。

顺便说一句:您无法使用本地路径嵌入图像。收件人将无法在本地计算机上显示您的图像。使用内联嵌入(Base64编码)嵌入它,如下所示:https://sendgrid.com/blog/embedding-images-emails-facts/

<img alt="My Image" src="data:image/jpeg;base64,/9j/4S/+RXhpZgAATU0AKgAAAAgACAESAAMAENkDZ5u8/61a+X...more encoding" />

答案 1 :(得分:0)

试试这个模板。

使用smtp.port = 25

是有帮助的
  try 
  { 
           MailMessage msg = new MailMessage ();
           MailAddress fromAdd = new MailAddress("fromemail@email.com");
           msg.[To].Add("toemail@email.com");
           msg.Subject = "Choose Session Members";
           msg.From = fromAdd;
           msg .IsBodyHtml = true;
           msg.Priority = MailPriority.Normal;
           msg .BodyEncoding = Encoding.Default;
           msg.Body = "<center><table><tr><td><h1>Your Message</h1><br/><br/></td></tr>";
           msg.Body = msg.Body + "</table></center>";
           SmtpClient smtpClient = new SmtpClient ("smtp.yourserver.com", "25");
           smtpClient.EnableSsl = true;
           smtpClient.UseDefaultCredentials = false;
           smtpClient.Credentials = new System.Net.NetworkCredential("yourname@yourserver.com", "password");
           smtpClient .DeliveryMethod = SmtpDeliveryMethod.Network;
           smtpClient.Send(msg);
           smtpClient.Dispose();
        }