Здравствуйте. Поскольку графомания у меня прогрессирует, решил я добавить еще одну статью. Статья будет, как всегда, с примерами на C#, но более-менее умелый VB"шник с легкостью перепишет весь код под VB.NET.
Начнем, пожалуй
Для отправки E-Mail нам нужно воспользоваться тремя объектами. System.Net.Mail.SmtpClient для отправки сообщения, System.Net.Mail.MailMessage для представления сообщения, и System.Net.NetworkCredential для авторизации.
Создадим клиент:
Var client = new SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);
Референция конструктора:
SmtpClient(string host, int port);
Создадим экземпляр класса MailMessage:
Var msg = new MailMessage("from", "to");
Теперь зададим тему и содержимое письма (к слову говоря, все можно задать и в конструкторе). А также логин и пароль smtp-клиенту. Затем отправим письмо методом Send нашего объекта client:
Var client = new SmtpClient("smtp.yandex.ru"); var msg = new MailMessage("from", "to"); msg.Subject = "My test message"; msg.Body = "Hello, my friend! Just imagine, that I just written a incredible program to send this meaningless letter to you a billion times only by several clicks!"; msg.SubjectEncoding = Encoding.UTF8; msg.BodyEncoding = Encoding.UTF8; // приоритет msg.Priority = MailPriority.High; // тело письма в html? msg.IsBodyHtml = false; client.Credentials = new NetworkCredential("login", "password"); client.Send(msg);
Вот и все. Не забудьте все необходимые данные указать правильно.
Комментарии ()
ruslang02 30
CoolHacker, можно у тебя взять этот код для 3 части веб-броузера?
Coolhacker 770 ruslang02 30Спасибо, я его буду использовать для отправки ссылок по e-mail
как в FireFox
Отправка сообщений на почту в Visual Studio 2013 C++
Казалось бы, зачем изобретать велосипед? Есть множество программ, которые могут отправлять письма на электронную почту: как платных, так и бесплатных. В этих программах можно отправлять письма не одному, а сразу многим получателям. Однако, все же добавление получателей происходит вручную, адреса их вбивать муторно, особенно если их не один десяток. А если требуется регулярно отправлять сотни писем? Причем я не говорю о спаме, а имею в виду совершенно легальные рассылки?
В этом случае на помощь может придти специальная программа. В этой статье не будет такой целой программы, а будет небольшая программа, которая просто отправляет одно письмо на один адрес. При этом происходит авторизация по smpt, то есть письмо отправляется не от неизвестно откуда, а со вполне реального почтового ящика. В примере используется почта mail.ru.
Итак, вот текст программы.
#include "stdafx.h"
#using
С 1-й по 8-ю строчки идет подключение заголовочных файлов и пространства имен. 13 строка инициализирует smpt-сервер. Для яндекса и гугла используются свои: smtp.yandex.ru и smtp.google.ru соответственно. Число 25 в этой строке - это порт. В том случае, если ваш провайдер блокирует это порт или не получается соединиться, то можно попробовать такие варианты 465 или 587. В 14 строке необходимо ввести свой ящик электронной почты (с которого пойдет письмо) и пароль от этого ящика.
Особое внимание обращаем на 15 строку - в этой подключается безопасный протокол ssl. Это в обязательном порядке требуется для яндекса и майла. 17 строка создает сообщение; в 18 - обратный адрес; в 19 - адрес получателя; 20 - заголовок письма; 21 - сообщение; в 22 строке производится отправка. Если после запуска программы не выскакивает никаких ошибок, ничего не происходит, то все нормально - проверяйте ящик получателя.
Если у вас есть хоть какие-то небольшие навыки программирования, то доделать остальное будет совсем несложно. Надо создать окно, форму, в форме несколько полей ввода, заставить программу подгружать список адресов из, к примеру, текстового фала или базы MS Access. Если же для вас это еще не совсем понятно, то в следующих статьях я расскажу обо всем подробнее.
Любые вопросы по программам на C++, java, скриптам на java script и php, созданию сайтов и верстке, вы можете задать по почте [email protected] или стучитесь в скайп up777up2. За очень умеренную плату я вам с удовольствием помогу.
Дополнение
Один из посетителей блога задал вопрос: а как прикрепить файл в данной программе? Ответ прост: надо добавить несколько строк кода в приложение:
String^ att = L"att.xls"; Attachment^ dan = gcnew Attachment(att, MediaTypeNames::Application::Octet); Message->Attachments->Add(dan); В первой строке определяем прикрепляемый файл, во второй определяем данные и приказываем не интерпретировать их (заголовок Content-Type протокола MIME) и в третьей - добавляем его к письму. Вот и все.
Очень часто приходится сталкиваться с отправкой электронных писем из программного кода. За примерами далеко ходить не нужно.
Данная статья является подсказкой и не открывает ничего нового, но прежде чем её писать, посмотрел похожее в интернете и был довольно удивлён тому, что почти везде предлагают или не работающее или устаревшее решение, либо просто написано неграмотно.
Первое, что не стоит делать по этим примерам – это использовать System.Web.Mail, который уже давно устарел, а начиная с Visual Studio 2010 библиотеку System.Web даже и не добавить, не зная полного пути к соответствующей DLL.
Вместо него предлагается использовать библиотеку System.Net.
using System.Net;
using System.Net.Mail;
Итак, самое простое, оно же самое важное и часто использующееся - это отправка письма со своего почтового сервера, на котором настроен SMTP-клиент. Как вы понимаете, сервер может быть как и тот, на котором работает приложение, так и удалённый, на котором у вас есть права отправлять письма без дополнительной авторизации.
Пример кода для отправки письма с локальной машины:
С использованием почтовых служб, таких как Gmail, Yandex, Mail.ru и т.д. всё то же самое, только добавляются параметры с авторизацией.
SMTP-сервер: smtp.gmail.com
Порт: 587
using (MailMessage mm = new MailMessage("Name
SMTP-сервер: smtp.yandex.ru
Порт: 25
using (MailMessage mm = new MailMessage("Name
SMTP-сервер: smtp.mail.ru
Порт: 25
using (MailMessage mm = new MailMessage("Name
Если у вас почтовый ящик на сервисе mail.ru заканчивается на inbox.ru, list.ru или bk.ru, то соответственно меняется и адрес SMTP-сервера (smtp.inbox.ru, smtp.list.ru и smtp.bk.ru).
Как вы видите, для того, чтобы использовать любой другой почтовый сервис в ваших программах, необходимо только выяснить адрес SMTP-сервера и порт, а также правила авторизации.
Необходимо также помнить, что практически все сторонние почтовые сервисы накладывают лимиты на количество отправленных писем в период времени.
Теги: email, отправка писем, smtp