none
Help with enabling HTML in mail body RRS feed

  • Question

  • Hi

    I'm sending a email with a pure text message body like this:

            public static string MailSubject = "Testing Email";
            public static string MailBody = @"
            {0} عزيزي الفارس
    
            لقد تم انشاء حسابك في امبراطورية الاسرار !
            ادناه رقم التحقق لتفعيل حسابك:
            {1}
            قم بأدخاله الان في نافذة التسجيل لديك في اللعبة.
    
            ادناه معلومات حسابك المسجلة:
            {2} :اسم المستخدم
            {3} :كلمة المرور
    
            ملاحظة: يرجى حفظ هذه الرسالة في بريدك في حال نسيان بياناتك
    
            نتمنى لك اسعد الاوقات في امبراطوريتنا
            - فريق امبراطورية الاسرار
            ";
    
    public void RegisterBtn_MouseUp(object sender, MouseButtonEventArgs e)
            {
                  MailMessage mail = new MailMessage();
                  SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
                  // ... etc.
    
                  mail.Subject = MailSubject;
                  mail.Body = string.Format(MailBody, UserNameBox.Text, VerifyCode, UserNameBox.Text, PasswordBox.Password);
                  SmtpServer.Send(mail);
            }

    this works like charm, but I wanted to change the MailBody to supports Html format ....

    <p><center><font color="00008B"><font color="#A52A2A">{0}</font> عزيزي الفارس</p>
    
    <p>! لقد تم انشاء حسابك في امبراطورية الاسرار</p>
    :ادناه رقم التحقق لتفعيل حسابك</p>
    <font color="#A52A2A">{1}</font>
    <p>.قم بأدخاله الان في <font color="#A52A2A">نافذة التسجيل</font> لديك في اللعبة</p>
    
    </br>:ادناه معلومات حسابك المسجلة
    <br><strong><font color="#A52A2A">{2} :اسم المستخدم</strong>
    <br><strong>{3} :كلمة المرور</strong></font></p>
    
    <br><em>ملاحظة: يرجى حفظ هذه الرسالة في بريدك في حال نسيان بياناتك</em>
    
    <p><font color="#A52A2A">نتمنى لك اسعد الاوقات في امبراطوريتنا</font>
    <p><strong><font color="#A52A2A">- فريق امبراطورية الاسرار</font></font></strong></center>

    please don't mind non-english symbols.

    so replacing this html with that string does not work because the html contains quotation marks.
    how do I replace it, correctly?

    Any help is appreciated.

    Saturday, February 3, 2018 4:57 PM

Answers

  • You have to double the quotation marks, for example:

       public static string MailBody = @"<p><center><font color=""00008B"">. . . ";

    But you can also paste the unchanged HTML to a “resource”, or to a file which is then included as a resource. The resources can be edited in the Properties window of your application.

    • Marked as answer by Zuher Laith Sunday, February 4, 2018 12:12 AM
    Saturday, February 3, 2018 6:09 PM

All replies

  • You need to tell the mail message the body is html

             mail.Subject = MailSubject;
                  mail.Body = string.Format(MailBody, UserNameBox.Text, VerifyCode, UserNameBox.Text, PasswordBox.Password);
                  mail.IsBodyHtml = true;
                  SmtpServer.Send(mail);


    • Edited by Ken Tucker Saturday, February 3, 2018 5:00 PM
    Saturday, February 3, 2018 5:00 PM
  • You need to tell the mail message the body is html

             mail.Subject = MailSubject;
                  mail.Body = string.Format(MailBody, UserNameBox.Text, VerifyCode, UserNameBox.Text, PasswordBox.Password);
                  mail.IsBodyHtml = true;
                  SmtpServer.Send(mail);


    I can't insert a HTML code in a normal string IN CODE !
    <p><center><font color="00008B"><font color="#A52A2A">{0}</font> عزيزي الفارس</p>
    
    <p>! لقد تم انشاء حسابك في امبراطورية الاسرار</p>
    :ادناه رقم التحقق لتفعيل حسابك</p>
    <font color="#A52A2A">{1}</font>
    <p>.قم بأدخاله الان في <font color="#A52A2A">نافذة التسجيل</font> لديك في اللعبة</p>
    
    </br>:ادناه معلومات حسابك المسجلة
    <br><strong><font color="#A52A2A">{2} :اسم المستخدم</strong>
    <br><strong>{3} :كلمة المرور</strong></font></p>
    
    <br><em>ملاحظة: يرجى حفظ هذه الرسالة في بريدك في حال نسيان بياناتك</em>
    
    <p><font color="#A52A2A">نتمنى لك اسعد الاوقات في امبراطوريتنا</font>
    <p><strong><font color="#A52A2A">- فريق امبراطورية الاسرار</font></font></strong></center>
    please read the question again.
    Saturday, February 3, 2018 5:16 PM
  • You have to double the quotation marks, for example:

       public static string MailBody = @"<p><center><font color=""00008B"">. . . ";

    But you can also paste the unchanged HTML to a “resource”, or to a file which is then included as a resource. The resources can be edited in the Properties window of your application.

    • Marked as answer by Zuher Laith Sunday, February 4, 2018 12:12 AM
    Saturday, February 3, 2018 6:09 PM
  • You have to double the quotation marks, for example:

       public static string MailBody = @"<p><center><font color=""00008B"">. . . ";

    But you can also paste the unchanged HTML to a “resource”, or to a file which is then included as a resource. The resources can be edited in the Properties window of your application.

    Would be much better If I added the file in the application resource, without "Copy to Output Directory".
    How do I read all lines of that file in the "Resource" Folder, and insert it to the mail.Body ? since I'm using string[], right?
    Saturday, February 3, 2018 6:49 PM
  • figured it out. thanks !
    Sunday, February 4, 2018 12:12 AM