2011-12-25 5 views
97

Windowsタスクスケジューラを使用してWebアプリケーションから自動電子メールを送信できるようになりました。今、私は電子メールを送信するために書いた次の方法を使ってHTML形式の電子メールを送信したいと思います。HTML形式のメールを送信するには?

私のコードビハインド:

protected void Page_Load(object sender, EventArgs e) 
    { 
     SmtpClient sc = new SmtpClient("mail address"); 
     MailMessage msg = null; 

     try 
     { 
      msg = new MailMessage("[email protected]", 
       "[email protected]", "Message from PSSP System", 
       "This email sent by the PSSP system"); 

      sc.Send(msg); 
     } 

     catch (Exception ex) 
     { 
      throw ex; 
     } 

     finally 
     { 
      if (msg != null) 
      { 
       msg.Dispose(); 
      } 
     } 
    } 

はどのようにそれを行うには?私はちょうど1つのリンクと多分電子メールの1つのイメージでいくつかの大胆なテキストを入れたいと思う。 trueisBodyHtmlを設定

答えて

158

を使用すると、メッセージ本文にHTMLタグを使用することができます:

msg = new MailMessage("[email protected]", 
       "[email protected]", "Message from PSSP System", 
       "This email sent by the PSSP system<br />" + 
       "<b>this is bold text!</b>"); 

msg.IsBodyHtml = true; 
+0

カスタムフォントを使用できますか? – Wanderer

+0

ありがとうございます@Shai –

+0

メールクライアントでカスタムフォントをサポートする必要があるため、簡単にフォントをカスタマイズすることはできません。多くのメールクライアントではまだIE6タイプのHTMLが使用されているため、デフォルトの別のフォントが使用されます。 –

18

これは私

msg.BodyFormat = MailFormat.Html; 

のために働くと、あなたはあなたの体に

msg.Body = "<em>It's great to use HTML in mail!!</em>" 
をHTMLを使用することができます
+7

これは['System.Web.Mail']の' MailMessage'(https://msdn.microsoft.com/en-us/library/system.web.mail.mailmessage.bodyformat%28v=vs.110%)で機能します。 29.aspx)。 'IsBodyHtml'は[System.Net.Mail'のものです(https://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.isbodyhtml(v = vs.110) ).aspx) –

60

html形式のメールを送信する最善の方法メール

このコードはSystem.IO.File.ReadAllTextを使用した "Customer.htm"

<table> 
    <tr> 
     <td> 
      Dealer's Company Name 
     </td> 
     <td> 
      : 
     </td> 
     <td> 
      #DealerCompanyName# 
     </td> 
    </tr> 
</table> 

読むのHTMLファイルになります。文字列変数内のすべてのHTMLコードを取得します。

string Body = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("EmailTemplates/Customer.htm")); 

特定の文字列をカスタム値に置き換えます。

Body = Body.Replace("#DealerCompanyName#", _lstGetDealerRoleAndContactInfoByCompanyIDResult[0].CompanyName); 

call SendEmail(文字列体)電子メールを送信する機能と手順。

public static void SendEmail(string Body) 
     { 
      MailMessage message = new MailMessage(); 
      message.From = new MailAddress(Session["Email"].Tostring()); 
      message.To.Add(ConfigurationSettings.AppSettings["RequesEmail"].ToString()); 
      message.Subject = "Request from " + SessionFactory.CurrentCompany.CompanyName + " to add a new supplier"; 
      message.IsBodyHtml = true; 
      message.Body = Body; 

      SmtpClient smtpClient = new SmtpClient(); 
      smtpClient.UseDefaultCredentials = true; 

      smtpClient.Host = ConfigurationSettings.AppSettings["SMTP"].ToString(); 
      smtpClient.Port = Convert.ToInt32(ConfigurationSettings.AppSettings["PORT"].ToString()); 
      smtpClient.EnableSsl = true; 
      smtpClient.Credentials = new System.Net.NetworkCredential(ConfigurationSettings.AppSettings["USERNAME"].ToString(), ConfigurationSettings.AppSettings["PASSWORD"].ToString()); 
      smtpClient.Send(message); 
     } 
+3

** MailDefinition **または** RazorEngine ** *** http://stackoverflow.com/questions/10512845/how-to-send-email-wth-email-template-c-sharp *** – Kiquenet

+0

ありがとう - これは私のために働いて、時間を節約しました。 –

関連する問題