Odesílání mailů přes SMTP v Indy

vložil [Z] 10. ledna 2011 21:39

V jednom minulém článku popsal Radek jak odeslat e-mail za pomocí Synapse.

Já dávám přednost Indy a proto zde připojuji jednoduchý návod jak Indy využít ke stejnému účelu.

Komponenty pro internetovou komunikaci Indy (zkratka Internet direct) jsou výchozí součástí Delphi už docela dlouho. Tento kód bude s minimálními úpravami funkční ve všech verzích Indy 10, o Indy 9 si nejsem úplně jistý.

Pro jistotu doporučuji používat nejnovější verzi Indy 10 (na stránkách indy.fulgan.com/ZIP/ si stáhněte balík Indy10_xxxx.zip, a případně návod instalace Indy a pozor! Je nutné odstranit všechny staré soubory v adresáři nainstalovaných Delphi.

Indy podporují také SSL. Ve starších verzí bylo zapotřebí používat upravené knihovny OpenSSL. V Indy 10 lze používat standardní sestavení (dostupné na http://indy.fulgan.com/SSL/).

Tyto knihovny je pak nutné nahrát nejlépe do složky s programem a přidat požadované náležitosti do kódu.

Zde je výsledný kód, který umožní přes SMTP odeslat HTML e-mail s alternativní částí s prostým textem.

    1uses
    2  // SMTP
    3  IdSMTP, IdMessage, IdMessageBuilder,
    4
    5  // pro SSL
    6  IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
    7  IdSSL, IdSSLOpenSSL, IdExplicitTLSClientServerBase;
    8
    9…….
   10
   11var
   12  smtp: TIdSMTP;
   13  mess: TIdMessage;
   14begin
   15  smtp:=TIdSMTP.Create(nil);
   16  mess:=TIdMessage.Create(nil);
   17  try
   18    // vycistit
   19    mess.Clear;
   20
   21    // FROM
   22    mess.From.Address := 'odesilatel@ja.cz';
   23    mess.From.Name := 'ode me';
   24
   25    // TO
   26    with mess.Recipients.Add do begin
   27      Address := 'prijemce@on.cz';
   28      Name := 'prijemce';
   29    end;
   30
   31    // ReplyTo
   32    with mess.ReplyTo.Add do begin
   33      Address := 'poslat@jinam.cz';
   34      Name := '…';
   35    end;
   36
   37    // Subject
   38    mess.Subject := 'nazev';
   39
   40    // pokud chceme poslat jen text
   41    //mess.Body.Text := 'text';
   42
   43    // vytvoreni HTML zpravy, lze vyuzit i jiny TIdMessageBuilder 
   44    with TIdMessageBuilderHtml.Create do
   45      try
   46        // text
   47        PlainTextCharSet:='utf-8';
   48        PlainText.Text:='normalni text +ěščřžýáíé';
   49
   50        // html
   51        HtmlCharSet:='utf-8';
   52        Html.Text:='<html><body><b>HTML text +ěščřžýáíé</b></body></html>';
   53
   54        //priloha
   55        //Attachments.Add('c:\neco.dat');
   56
   57        // predani
   58        FillMessage(mess);
   59      finally
   60        Free;
   61      end;
   62
   63    mess.Encoding:=meMIME;
   64
   65    smtp.MailAgent := 'agent';
   66
   67    smtp.Host := 'smtp.server.cz';
   68    smtp.Port := 25;
   69    smtp.Username := '';
   70    smtp.Password := '';
   71
   72    // SSL - je potreba nastavit IOHandler na TIdSSLIOHandlerSocketOpenSSL
   73    //smtp.AuthType:=satDefault;
   74    //smtp.UseTLS:=utNoTLSSupport;
   75
   76    // připojeni
   77    smtp.Connect;
   78    // odeslani
   79    smtp.Send(mess);
   80    //odpojeni
   81    smtp.Disconnect;
   82  finally
   83    mess.Free;
   84    smtp.Free;
   85  end;
   86end;


Nabízíme Delphi školení a konzultace na různá témata, primárně ve Vaší firmě.

Tagy: , , ,

Praxe

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS