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