Como inserir um relatório no corpo de um e-mail

2020-07-09

Por default, FastReport.NET permite-nos enviar e-mails com um arquivo de relatório anexado em um dos formatos de exportação disponíveis. No entanto, às vezes é necessário incluir o conteúdo do relatório no corpo do e-mail. Este recurso pode ser útil se você pretende discutir o conteúdo do relatório na correspondência. As respostas a um e-mail com um arquivo de relatório anexado não terão mais esse arquivo. Portanto, você precisará encontrar um e-mail com um anexo para visualizar o relatório e entender do que se trata. Também pode ser útil se você estiver visualizando e-mails em um dispositivo móvel. Baixar um arquivo de relatório e abri-lo em outro aplicativo não é muito conveniente.

No FastReport.NET podemos enviar e-mails a partir do código de um aplicativo do usuário, o que significa que podemos definir as configurações de e-mail. Infelizmente, uma mensagem de e-mail pode conter apenas texto simples, sem imagens e marcação html. Portanto, podemos exportar o relatório para o formato txt para inseri-lo no corpo da mensagem.

Obviamente, o formato de exportação txt impõe muitas limitações - ausência completa de gráficos, objetos interativos e marcação complexa - apenas texto. Portanto, deve ser usado apenas em relatórios simples com hierarquia de dados clara e marcação simples. O exemplo ideal - listas simples. Vamos considerar um exemplo de envio de e-mail com um relatório na mensagem:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
//Create export to txt format
FastReport.Export.Text.TextExport text = new FastReport.Export.Text.TextExport();
 
//Execute export to the file or stream
 report.Export(text, "Template.txt");
 
//Create export to email
 FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport();
 
//Set email subject
 email.Subject = "Test";
 
//Set message body – reply in text format
 email.MessageBody = File.ReadAllText("Template2.txt");
 
//Set recipient address
 email.Address = "gromozeka@gmail.com";
 
//Set sender address
 email.Account.Address = "gromozeka@yandex.ru";
 
//Set email host
 email.Account.Host = "smtp.yandex.ru";
 
//Set recipient name
 email.Account.Name = "gromozeka";
 
//Set username
 email.Account.UserName = "gromozeka";
 
//Set user password
 email.Account.Password = "******";
 
//Set email server port
 email.Account.Port = 25;
 
//Enable encryption if needed
 email.Account.EnableSSL = true;
 
//Send email
 email.SendEmail(report);

O mecanismo de envio de emails para FR.NET implica o envio de um email com um relatório anexado, portanto, um modelo de relatório será anexado por padrão se você não tiver especificado um determinado formato de exportação para o arquivo anexado.

Agora vamos ver o que recebemos por e-mail. Mas primeiro, dê uma olhada no relatório original:

Modelo de relatório para o e-mail

Há lindas molduras, títulos gradientes e imagens. Não vai haver nada disso na visualização de texto do relatório.

Esta é a aparência do e-mail com o relatório na mensagem:

Como o relatório fica no corpo de E-mail

O relatório é bastante reconhecível. Se não é importante para você mostrar a aparência do relatório, mas apenas entregar as informações, então este método de envio do relatório no corpo da mensagem será bastante adequado.

.NET .NET FastReport FastReport Email Email
26 de abril de 2023

How to use RFID tags in FastReport .NET

The new page object is an RFID tag in FastReport.NET allows users to use the library to create labels or maps without third-party programs
20 de abril de 2023

How to update FastReport Online Designer to the latest version

Step-by-step instructions for updating FastReport Online Designer to the latest version via the client panel.
14 de março de 2023

The Future of Report Generation with Blazor WebAssembly

Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET.
Fast Reports
  • 800-985-8986 (English, US)
  • +31 97 01025-8466 (English, EU)
  • +49 30 56837-3928 (German, DE)
  • +55 19 98147-8148 (Portuguese, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.