Вложение файла в 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 + "   ");
        }

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


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

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

9   голосов , оценка 4.111 из 5
Похожие ответы