Отправка сообщений по электронной почте.
Данная тема будет интересна не только разработчикам игр, но и программистам в целом. Для разработчиков игр или программ часто бывает нужно регистрировать версию программы через интернет или реализовать активацию полной версии программы с помошью пересылки сообщений на электронную почту. В любом случае приступим к рассмотрению данного вопроса.
Сразу замечу, что в сети интернет очень много (полезной в прошлом) информации о том, как отослать письмо на лбой сервер электронной почты. Но с недавнего времени практически все серверы стали использовать шифрование для передачи сообщений. Поэтому теперь нельзя отправлять сообщения анонимно (то есть без логина и пароля вашей электронной почты). А так же обязательно нужно активировать один из протоколов шифрования SSL или TCL. В связи с этим старые примеры работать в наше время не будут вовсе.
При поиске нужной информации для создания программы, которая сможет подключаться к почтовикам и отсылать сообщение, я набрел на англоязычный сайт, собрав информацию с которого и немного его доработав получил удобный для меня вариант. Вот о нем, собственно мы и поговорим далее.
Первое, что нам понадобится – это скачать с интернета библиотеку easendmail. Скачайте ее и установите на свой компьютер. Далее создайте папку для Вашей будущей программы и скопируйте в нее файлы EASendMailObj.dll, EASendMailObjLib_TLB.dcu и EASendMailObjLib_TLB.pas, которые находятся в папке с нашей установленной библиотеке. Если Вы ничего не меняли при установке библиотеки, то путь к файлам будет следующим «C:\Program Files\EASendMail\Samples_Delphi\simple.delphi» или «C:\Program FilesX86\EASendMail\Samples_Delphi\simple.delphi».
После того как файлы скинуты в папку с программой, создаем проект в делфи и вверху в разделе uses подключаем модуль EASendMailObjLib_TLB. Затем бросаем на форму кнопку, кликаем дважды по ней и прописываем код так, чтобы получился примерно следующий код:
procedure TForm1.Button1Click(Sender: TObject);
var
oSmtp : TMail; //экземпляр письма
begin
oSmtp := TMail.Create(Application); //создаем письмо
oSmtp.LicenseCode := 'TryIt'; //указываем лицензию
// указываем свой email адрес, с которого мы будем посылать письма
oSmtp.FromAddr := 'delgame@yandex.ru';
// указываем email адрес, на который мы будем слать письмо
oSmtp.AddRecipientEx( 'Trapenko123@gmail.com', 0);
// указываем тему письма
oSmtp.Subject := 'Код доступа';
// указываем текст сообщения
oSmtp.BodyText := Edit2.Text;
// указываем SMTP сервера (обычно это smt.адрес почтовика)
oSmtp.ServerAddr := 'smtp.yandex.ru';
// указываем порт для SSL
oSmtp.ServerPort := 465;
// указываем использование SSL шифрования и подключаем его
oSmtp.SSL_starttls := 0;
oSmtp.SSL_init();
//указываем свой адрес почты, с которой будем слать сообщение
oSmtp.UserName := 'delgame@yandex.ru';
//указываем пароль от нашей почты
oSmtp.Password := '1111';
//показываем сообщение о том, отослано сообщение или нет.
if oSmtp.SendMail() = 0 then
ShowMessage( 'Сообщение отослано!' )
else
ShowMessage( 'Ошибка передачи сообщения: '
+ oSmtp.GetLastErrDescription());
end;
Обращаю Ваше внимание на то, что oSmtp.FromAddr и oSmtp.UserName должны полностью совпадать и быть правильными иначе сообщение не будет отослано и это приведет к возникновению разного рода ошибок. На этом у меня все. Надеюсь данная информация найдет своего читателя и поможет Вам в достижении Ваших целей при создании почтового агента, поможет посылать письма на любой электронный ящик, возможно Вы захотите создать почтового бота или СПАМ бота. В любом случае удачи всем во всех Ваших нанчинаниях!
Автор: Соколов Виталий
Источник: delgame.at.ua
|