Здравствуйте, сегодня мы будем разбирать программу отправки emailсообщений с помощью средств Delphi. Данная программа послужит нам материалом для будущего урока по программной отправке SMSсообщений абонентам основных Российских операторов сотовой связи.
Итак, приступим!
Для начала разместим на форме 5 компонентов:
1. 2 кнопки(Connect и Send)
2. Tmemo(текст сообщения)
3. IdSMTP(компонент отправки)
4. IdAntiFreeze(объясню позже)
Email будет отправляться через компонент IdSMTP, следовательно, нам нужно знать smtp-адрес сервера, через который мы будем отправлять сообщение. Обычно, достаточно просто добавить «smtp» перед адресом почтового сервиса. Пример: smtp.gmail.ru
Порт этих серверов почти всегда равен 25.
Далее нам понадобится почтовый ящик сервиса, через который будет отправлено наше сообщение, для примера я использовал рамблер.
Перейдем непосредственно к коду.
Кнопка connect:
procedureTForm1.Button2Click(Sender: TObject);
begin
try
IdSMTP1.AuthType:=satdefault;
IdSMTP1.Host:='smtp.rambler.ru'; //smptадресс
IdSMTP1.Port:=25;//порт
IdSMTP1.Username:='vasya@rambler.ru';//ваш почтовый ящик
IdSMTP1.Password:='123password';//пароль от почты
IdSMTP1.Connect;//соединение с сервером
except
one:Exception do
end;
end;
К серверу мы подключились, теперь можно отправлять сообщение.
Код кнопки Send:
procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;//переменная для содержания и отправки сообщения
begin
try
msg:=TIdMessage.Create(nil);//создание не визуального компонента TIdmessage
msg.Body.assign(memo1.lines);//Содержание письма из компонента memo
msg.Subject:='nazvanie';//заголовок письма
msg.From.Address:='vasya@rambler.ru';//ваша почта
msg.From.Name:='name';//Имя отправителя
msg.Recipients.EMailAddresses:='lider@gmail.com';//почта на которую отправляем письмо
msg.CharSet:='koi8-r';//кодировка из Unicode, если хотите отправлять сообщения на русском
IdSMTP1.Send(msg);//отправка
msg.Free;//освобождение переменной от данных
IdSMTP1.Disconnect;
except
on e:Exception do
begin
msg.Free;
IdSMTP1.Disconnect;
end;
end;
end;
*Компонент IdAntiFreezeиспользуется для предотвращения «подвисаний» программы во время работы с сетью. Для его активации, достаточно просто размещения на форме.
Готово! Можете проверять свой почтовый ящик, на наличие там письма! Успехов!