Вложение файла в e-mail - C#

Узнай цену своей работы

Формулировка задачи:

Возникла проблема с вложением файла в письмо, вкладываются только мелкие файлы примерно "600 kb", другие файлы размером например 3 - 5 MB, судя по всему не успевают вкладываться или вообще не хотят. Вопрос как это исправить, заставить вложить полностью файл, потом отправить и как "client.Send(message);" вынести на отдельную кнопку?
Листинг программы
  1. //Адрес SMTP-сервера
  2. String smtpHost = "smtp.mail.ru";
  3. //Порт SMTP-сервера
  4. int smtpPort = 587;
  5. //Логин
  6. String smtpUserName = "***";
  7. //Пароль
  8. String smtpUserPass = "***";
  9. //Создание подключения
  10. SmtpClient client = new SmtpClient(smtpHost, smtpPort);
  11. client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);
  12. //Адрес для поля "От"
  13. String msgFrom = "***";
  14. //Адрес для поля "Кому" (адрес получателя)
  15. String msgTo = "***";
  16. //Тема письма
  17. String msgSubject = "Письмо от C#";
  18. //Текст письма
  19. String msgBody = "Работает!";
  20. //Вложение для письма
  21. //Если нужно больше вложений, для каждого вложения создаем свой объект Attachment с нужным путем к файлу
  22. Attachment attachData = new Attachment("C:\\Users\\User\\Desktop\\1.rar"); //Здесь проблема!!!
  23. //Создание сообщения
  24. MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
  25. //Крепим к сообщению подготовленное заранее вложение
  26. message.Attachments.Add(attachData);
  27. try
  28. {
  29. //Отсылаем сообщение
  30. client.Send(message);
  31. }
  32. catch (SmtpException ex)
  33. {
  34. //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
  35. Console.WriteLine(ex.InnerException.Message.ToString());
  36. }
  37. }

Решение задачи: «Вложение файла в e-mail»

textual
Листинг программы
  1. static void Main(string[] args)
  2.         {
  3.             //Адрес SMTP-сервера
  4.             String smtpHost = "smtp.mail.ru";
  5.             //Порт SMTP-сервера
  6.             int smtpPort = 2525; // <-- тут другой порт поставил
  7.             //Логин
  8.             String smtpUserName = "user";
  9.             //Пароль
  10.             String smtpUserPass = "password";
  11.             //Создание подключения
  12.             SmtpClient client = new SmtpClient(smtpHost, smtpPort);
  13.             client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);
  14.            
  15.             //Адрес для поля "От"
  16.             String msgFrom = "user@mail.ru";
  17.             //Адрес для поля "Кому" (адрес получателя)
  18.             String msgTo = "user@mail.ru";
  19.             //Тема письма
  20.             String msgSubject = "Письмо от C#";
  21.             //Текст письма
  22.             String msgBody = "Работает!";
  23.             //Вложение для письма
  24.             //Если нужно больше вложений, для каждого вложения создаем свой объект Attachment с нужным путем к файлу
  25.             Attachment attachData = new Attachment(@"C:\......\Original_song.mp3"); //Здесь проблема!!!
  26.             //Создание сообщения
  27.             MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
  28.             //Крепим к сообщению подготовленное заранее вложение
  29.             message.Attachments.Add(attachData);
  30.  
  31.             try
  32.             {
  33.                 //Отсылаем сообщение
  34.                 Console.WriteLine("Send");
  35.                 client.Timeout = 0; // <-- Таймаут ожидания
  36.                 client.Send(message);
  37.                 Console.WriteLine("ОК");
  38.             }
  39.             catch (SmtpException ex)
  40.             {
  41.                 //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
  42.                 PrintExeption(ex, "");
  43.             }
  44.  
  45.             Console.ReadKey();
  46.         }
  47.  
  48.         static void PrintExeption(Exception ex, string tab)
  49.         {
  50.             Console.WriteLine("{0}{1}",tab,ex.Message);
  51.             if (ex.InnerException != null)
  52.                 PrintExeption(ex.InnerException, tab + "   ");
  53.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы