Вложение файла в e-mail - C#
Формулировка задачи:
Возникла проблема с вложением файла в письмо, вкладываются только мелкие файлы примерно "600 kb", другие файлы размером например 3 - 5 MB, судя по всему не успевают вкладываться или вообще не хотят. Вопрос как это исправить, заставить вложить полностью файл, потом отправить и как "client.Send(message);" вынести на отдельную кнопку?
//Адрес SMTP-сервера String smtpHost = "smtp.mail.ru"; //Порт SMTP-сервера int smtpPort = 587; //Логин String smtpUserName = "***"; //Пароль String smtpUserPass = "***"; //Создание подключения SmtpClient client = new SmtpClient(smtpHost, smtpPort); client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass); //Адрес для поля "От" String msgFrom = "***"; //Адрес для поля "Кому" (адрес получателя) String msgTo = "***"; //Тема письма String msgSubject = "Письмо от C#"; //Текст письма String msgBody = "Работает!"; //Вложение для письма //Если нужно больше вложений, для каждого вложения создаем свой объект Attachment с нужным путем к файлу Attachment attachData = new Attachment("C:\\Users\\User\\Desktop\\1.rar"); //Здесь проблема!!! //Создание сообщения MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); //Крепим к сообщению подготовленное заранее вложение message.Attachments.Add(attachData); try { //Отсылаем сообщение client.Send(message); } catch (SmtpException ex) { //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема Console.WriteLine(ex.InnerException.Message.ToString()); } }
Решение задачи: «Вложение файла в e-mail»
textual
Листинг программы
static void Main(string[] args) { //Адрес SMTP-сервера String smtpHost = "smtp.mail.ru"; //Порт SMTP-сервера int smtpPort = 2525; // <-- тут другой порт поставил //Логин String smtpUserName = "user"; //Пароль String smtpUserPass = "password"; //Создание подключения SmtpClient client = new SmtpClient(smtpHost, smtpPort); client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass); //Адрес для поля "От" String msgFrom = "user@mail.ru"; //Адрес для поля "Кому" (адрес получателя) String msgTo = "user@mail.ru"; //Тема письма String msgSubject = "Письмо от C#"; //Текст письма String msgBody = "Работает!"; //Вложение для письма //Если нужно больше вложений, для каждого вложения создаем свой объект Attachment с нужным путем к файлу Attachment attachData = new Attachment(@"C:\......\Original_song.mp3"); //Здесь проблема!!! //Создание сообщения MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); //Крепим к сообщению подготовленное заранее вложение message.Attachments.Add(attachData); try { //Отсылаем сообщение Console.WriteLine("Send"); client.Timeout = 0; // <-- Таймаут ожидания client.Send(message); Console.WriteLine("ОК"); } catch (SmtpException ex) { //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема PrintExeption(ex, ""); } Console.ReadKey(); } static void PrintExeption(Exception ex, string tab) { Console.WriteLine("{0}{1}",tab,ex.Message); if (ex.InnerException != null) PrintExeption(ex.InnerException, tab + " "); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д