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

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 FastReport Email .NET FastReport Email
10 июля 2026

Как настроить Content Security Policy для отчетов FastReport .NET WEB

Узнайте, как настроить Content Security Policy для отчётов FastReport .NET WEB: обзор директив и значений CSP, изменения в архитектуре FastReport, типичные сценарии обхода и способы защиты.
22 июня 2026

Как настроить отчет с Business Objects из кода и дизайнера в FastReport .NET

В этой статье рассматривается реальный пример создания и использования шаблона отчета .frx для подключения к иерархическим бизнес-объектам в FastReport .NET.
21 апреля 2026

Использование водяных знаков в FastReport VCL

В статье подробно рассмотрели функционал добавления водяных знаков в FastReport VCL — как через визуальный интерфейс, так и программно, с помощью кода на Delphi и в скриптах отчётов.

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