2016-11-25 3 views
0

У меня есть функция aspx, которая отправляет электронное письмо. К сожалению, он не отображает html-тег в gmail или Outlook, но на моем Android-телефоне выглядит хорошо. Как это исправить? Благодарю.ASPX email HTML-формат

protected void SendMail() 
{ 

    var fromAddress = "[email protected]"; 
     var toAddress = "[email protected]"; 


     const string fromPassword = "****"; 
     var subject = "subject";   


    string body = " <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\">"; 
    body += "<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=utf-8\">"; 
    body += "</HEAD><BODY>"; 
    body += "<b>some text some text</b><br></br>"; 
    body += "</BODY></HTML>"; 



    var smtp = new System.Net.Mail.SmtpClient(); 
    { 

     smtp.Host = "smtp.gmail.com"; 
     smtp.Port = 587; 
     smtp.EnableSsl = true; 
     smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
     smtp.Credentials = new NetworkCredential(fromAddress, fromPassword); 
     smtp.Timeout = 20000; 
    } 
    smtp.Send(fromAddress, toAddress, subject, body); 
} 

EDITED: Так вот то, что я есть сейчас. Но компилятор дает эту ошибку: Строка 392: mail.From = fromAddress; Компилятор Сообщение об ошибке: CS0029: Не удается неявно преобразовать 'строка' типа для 'System.Net.Mail.MailAddress'

var fromAddress = "[email protected]***"; 
         var toAddress = "*****@gmail.com"; 
         const string fromPassword = "******"; 
         var subject = "New Project Started!"; 
         string body = "<b>TA:</b>"; 

         MailMessage mail= new MailMessage(); 
         mail.From = fromAddress; 
         mail.To = toAddress; 
         mail.Subject = subject; 
         mail.IsBodyHtml = true; 
         mail.Body = body; 

     var smtp = new System.Net.Mail.SmtpClient(); 
     { 

      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 
      smtp.EnableSsl = true; 
      smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
      smtp.Credentials = new NetworkCredential(fromAddress, fromPassword); 
      smtp.Timeout = 20000; 
     } 

         smtp.Send(mail); 

Редакцией: Мой рабочий раствор:

using System.Net; 
using System.Net.Mail; 
using System.Net.Mime; 

       var fromAddress = "****"; // mail Address from where you send the mail 
       var toAddress = "****"; 
       const string fromPassword = "***"; //Password of your gmail address 
       var subject = "New Job Created!"; 

       // set smtp-client with basicAuthentication 
       SmtpClient mySmtpClient = new SmtpClient("smtp.gmail.com"); 
       mySmtpClient.Port = 587; 
       mySmtpClient.EnableSsl = true; 
       mySmtpClient.UseDefaultCredentials = false; 
       System.Net.NetworkCredential basicAuthenticationInfo = new 

       System.Net.NetworkCredential(fromAddress, fromPassword); 
       mySmtpClient.Credentials = basicAuthenticationInfo; 

       // add from,to mailaddresses 
       MailAddress from = new MailAddress(fromAddress, ""); 
       MailAddress to = new MailAddress(toAddress, "Devision"); 
       MailMessage myMail = new System.Net.Mail.MailMessage(from, to); 

       // set subject and encoding 
       myMail.Subject = subject; 
       myMail.SubjectEncoding = System.Text.Encoding.UTF8; 

       // set body-message and encoding 
       myMail.Body = "<b>TEST</b>"; 
       myMail.BodyEncoding = System.Text.Encoding.UTF8; 

       // text or html 
       myMail.IsBodyHtml = true; 

       mySmtpClient.Send(myMail); 

ответ

1

Создание MailMessage класса , Главное, чтобы указать, что Тело HTML это делается с использованием свойства IsBodyHtml

MailMessage mail= new MailMessage(); 
mail.From = fromAddress; 
mail.To = toAddress; 
mail.Subject = subject; 
mail.IsBodyHtml = true; 
mail.Body = body; 

//other stuff 

smtp.Send(mail);