Как вставить отчет в тело письма

09.07.2020

По умолчанию FastReport.Net позволяет отправлять электронные письма с вложенным файлом отчета в одном из доступных форматов экспорта. Однако, иногда требуется включить содержимое отчета в тело письма. Такая возможность может быть востребована, если предполагается обсуждения содержимого отчета в переписке. В ответах на письмо с прикрепленным файлом этого файла уже не будет. Поэтому, придется потратить время, чтобы найти письмо с аттачем, чтобы посмотреть отчет и понять, о чем идет речь. Также, это может быть полезно, если вы просматриваете почту в мобильном устройстве. Скачивать файл отчета и открывать его в другом приложении - это не очень удобно.

В FastReport.Net мы может отправлять письма из кода пользовательского приложения, а значит – задавать настройки писем. К сожалению, в сообщении письма может быть только обычный текст, без картинок и html разметки. Поэтому, мы можем использовать экспорт отчета в формат txt, чтобы затем вставить его в тело письма.

Конечно, формат экспорта txt накладывает множество ограничений – полное отсутствие графики, интерактивных объектов и сложной разметки – только текст. Поэтому его стоит использовать только в простых отчетах с понятной иерархией данных и простой разметкой. Идеальный пример – простые списки. Рассмотрим пример отправки письма с отчетом в сообщении:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Создаем экспорт в текстовый формат
FastReport.Export.Text.TextExport text = new FastReport.Export.Text.TextExport();
//Выполняем экспорт в файл или поток
 report.Export(text, "Template.txt");
//Создаем экспорт в письмо
 FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport();
//Задаем заголовок письма
 email.Subject = "Test";
//Задаем сообщение – ответ в текстовом формате
 email.MessageBody = File.ReadAllText("Template2.txt"); 
//Задаем адрес получателя
 email.Address = "gromozeka@gmail.com";
//Задаем адрес отправителя
 email.Account.Address = "gromozeka@yandex.ru";
//Задаем сервер отправки писем
 email.Account.Host = "smtp.yandex.ru";
//Задаем имя отправителя
 email.Account.Name = "gromozeka";
// Задаем имя пользователя
 email.Account.UserName = "gromozeka";
//Задаем пароль пользователя
 email.Account.Password = "******";
//Задаем порт почтового сервера
 email.Account.Port = 25;
//Включаем шифрование, если требуется
 email.Account.EnableSSL = true;
//Отправляем письмо
 email.SendEmail(report);

Механизм отправки писем в FR.Net предполагает отправку письма с прикрепленным отчетом, поэтому по умолчанию будет приложен шаблон отчета, если вы не задали определенный формат экспорта для прикрепленного файла.

Теперь посмотрим, что же мы получим в письме. Но сначала взгляните на оригинальный отчет:

Report template for the email

Тут присутствуют красивые рамки, градиентные заголовки и картинки. Всего этого в текстовом представлении отчета не будет.

Вот так выглядит письмо с отчетом в сообщении:

How the report looks in email body

Отчет вполне узнаваем. Если вам не принципиально показать внешний вид отчета, а нужно лишь донести информацию, то этот способ отправки отчета в теле письма вполне подойдет.

.NET .NET FastReport FastReport Email Email
8 сентября 2026

Ответы на популярные вопросы о формате FP3

Разбираем 11 частых вопросов о формате FP3: что это за файлы, чем отличаются от FR3, какие программы их открывают и как конвертировать в PDF.
4 сентября 2026

Как из FastReport .NET экспортировать отчет в DXF

Рассмотрим способы экспорта отчета в формат DXF, а также посмотрим, как выглядит полученный результат после открытия файла в CAD-приложении.
30 июля 2026

Как из FastReport .NET экспортировать отчет в PostScript

В этой статье мы на простом примере рассмотрим экспорт отчета FastReport .NET в формат PostScript, разобрав настройку параметров и программную реализацию.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»