Отправка email средствами Delphi. Часть 2

5 минут на чтение

Итак мы многое уже знаем, как отправлять email-сообщения средствами Delphi, через smtp-сервер. Как мы знаем для этого нам нужен компонент TidSMTP ну и конечно же как же без него — это TidAntiFreeze. Также мы уже в курсе как отправлять смс-сообщения, используя смс-шлюз (это не сложнее отправлять тоже самое email-сообщение). Давайте вспомним, что для отправки сообщения нам объект типа данных — TidMessage. Для этого, необходимо, прежде чем использовать объект данного типа данных, необходимо подключить модуль idMessage в раздел Uses. Теперь поговорим о прикреплениях к письму. В Delphi предусмотрен объет типа данных для работы с вложениями к письму — TidAttachment и чтобы работать с объектом данного типа необходимо в Uses подключить idMessage (что мы уже и сделали). Работать с ним также легко, давайте попробуем.

Для начала необходимо подключиться к нашему smtp-серверу, на событие формы — OnCreate пишем следующее

procedure TForm1.FormCreate(Sender: TObject);
begin
try
IdSMTP1.AuthenticationType:=atLogin;
IdSMTP1.Host:='smtp.rambler.ru';
IdSMTP1.Port:=25;
IdSMTP1.Username:='xxxxxxxxx@rambler.ru';
IdSMTP1.Password:='password';
IdSMTP1.Connect;
except
on e:Exception do
end;
end;

Теперь давайте заполним наше сообщение, это все в курсе, мы уже проходили это, я объяснял, что все значит, следовательно вопросов тут возникнуть не должно.

procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;
begin
try
msg:=TIdMessage.Create(nil);
msg.Body.Add('email text');
msg.Subject:='header email';
msg.From.Address:='xxxxxx@rambler.ru';
msg.From.Name:='Andrey';
msg.Recipients.EMailAddresses:='xxxxxx@mail.ru';
msg.IsEncoded:=True;
if IdSMTP1.Connected=True then
begin
IdSMTP1.Send(msg);
end;
msg.Free;
except
on e:Exception do
begin
msg.Free;
IdSMTP1.Disconnect;
end;
end;

Теперь создадим наши вложения, как видите ничего сложно, просто есть метод отличный в TidMessage (а точнее просто создаем переменную нашего типа — TidAttachment), который помогает прикрепить к нашему письму вложения, и указываем в нем наше сообщение, к которому мы прикрепляем файл и сам файл.

procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;
att:TIdAttachment;
begin
try
msg:=TIdMessage.Create(nil);
msg.Body.Add('email text');
msg.Subject:='header email';
msg.From.Address:='ххххххх@rambler.ru';//от кого отправляем
msg.From.Name:='Andrey';
msg.Recipients.EMailAddresses:='ххххххх@mail.ru';//кому отправляем
att:=TIdAttachment.Create(msg.MessageParts,'C:\1.txt');
msg.IsEncoded:=True;
if IdSMTP1.Connected=True then
begin
IdSMTP1.Send(msg);
end;
att.Free;
msg.Free;
except
on e:Exception do
begin
msg.Free;
att.Free;
IdSMTP1.Disconnect;
end;
end;
end;

Теперь можете спокойно отправлять ваши сообщения в html-формате, делается это примерно так.

procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;
att:TIdAttachment;
F:TextFile;
begin
try
AssignFile(F,'test.htm');
Rewrite(F);
msg:=TIdMessage.Create(nil);
msg.Body.Add('email text');
Write(F,msg.body.text);
msg.Subject:='header email';
msg.From.Address:='хххххххх@rambler.ru';
msg.From.Name:='Andrey';
msg.Recipients.EMailAddresses:='ххххххх@mail.ru';
att:=TIdAttachment.Create(msg.MessageParts,'test.htm');
msg.IsEncoded:=True;
if IdSMTP1.Connected=True then
begin
IdSMTP1.Send(msg);
end;
att.Free;
msg.Free;
CloseFile(F);
except
on e:Exception do
begin
msg.Free;
att.Free;
IdSMTP1.Disconnect;
end;
end;
end;
Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Ну вот наконец-то, мы добрались и до отправке sms-сообщений через sms-шлюз средствами Delphi. Теоретическую часть sms-шлюза мы знаем, а также знаем как отправлять email-сообщения средствами Delphi. Это нам все и пригодится в данной статье. Давайте вспомним, чт...
Плавно подходим мы к отправке sms-сообщений через sms-шлюз операторов сотовой связи. В данной статье мы рассмотрим как вообще можно отправить сообщение (email-сообщение) средствами Delphi. Отсылать email-сообщения мы будем через TidSMTP. То есть получается, чт...
В этой статье я хотел бы поговорить про sms-шлюз, а точнее как средставми Delphi отправить sms-сообщение через sms-шлюз вашего телефонного оператора. Скажу сразу, что к отправке сообщений, через sms-шлюз средствами Delphi мы будем подходить постепенно, то есть...