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:
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:
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.