Этот кусок кода показывает, как можно программно отослать электронное письмо средствами C#. Письмо отсылается через указанный SMTP-сервер, который требует авторизацию. Так же к письму можно прикрепить одно или несколько вложений.
//Адрес SMTP-сервера String smtpHost = "SMTP.SERVER.RU"; //Порт SMTP-сервера int smtpPort = 25; //Логин String smtpUserName = "LOGIN"; //Пароль String smtpUserPass = "PASSWORD"; //Создание подключения SmtpClient client = new SmtpClient(smtpHost, smtpPort); client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass); //Адрес для поля "От" String msgFrom = "LOGIN@SERVER.RU"; //Адрес для поля "Кому" (адрес получателя) String msgTo = "KUDA@TO.RU"; //Тема письма String msgSubject = "Письмо от C#"; //Текст письма String msgBody = "Привет!\r\n\r\nЭто тестовое письмо\r\n\r\n--\r\nС уважением, C# :-)"; //Вложение для письма //Если нужно больше вложений, для каждого вложения создаем свой объект Attachment с нужным путем к файлу Attachment attachData = new Attachment("D:\Тестовое вложение.zip"); //Создание сообщения 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()); }
Тело письма и его заголовок будут созданы и отосланы в кодировке — UTF-8. Если же захочется отослать письмо в кодировке windows-1251, то начинаются проблемы. Мне удалось найти только одно достаточно подробное описание этой проблемы. И в более свежих версиях фреймворка (помимо .Net Framework 2.0) точно такая же проблема.
Читать далее Отсылка e-mail через C#