Codes DeCodes Ответов: 3

Как отправить почту с телом почты в формате HTML в почтовом ящике пользователя


У меня есть HTML-форматированное содержимое тела электронной почты, которое поступает из таблицы базы данных. Когда почта отправлена, тело должно быть отформатировано и отрисовано в почтовом ящике пользователя так же, как оно отформатировано и сохранено в БД. (Форматирование HTML).

Код в базе данных :
<code></code><p>
    This is body</p>
<p style="text-align: center;">
   Formatted
<h2>
    Body</h2>
<p style="margin-removed 40px;">
    NEW BODY</p>


Мой код для отправки почты :

public virtual MailMessage SendMailNotification(UserInfo item, DiagnosticTestMailContent diagnosticTestMailContent)
     {
         string body = diagnosticTestMailContent.Mail_Body;
         var mailMessage = new MailMessage { Subject = diagnosticTestMailContent.Mail_Header + Kats.DAL.Connection.ProjectName().ToUpper() , Body = body };
         mailMessage.From = new MailAddress(Kats.Helpers.FileSettings.GetAdminMail());
         mailMessage.To.Add(item.Email);
         ViewBag.MailBody = diagnosticTestMailContent.Mail_Body;
        return mailMessage;
     }



В почтовом ящике пользователей, когда они получают почту, они получают ее таким образом, а не форматируют. Как я могу визуализировать страницу в почтовом ящике пользователя с помощью HTML-форматирования вместо отображения всех тегов и содержимого в почтовом ящике??

Что я уже пробовал:

Я создал метод PopulateBody (mailMessage, viewName: "UserGroupDiagnostic"); чтобы отформатировать тело с помощью HTML-форматирования и отправить это тело. Но этот путь также не работает так, как требуется. Для этого код ;

общедоступный виртуальный получить помощь SendMailNotification(сведений о пользователях пункт, DiagnosticTestMailContent diagnosticTestMailContent)
{
строка body = diagnosticTestMailContent.Mail_Body;
ВАР получить помощь = Новый получить помощь { тема = diagnosticTestMailContent.Mail_Header + Кац.Даль.Связи.Название проекта().ToUpper (), Body = body };
почтовое сообщение.От = Новый адрес электронной почты(Кац.Прислуга.Наборы файлов.GetAdminMail());
почтовое сообщение.Для.Добавить(элемент.Электронной почты);
Видовая сумка.MailBody = diagnosticTestMailContent.Mail_Body;
PopulateBody(mailMessage, viewName: "UserGroupDiagnostic");
возвратное почтовое сообщение;
}


-- Просмотр для создания HTML-контента начинается
@{
string mailBody = (string)ViewBag.MailBody;
строки имя_проекта = Кац.Даль.Связи.Имя_проекта();
}


@mailBody

}
-- Просмотр для генерации HTML-контента заканчивается

3 Ответов

Рейтинг:
4

Codes DeCodes

Мое тело

string body = diagnosticTestMailContent.Mail_Body;

в нем были перенесены html-теги. Он был непосредственно визуализирован. Я добавил тело в stringbuilder, и тогда он начал работать.


Рейтинг:
2

Mycroft Holmes

Проверьте, имеет ли объект MailMessage свойство. HTMLBody. Я использую объект Outlook, который имеет это свойство, но не уверен в универсальном объекте.

oMessage-это просто класс, который я использую для сбора всех битов, используемых для почтового сообщения.

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Create a new mail item.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.HTMLBody = oMessage.Body;
oMsg.Subject = oMessage.Subject;
oMsg.To = oMessage.MailTo;
oMsg.CC = oMessage.CC;
oMsg.Display();


Рейтинг:
1

Beginner Luck

получить помощь = Новый получить помощь("xxxx@gmail.com",
"yyyy@gmail.com", " сообщение от системы PSSP",
"Это письмо отправлено системой PSSP< br / & gt;" +
"< b> Это жирный текст!< / b>");

почтовое сообщение.IsBodyHtml = true;


Codes DeCodes

почтовое сообщение.IsBodyHtml = true;
Я пробовал это сделать, но в моем случае это не работает..

Beginner Luck

изменить свой ВАР получить помощь = Новый получить помощь, чтобы получить помощь получить помощь = Новый получить помощь();