.NET 4.x Сбой при отправке сообщения электронной почты. - C#
Формулировка задачи:
Хочу сохранить почту Gmail на комп в формате .eml
Пишу
и на строчке Smtp.Send(email); выдает ошибку Сбой при отправке сообщения электронной почты.;
C подобными классами работаю впервые , помогите разобраться пожалуйста!
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Web; using System.Net; using System.Net.Mail; using System.Net.Mime; using System.IO; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); SmtpClient Smtp = new SmtpClient("smtp.gmail.com", 587); Smtp.UseDefaultCredentials = false; Smtp.DeliveryMethod = SmtpDeliveryMethod.Network; Smtp.EnableSsl = true; Smtp.Credentials = new NetworkCredential("removed@mail.ru", "ПАРОЛЬ"); MailMessage email = new MailMessage(); email.From = new MailAddress("removed@mail.ru"); email.To.Add("removed@mail.ru"); Smtp.PickupDirectoryLocation = "C:\\temp\\"; Smtp.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; Smtp.Send(email); } } }
Решение задачи: «.NET 4.x Сбой при отправке сообщения электронной почты.»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Collections.Specialized; using System.Text; using System.Web; using System.Net; using System.Net.Mail; using System.Net.Mime; using System.Windows.Forms; namespace SMTP { class SMTPClient { public event SendCompletedEventHandler OnSendCompleted; public delegate void error(object sender, string MsgError); public event error OnError; public Encoding Encod = Encoding.UTF8; public bool IsBodyHtml = false; public bool EnableSsl = false; public string UserName = ""; public string Password = ""; public MailPriority PrioritetSender = new MailPriority(); public DeliveryNotificationOptions DelivetyNotifiOptions = new DeliveryNotificationOptions(); MailMessage Message = new MailMessage(); System.Net.Mail.SmtpClient Smtp = new SmtpClient("smtp.mail.ru", 2525); /// <summary> /// Отправка сообщения /// </summary> /// <param name="Subject">Заголовок сообщения</param> /// <param name="Body">Текст сообщения</param> /// <param name="To">Адрес получателя</param> /// <param name="FilesName">Колекция путей файлов для вложения в письмо.</param> /// <returns>Заголовок отправленного запроса</returns> public NameValueCollection SendMessage(string Subject, string Body, string To, ArrayList FilesName) { NameValueCollection Header = new NameValueCollection(); if (Subject.Length > 0) Message.Subject = Subject; else Message.Subject = "Message"; if (Body.Length > 0) Message.Body = Body; else Message.Body = "Message"; foreach (object at in FilesName) { Message.Attachments.Add(new Attachment(at.ToString())); } Message.BodyEncoding = Encod; Message.SubjectEncoding = Encod; Message.From = new MailAddress(UserName.Trim()); Message.IsBodyHtml = IsBodyHtml; Message.To.Add(new MailAddress(To.Trim())); Message.Priority = PrioritetSender; Header = Message.Headers; Message.DeliveryNotificationOptions = DelivetyNotifiOptions; try { Smtp.Send(Message); } catch (SmtpFailedRecipientsException ex) { if (OnError != null) OnError("SendMessage", ex.Message.Trim()); } catch (SmtpFailedRecipientException ex) { if (OnError != null) OnError("SendMessage", ex.Message.Trim()); } catch (SmtpException ex) { if (OnError != null) { OnError("SendMessage", ex.Message.Trim()); } } return Header; } /// <summary> /// Отправка сообщения /// </summary> /// <param name="Subject">Заголовок сообщения</param> /// <param name="Body">Текст сообщения</param> /// <param name="To">Адрес получателя</param> /// <returns>Заголовок отправленного запроса</returns> public NameValueCollection SendMessage(string Subject, string Body, string To) { return SendMessage(Subject, Body, To, new ArrayList()); } /// <summary> /// Конструктор /// </summary> /// <param name="userName">Имя пользователя для авторизации</param> /// <param name="password">Пароль пользователя для авторизации</param> public SMTPClient(string userName, string password) { UserName = userName.Trim(); Password = password.Trim(); Smtp.EnableSsl = EnableSsl; Smtp.Credentials = new System.Net.NetworkCredential(UserName, Password); Smtp.SendCompleted += new SendCompletedEventHandler(Smtp_SendCompleted); } /// <summary> /// Конструктор /// </summary> /// <param name="userName">Имя пользователя для авторизации</param> /// <param name="password">Пароль пользователя для авторизации</param> /// <param name="isBodyHtml">Использование HTML в письме</param> /// <param name="enableSsl">Использование Ssl</param> public SMTPClient(string userName, string password, bool isBodyHtml, bool enableSsl) : this(userName, password) { IsBodyHtml = isBodyHtml; EnableSsl = enableSsl; } /// <summary> /// Конструктор /// </summary> /// <param name="userName">Имя пользователя для авторизации</param> /// <param name="password">Пароль пользователя для авторизации</param> /// <param name="isBodyHtml">Использование HTML в письме</param> /// <param name="enableSsl">Использование Ssl</param> /// <param name="prioritet">Задает приоритет</param> /// <param name="option">Описывает параметры уведомления о доставке электронной почты.</param> /// <param name="en">Задает кодировку, используемую для кодирования тела сообщения.</param> public SMTPClient(string userName, string password, bool isBodyHtml, bool enableSsl, MailPriority prioritet, DeliveryNotificationOptions option, Encoding en) : this(userName, password, isBodyHtml, enableSsl) { PrioritetSender = prioritet; DelivetyNotifiOptions = option; Encod = en; } void Smtp_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { OnSendCompleted(sender, e); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д