Я создал приложение, которое генерирует файл Excel из DataTable с использованием библиотеки EPPlus. Затем я добавляю экземпляр MemoryStream в приложение. Программа работает нормально, я получаю электронное письмо, но когда я открываю файл, я получаю сообщение об ошибке "Excel не может открыть файл, потому что формат файла или расширение файла недействительно. Убедитесь, что файл не был поврежден и что расширение файла соответствует форматуфайла ". Я перепробовал много вариантов, которые нашел в сети, но никто не помог. Может кто-нибудь знает, как исправить тот или иной способ отправки почтового сообщения с вложениями.
public void SendMail(DataTable dt)
{
using (MemoryStream outputStream = new MemoryStream())
using (ExcelPackage pck = new ExcelPackage(outputStream))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet");
ws.Cells.LoadFromDataTable(dt, true);
pck.Save();
SmtpClient client = new SmtpClient("host");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("usarename", "password");
MailMessage message = new MailMessage("sender@gmail.com", "to@gmail.com");
message.Body = "File in attachments";
Attachment at = new Attachment(outputStream, "FileOutput.xls", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
message.Attachments.Add(at);
message.Subject = "Test";
client.Send(message);
}
}