Использование StringBuilder для создания и загрузки CSV-файла, но он не отправляет по электронной почте с использованием MailMessage - PullRequest
0 голосов
/ 23 апреля 2020

В ASP. NET Ядро У меня есть метод, который должен отправлять электронную почту с CSV-файлом в определенное время каждый день, я использую метод Linq для получения нужных мне данных, а затем использую StringBuilder, чтобы создать CSV-файл с данными. Вот метод,

public IActionResult EmailFile(int num)
{
     var user = "myEmail";
     StringBuilder sb = new StringBuilder();

     //linq method fetches data
     var fills = _context.Prescriptions
         .Include(p => p.Patient)
         .Where(f => f.FolderStatusId == 9)
         .Where(d => d.DeliveryDate == DateTime.Today.AddDays(1))
         .ToList();

     sb.AppendLine("Id" + ", " + "DeliveryDate" + ", " + "LastName" + ", " + "Medication");

     foreach (var line in fills)
     {
          sb.AppendLine(line.Id + ", " + line.DeliveryDate + ", " line.LastName + ", " + line.Medication + ", ");
     }    

     sb.ToString();
     var file = File(System.Text.Encoding.ASCII.GetBytes(sb.ToString()), "text/csv", "Fills.csv");

     using (var message = new MailMessage())
     {
          message.To.Add(new MailAddress(user));
          message.From = new MailAddress(user);
          message.Subject = "Csv Email";
          message.Body = "Hello, here is the daily FutureFills file \r\n" + file;
          message.IsBodyHtml = false;

          using (var client = new SmptClient("smtp.gmail.com"))
          {
              client.Port = num;
              client.Credentials = new NetworkCredential("email", "password");
              client.EnableSsl = true;
              client.Send(message);
          }
      }
      return file;
}

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

enter image description here

Вот файл CSV, который загружается, и это то, что я ожидаю в моем письме

enter image description here

Итак, мой вопрос: что не так с электронной почтой, почему файл создается и загружается на мой рабочий стол, но электронная почта не отправляет файл, даже если я использую вложение в MailMessage оно не отправляет CSV-файл? Как мне отправить CSV-файл в MailMessage?

...