Jul 26

Отправляем и-майл на Дельфи

Попробуем рассмотреть интересный пример, как можно почтовое сообщение отправить на Дельфи...

Для начала положим на форму два компоненты: IdSMTP и IdMessage

Далее создадим процедуру отправки самих сообщений

procedure mailsend;

var

attach: TidAttachment;

msg: tidmessage;

i: integer;

begin

f.idSMTP1.AuthenticationType:= atLogin;

f.idSMTP1.Username:='login'; // ваш логин

f.idSMTP1.Password:='pass'; // здесь пароль

f.idSMTP1.Host:='smtp.mail.ru'; // здесь хост mail.ru

f.IdSMTP1.Port:=2525; // тут порт mail.ru

msg:=TIdMessage.Create(nil);

msg.Body.Add('Body'); // тут сообщение письма

msg.Subject:='mail'; // здесь заголовок письма (Тема)

msg.From.Address:='xxx@xx.xx'; // вписываем отправителя письма

msg.From.Name:='message'; // указываем имя отправителя

msg.Recipients.EMailAddresses:='xxx@xx.xx'; // пишем кому именно надо отправить письмо

msg.IsEncoded:=true;

attach:=TIdAttachment.Create(msg.MessageParts,'attach.exe'); // можно комментировать данную строчку в том случае, если вы хотите отправить само письмо с вложением, где attach.exe, тот файл, который и должен в той же директории лежать что и наша программка

f.idSMTP1.Connect();

if f.idSMTP1.Connected then

begin

f.idSMTP1.Send(msg);

end

else

f.IdSMTP1.Disconnect;

end;

Уже сейчас вызвать можно процедуру mailsend

procedure Tf.Button1Click(Sender: TObject);

begin

mailsend;

f.IdSMTP1.Disconnect;

end;

В случае желания отправить сообщение свое через какое то время, только поместите

mailsend;

f.IdSMTP1.Disconnect;

в Timer1, тем самым задав последнему необходимый временной интервал.

А как же вручную ввести данные для отправки майла. Оказывается тоже не слишком сложно J Ложим на нашу форму компоненты IdSMTP и IdMessage

procedure Tf.FormCreate(Sender: TObject);

begin

Edit1.Text := 'login'; // указываем собственный логин

Edit2.Text := 'pass'; // указываем правильный пароль

Edit3.Text := 'smtp.mail.ru'; // указываем хост mail.ru

Edit4.Text := '2525'; // прописываем порт

Edit5.Text := 'mail'; // указываем заголовок письма (Тема)

Edit6.Text := 'ваше имя'; // пишем имя отправителя

Edit7.Text := 'xxx@xx.xx'; // пишем кому именно необходимо отправить наше письмо

Edit8.Text := 'xxx@xx.xx'; // указываем от кого отправляем письмецо

Memo1.Text := 'привет'; // прописываем сообщение письма

end;

И в самом конце, отправляем майл легким нажатием Button1

procedure Tf.Button1Click(Sender: TObject);

var

msg:tidmessage;

i:integer;

begin

f.idSMTP1.AuthenticationType := atLogin;

f.idSMTP1.Username := Edit1.Text;

f.idSMTP1.Password := Edit2.Text;

f.idSMTP1.Host := Edit3.Text;

f.IdSMTP1.Port := StrToInt(Edit4.Text);

msg:=TIdMessage.Create(nil);

msg.Body.Add(Memo1.Text);

msg.Subject := Edit5.Text;

msg.From.Address := Edit8.Text;

msg.From.Name := Edit6.Text;

msg.Recipients.EMailAddresses := Edit7.Text;

msg.IsEncoded := true;

f.idSMTP1.Connect();

if f.idSMTP1.Connected then

begin

f.idSMTP1.Send(msg);

end

else

f.IdSMTP1.Disconnect;

ShowMessage('Сообщение отправлено!');

end;

Все…

Спонсор поста: сервис websozdanie.ru - это не только грамотная поддержка и сопровождение web сайтов за разумные деньги, но и полное комплексное обслуживание сайта, которое в себя включает как техническую, так и информационную поддержку сайта.


Поделитесь вашими мыслями

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>