Вложение файла в 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 + " ");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д