Мне нужно отправить сообщение электронной почты с поддержкой html-элемента, которое содержит динамически формируемое строковое тело

#html #asp.net #email #exception #c#-4.0

#HTML #asp.net #Адрес электронной почты #исключение #c #-4.0

Вопрос:

у меня есть этот код, который генерирует журнал или отчет об исключении, и он использует переменную типа string builder, к которой добавляются свойства и значения исключения, которое получает это с помощью исключений object.so теперь, когда я вызываю метод отправки электронной почты, вводя переменную string builder в аргумент, тело сообщения получает то, что содержится в этой переменной.Итак, здесь я хочу, чтобы мой код вставлял html-элементы типа и в это сообщение электронной почты, чтобы добавить некоторый стиль.На что я не имею ни малейшего представления, как это сделать, мне просто нужно написать свойство exception жирным шрифтом и установить семейство шрифтов свойства и значения, чтобы они отличались в теле письма.Пожалуйста, помогите мне с этим!

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Configuration;
using System.Net.Mail;

namespace WebApplication5
{
    public partial class EnterMarks : System.Web.UI.Page
    {
        public float average,total;
       public string grade,chk,exmessage;

       DataClasses1DataContext db = new DataClasses1DataContext();
        protected void Page_Load(object sender, EventArgs e)
        {   
            
           
        }

      

        protected void Button2_Click(object sender, EventArgs e)
         {
           
             tblExcDet te = new tblExcDet();
            var query1 = from n in db.tblContacts select n.StudentID;
           

                foreach (var q in query1)
                {
                    if (q.Equals((int.Parse(TextBox4.Text))))
                    {
                        Label2.Text = "ID Found";
                    }
                }
                try
                {


                    int? i = null;
                    tblContact tc = new tblContact();
                    tc.StudentID = (int)i ;
                    //db.tblContacts.InsertOnSubmit(tc);
                    db.SubmitChanges();
                }
                catch (Exception ex)
                {
                   
                    
                    log(ex);
                    Label2.Text = "Can't assign null value into a table id";
                   
                }
                        
        }
       
        public static void log(Exception ex)
        {
            StringBuilder sbEMessage = new StringBuilder();
            DateTime mydatetime1 = DateTime.Now;
            sbEMessage.Append("Exception Message"   Environment.NewLine);
            sbEMessage.Append(ex.Message   Environment.NewLine);
            sbEMessage.Append(Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Date and Time"   Environment.NewLine);
            sbEMessage.Append(mydatetime1   Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Source"   Environment.NewLine);
            sbEMessage.Append(ex.Source   Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Hresult"   Environment.NewLine);
            sbEMessage.Append(ex.HResult   Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Stack trace"   Environment.NewLine);
            sbEMessage.Append(ex.StackTrace   Environment.NewLine Environment.NewLine);
            sbEMessage.Append("Exception Data"   Environment.NewLine);
            sbEMessage.Append(ex.Data   Environment.NewLine);
            sbEMessage.Append("Exception target site"   Environment.NewLine);
            sbEMessage.Append(Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Inner Exception");
            sbEMessage.Append(ex.InnerException   Environment.NewLine);
            sendEmail(sbEMessage.ToString());
        }
        public static void sendEmail(string emailbody)
        {
            MailMessage mailMessage = new MailMessage("kamal.enest@gmail.com", "kamalu960@gmail.com");
            mailMessage.Subject = "Exception";
            mailMessage.Body = emailbody;
            SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
            smtpClient.Credentials = new System.Net.NetworkCredential()
            {
                UserName = "kamal.enest@gmail.com",
                Password = "1011664123"
            };
            smtpClient.EnableSsl = true;
            smtpClient.Send(mailMessage);
        }
        
    }
}  

Ответ №1:

Если вы хотите добавить html-теги, такие как bold, italic, структура таблицы, необходимо установить для свойства IsBodyHtml значение true.

 public static void sendEmail(string emailbody)
        {
            MailMessage mailMessage = new MailMessage("kamal.enest@gmail.com", "kamalu960@gmail.com");
            mailMessage.Subject = "Exception";
            mailMessage.Body = emailbody;
            mailMessage.IsBodyHtml true;
            SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
            smtpClient.Credentials = new System.Net.NetworkCredential()
            {
                UserName = "kamal.enest@gmail.com",
                Password = "1011664123"
            };
            smtpClient.EnableSsl = true;
            smtpClient.Send(mailMessage);
        }
  

Выделить жирным шрифтом некоторый текст: « <b>Your bold text</b> «

Для установки цвета: <font color='red'>color text</font>

 public static void log(Exception ex)
        {
            StringBuilder sbEMessage = new StringBuilder();
            DateTime mydatetime1 = DateTime.Now;
            sbEMessage.Append("<table>");
            sbEMessage.Append("<tr><td>");
            sbEMessage.Append("Exception Message"   Environment.NewLine );
            sbEMessage.Append("</td> <td>");
            sbEMessage.Append(ex.Message   Environment.NewLine);
            sbEMessage.Append("</td></tr>");
            sbEMessage.Append(Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Date and Time"   Environment.NewLine);
            sbEMessage.Append(mydatetime1   Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Source"   Environment.NewLine);
            sbEMessage.Append(ex.Source   Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Hresult"   Environment.NewLine);
            sbEMessage.Append(ex.HResult   Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Exception Stack trace"   Environment.NewLine);
            sbEMessage.Append(ex.StackTrace   Environment.NewLine Environment.NewLine);
            sbEMessage.Append("Exception Data"   Environment.NewLine);
            sbEMessage.Append(ex.Data   Environment.NewLine);
            sbEMessage.Append("Exception target site"   Environment.NewLine);
            sbEMessage.Append(Environment.NewLine   Environment.NewLine);
            sbEMessage.Append("Inner Exception");
            sbEMessage.Append(ex.InnerException   Environment.NewLine);
            sbEMessage.Append("</table>");
            sendEmail(sbEMessage.ToString());
        }
  

Комментарии:

1. мне нужно поместить свойство exception и значение exception в разные разделы, связанные с их собственным стилем, возможно ли это?

2. ДА… вы должны использовать форматирование таблицы. Обновил ответ. Применяется для сообщения об исключении первого свойства.