logo

Добавление изображения в электронное письмо при отправке из процесса

В этой статье представлен пример добавления изображения в электронное письмо. Изображение прикрепляется с использованием base64.

Выполните следующие действия.

1. Перейдите в системе в раздел Администрирование – Система – Настройки системы – Исходящая почта и в поле Формат данных в подписи для сообщений системы выберите HTML-подпись.

2. Изображение, которое вы хотите отправить, нужно конвертировать в base64. Для этого можно использовать данный ресурс. Загрузите изображение и выберите вариант кода для вставки data:image/png;base64 или <img src="...">.

3. В конвертере будет сформирована строка. Длина строки изменяется в зависимости от размера изображения.

4. Сформируйте код для отправки письма:

using System.Text.RegularExpressions; //подключить библиотеки


var emailSender = Locator.GetService<EmailSender>();
string cond = @"(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)"; //регулярное выражение символов в имени почты для проверки корректности
string email_letter = string.Format(@"{0}", email);
string theme = context.Theme;
string message = context.Message;
message += *вставляем сгенерированную строку формата Base64*; //вставлять в формате "<img src=\"data:image.......\"/>"
if (Regex.IsMatch(email, cond)) //проверка правильности email
{

var msg = new MailMessage("elma@elma.ru", email, theme, message);
msg.IsBodyHtml = true; //включение настройки html формата письма

try
{

emailSender.SendMessage(msg);

}

catch (Exception ex)
{

context.Exception = ex.Message;

}

}
else
{

context.Exception = "Указан некорректный Email";

}

На рисунке ниже представлено, как может выглядеть электронное письмо с добавленным изображением.