Не секрет, что 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. Ему обязательно нужно передать объект отчета.
Рассмотренный способ будет полезен для типовых писем, например, можно организовать автоматическую рассылку ежедневных отчетов на электронную почту начальника.