Как отправлять PDF отчет на Email из кода приложения

05.04.2016

Не секрет, что FastReport .Net позволяет отправлять отчеты по email. Но мало кто знает, как это сделать с помощью кода в пользовательском приложении. Так, чтобы вам не нужно было запускать каждый отчет и отправлять его по email вручную. Нужные отчеты будут автоматически отправлены на указанный почтовый адрес нажатием кнопки, или по расписанию.

Рассмотрим на примере, как отправить отчет в формате PDF по электронной почте.

Создаем приложение WindowsForms. Добавим кнопку и два текстовых поля. В одном мы будем вводить электронный адрес получателя, а во втором – почтовый сервер для исходящей почты.

 

Нам потребуются следующие библиотеки:

1
2
3
using FastReport;
using FastReport.Export;
using FastReport.Utils;

Создаем обработчик события нажатия кнопки:

     

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
 private void button1_Click(object sender, EventArgs e)
 {
 Config.ReportSettings.ShowProgress = false; //Disable progress window
 Report report1 = new Report(); //Create new report object
 report1.Load(Environment.CurrentDirectory+"\\text.frx"); //Load report
 report1.Prepare(); //Prepare report
 
 FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); //Cteate PDF export
 FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport(); //Create Email export
 
 //email mailer settings
 email.Account.Address = "gromozekaster@yandex.ru";
 email.Account.Name = "TestUser";
 email.Account.Host = textBox2.Text;
 email.Account.Port = 25;
 email.Account.UserName = "Gromozekaster";
 email.Account.Password = "Password";
 email.Account.MessageTemplate = "Test";
 email.Account.EnableSSL = true;
 
 //email addressee settings
 email.Address = textBox1.Text;
 email.Subject = "Test Report";
 email.MessageBody = "Test message";
 email.Export = pdf; //Set export type
 email.SendEmail(report1); //Send email
 }

Вначале я отключил окно прогресса в настройках отчета. Это не обязательно. Если вам это не нужно, просто не пишите эту строку кода. Затем создаем экземпляр объекта отчета и загружаем в него отчет. Перед экспортом необходимо подготовить отчет (Prepare), то есть построить его. Так как в теме статьи я озвучил PDF, то создаем объект экспорта в PDF. Аналогичным образом мы создаем экспорт в email.

Теперь мы можем настроить параметры экспорта в Email. В Account - параметры отправителя. В основном это настройки сервера исходящей почты.

Далее задаем параметры получателя, такие как: адрес электронной почты, тема письма, текст письма и экспорт в нужный тип файла. Тут нужно отметить, что нет необходимости производить экспорт в PDF, нужно только создать объект экспорта. Почтовый экспорт сам делает экспорт в заданный формат.

Если не задать параметр Export, то отчет будет отправлен в формате FPX. Это файл предварительного просмотра отчета. Вы сможете просмотреть, распечатать или экспортировать отчет, но не сможете редактировать его.

Наконец, мы отправляем письмо с помощью метода SendEmail. Ему обязательно нужно передать объект отчета.

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

.NET FastReport PDF Отчет Email .NET FastReport PDF Отчет Email
2 сентября 2024

Обзор облачного решения для создания и управления отчетами

МоиОтчеты Облако — это мощное облачное решение для создания и управления отчетами, обеспечивающее широкий спектр возможностей, от создания документов в различных форматах до интеграции с корпоративными системами.
9 ноября 2023

Как сделать отчет из C# проекта в МоиОтчеты Облако

В этой статье разберем пример, как с помощью SDK FastReport создавать отчеты и экспортировать их в любой удобный для вас формат.
1 ноября 2023

PDF/X, PDF/A, PDF/E: В чем разница и зачем так много форматов?

Попробуем разобраться в многообразии PDF форматов, сравниваем плюсы и минусы стандартов для различных отраслей и их потребностей.