.NET 4.x Сбой при отправке сообщения электронной почты. - C#

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

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

Хочу сохранить почту Gmail на комп в формате .eml Пишу
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Web;
  10. using System.Net;
  11. using System.Net.Mail;
  12. using System.Net.Mime;
  13. using System.IO;
  14. namespace WindowsFormsApplication2
  15. {
  16. public partial class Form1 : Form
  17. {
  18. public Form1()
  19. {
  20. InitializeComponent();
  21. SmtpClient Smtp = new SmtpClient("smtp.gmail.com", 587);
  22. Smtp.UseDefaultCredentials = false;
  23. Smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
  24. Smtp.EnableSsl = true;
  25. Smtp.Credentials = new NetworkCredential("removed@mail.ru", "ПАРОЛЬ");
  26. MailMessage email = new MailMessage();
  27. email.From = new MailAddress("removed@mail.ru");
  28. email.To.Add("removed@mail.ru");
  29. Smtp.PickupDirectoryLocation = "C:\\temp\\";
  30. Smtp.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
  31. Smtp.Send(email);
  32. }
  33. }
  34. }
и на строчке Smtp.Send(email); выдает ошибку Сбой при отправке сообщения электронной почты.; C подобными классами работаю впервые , помогите разобраться пожалуйста!

Решение задачи: «.NET 4.x Сбой при отправке сообщения электронной почты.»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections;
  4. using System.Linq;
  5. using System.Collections.Specialized;
  6. using System.Text;
  7. using System.Web;
  8. using System.Net;
  9. using System.Net.Mail;
  10. using System.Net.Mime;
  11. using System.Windows.Forms;
  12. namespace SMTP
  13. {
  14.     class SMTPClient
  15.     {
  16.         public event SendCompletedEventHandler OnSendCompleted;
  17.         public delegate void error(object sender, string MsgError);
  18.         public event error OnError;
  19.         public Encoding Encod = Encoding.UTF8;
  20.         public bool IsBodyHtml = false;
  21.         public bool EnableSsl = false;
  22.         public string UserName = "";
  23.         public string Password = "";
  24.         public MailPriority PrioritetSender = new MailPriority();
  25.         public DeliveryNotificationOptions DelivetyNotifiOptions = new DeliveryNotificationOptions();
  26.         MailMessage Message = new MailMessage();
  27.         System.Net.Mail.SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 2525);
  28.         /// <summary>
  29.         /// Отправка сообщения
  30.         /// </summary>
  31.         /// <param name="Subject">Заголовок сообщения</param>
  32.         /// <param name="Body">Текст сообщения</param>
  33.         /// <param name="To">Адрес получателя</param>
  34.         /// <param name="FilesName">Колекция путей файлов для вложения в письмо.</param>
  35.         /// <returns>Заголовок отправленного запроса</returns>
  36.         public NameValueCollection SendMessage(string Subject, string Body, string To, ArrayList FilesName)
  37.         {
  38.             NameValueCollection Header = new NameValueCollection();
  39.             if (Subject.Length > 0) Message.Subject = Subject;
  40.             else Message.Subject = "Message";
  41.             if (Body.Length > 0) Message.Body = Body;
  42.             else Message.Body = "Message";
  43.  
  44.             foreach (object at in FilesName)
  45.             {
  46.                 Message.Attachments.Add(new Attachment(at.ToString()));
  47.             }
  48.             Message.BodyEncoding = Encod;
  49.             Message.SubjectEncoding = Encod;
  50.             Message.From = new MailAddress(UserName.Trim());
  51.             Message.IsBodyHtml = IsBodyHtml;
  52.             Message.To.Add(new MailAddress(To.Trim()));
  53.             Message.Priority = PrioritetSender;
  54.             Header = Message.Headers;
  55.             Message.DeliveryNotificationOptions = DelivetyNotifiOptions;
  56.             try
  57.             {
  58.                 Smtp.Send(Message);
  59.             }
  60.             catch (SmtpFailedRecipientsException ex)
  61.             {
  62.                 if (OnError != null)
  63.                     OnError("SendMessage", ex.Message.Trim());
  64.             }
  65.             catch (SmtpFailedRecipientException ex)
  66.             {
  67.                 if (OnError != null)
  68.                     OnError("SendMessage", ex.Message.Trim());
  69.             }
  70.             catch (SmtpException ex)
  71.             {
  72.                 if (OnError != null)
  73.                 {
  74.                     OnError("SendMessage", ex.Message.Trim());
  75.                 }
  76.             }
  77.  
  78.             return Header;
  79.         }
  80.         /// <summary>
  81.         /// Отправка сообщения
  82.         /// </summary>
  83.         /// <param name="Subject">Заголовок сообщения</param>
  84.         /// <param name="Body">Текст сообщения</param>
  85.         /// <param name="To">Адрес получателя</param>
  86.         /// <returns>Заголовок отправленного запроса</returns>
  87.         public NameValueCollection SendMessage(string Subject, string Body, string To)
  88.         {
  89.             return SendMessage(Subject, Body, To, new ArrayList());
  90.         }
  91.         /// <summary>
  92.         /// Конструктор
  93.         /// </summary>
  94.         /// <param name="userName">Имя пользователя для авторизации</param>
  95.         /// <param name="password">Пароль пользователя для авторизации</param>
  96.         public SMTPClient(string userName, string password)
  97.         {
  98.             UserName = userName.Trim();
  99.             Password = password.Trim();
  100.             Smtp.EnableSsl = EnableSsl;
  101.             Smtp.Credentials = new System.Net.NetworkCredential(UserName, Password);
  102.             Smtp.SendCompleted += new SendCompletedEventHandler(Smtp_SendCompleted);
  103.         }
  104.         /// <summary>
  105.         /// Конструктор
  106.         /// </summary>
  107.         /// <param name="userName">Имя пользователя для авторизации</param>
  108.         /// <param name="password">Пароль пользователя для авторизации</param>
  109.         /// <param name="isBodyHtml">Использование HTML в письме</param>
  110.         /// <param name="enableSsl">Использование Ssl</param>
  111.         public SMTPClient(string userName, string password, bool isBodyHtml, bool enableSsl)
  112.             : this(userName, password)
  113.         {
  114.             IsBodyHtml = isBodyHtml;
  115.             EnableSsl = enableSsl;
  116.         }
  117.         /// <summary>
  118.         /// Конструктор
  119.         /// </summary>
  120.         /// <param name="userName">Имя пользователя для авторизации</param>
  121.         /// <param name="password">Пароль пользователя для авторизации</param>
  122.         /// <param name="isBodyHtml">Использование HTML в письме</param>
  123.         /// <param name="enableSsl">Использование Ssl</param>
  124.         /// <param name="prioritet">Задает приоритет</param>
  125.         /// <param name="option">Описывает параметры уведомления о доставке электронной почты.</param>
  126.         /// <param name="en">Задает кодировку, используемую для кодирования тела сообщения.</param>
  127.         public SMTPClient(string userName, string password, bool isBodyHtml, bool enableSsl, MailPriority prioritet, DeliveryNotificationOptions option, Encoding en)
  128.             : this(userName, password, isBodyHtml, enableSsl)
  129.         {
  130.             PrioritetSender = prioritet;
  131.             DelivetyNotifiOptions = option;
  132.             Encod = en;
  133.         }
  134.  
  135.         void Smtp_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
  136.         {
  137.             OnSendCompleted(sender, e);
  138.         }
  139.     }
  140. }

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


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

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

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

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

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

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