Posílání e-mailů a SMS - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Delphi

Posílání e-mailů a SMS

23. května 2001, 00.00 | Chcete zasílat emaily či SMS zprávy ze své aplikace napsané v Delphi? Jak na to vám ukáže tento článek!

Úvod

  Jedním nejduležitějších komunikačních prostředků na internetu je bezesporu e-mail. Téměř většina internetových uživatelů má svoji internetovou schránku, kterou denně vybírá, jako by to byla schránka "papírové" pošty. Můžete přijímat různé dopisy, blahopřání k svátku, pohlednice ale i soubory a co víc, dostanete je téměř ihned a nepoškozené:-).

Elektronická pošta

   K odesílání elektronické pošty z Delphi aplikací slouží komponenta NMSMTP nmsmtp.GIF (203 bytes) ze záložky Fast Net (Delphi 5 E). Na prázdný formulář si umístíme komponentu PageControl a vytvoříme tři stránky, Obecné (informace o uživateli a účtu), e-mail (posílání elektronické pošty)  a SMS (posílání krátkých textových zpráv na mobilní telefon).Už z názvu je jasné, že komponenta používá k odesílání pošty služeb SMTP serveru. Pro posílání mailů musíte mít zřízený e-mailový účet. Zde máte uvedenu obsluhu události OnClick tlačítka SendBtn:

procedure TMainForm.SendBtnClick(Sender: TObject);
begin
    //nyní nastavíme vlastnosti v NMSMTP1
  NMSMTP1.Host:=HostEdit.Text;
  NMSMTP1.Port:=StrToInt(PortEdit.Text);
  NMSMTP1.UserId:=IdEdit.Text;
  NMSMTP1.Connect; // stačí jednou i když posíláte víc mailů
  NMSMTP1.PostMessage.FromAddress:=ElEdit.Text;
  NMSMTP1.PostMessage.FromName:=NameEdit.Text;
  NMSMTP1.PostMessage.Subject:=SubEdit.Text;
  NMSMTP1.PostMessage.ToAddress.Add(ToEdit.Text);
  NMSMTP1.PostMessage.Attachments.AddStrings(Listbox1.Items);
  NMSMTP1.PostMessage.Body.Assign(Memo1.Lines);
  NMSMTP1.SendMail;
  NMSMTP1.Disconnect;
end;

    K odesílání elektronické pošty není potřeba heslo účtu. Abyste mohli komponentu NMSMTP připojit, potřebujete nastavit vlastnosti: Host (např smtp.seznam.cz), Port (téměř vždy 25) a UserId ( např. kubal.p). Pak komponentu NMSMTP připojíte k zadanému serveru a nastavíte další vlastnosti, např. text zprávy, předmět, cílová adresa atd.

    K dokonalému posílání elektronické pošty nám už chybí jen přílohy (Attachments). K tomuto účelu si přidáme na formulář komponentu ListBox, OpenDialog a dva Buttony na přidávání a ubírání souborů. Takto bude vypadat přidávání souborů:

procedure TMainForm.AddBtnClick(Sender: TObject);
begin
  If OpenDialog1.Execute then
    ListBox1.Items.Add(OpenDialog1.FileName);
end;

    A takhle bude vypadat odebírání souborů:

procedure TMainForm.RemoveBtnClick(Sender: TObject);
begin
  ListBox1.Items.Delete(ListBox1.ItemIndex);
end;

SMS   

    Ke komunikaci na internetu se používá nejen elektronická pošta nebo chat, ale i SMS zprávy. Lidé si je většinou posílají z mobilu na mobil, ale lze je posílat a přijímat také jako e-maily z internetu na mobil či naopak.  SMSky se posílají podobně jako e-maily, ale maji omezenou velikost(160 znaků) a posílají se na e-mail operátora, který je pak doručí na cílový mobilní telefon. K posílání SMS nám bude sloužit třetí strana PageControlu. Dnes Vám ukáži, jak se posílají SMS na síť Eurotel a Paegas (u ostatních je to podobné).

    Tyto druhy e-mailů se posílají na mobil ve formě spam_email('.cz', '@', 'sms.eurotel', '00420predvolbaxxxyyy'); pro Eurotel a pro Paegas.

    Rozlišíme si dva druhy procedur: SendEurotel a SendPaegas. Po stisku tlačítka odeslat se zavola jedna nebo druhá procedura, podle předvolby.

Eurotel má tyto předvolby: 0601, 0602, 0606, 0607, 0723, 0724

Paegas má zase tyto : 0603, 0604, 0605, 073

    Nebudu zde popisovat procedury SendEurotel a SendPaegas, protože jsou obdobné jako obyčejné posílání e-mailů. Za zmínku ale stojí způsob, kterým se rozdělí zpracování události OnClick tlačítka SndSMSBtn.  

procedure TMainForm.SndSMSBtnClick(Sender: TObject);
begin
if ((SpinEdit1.Value=0603) or (SpinEdit1.Value=0604) or
  (SpinEdit1.Value=0605) or (SpinEdit1.Value=073)) then
  begin
    SendPaegas;
  end;
if ((SpinEdit1.Value=0601) or (SpinEdit1.Value=0602) or (SpinEdit1.Value=0606)
  or (SpinEdit1.Value=0607) or (SpinEdit1.Value=0723) or (SpinEdit1.Value=0724)) then
  begin
    SendEurotel;
  end;
end;

    V ukázkové aplikaci jsem nijak neomezoval kapacitu komponenty Memo pro zprávy, ale mějte na paměti, že SMS zprávy mohou být dlouhé maximálně 160 a to včetně elektronické adresy!

Závěr

    Je vidět, že posílání elektronické pošty a SMS z Delphi aplikací není složité. U tohoto příkladu bych raději ukládal uživatelské informace do .ini nebo do .dat souboru ke zrychlení posílání. Představte si, že byste museli pokaždé, když chcete něco posílat, nastavovat všechny ty informace. Doufám, že s roustoucím významem elektronické pošty a SMS zpráv, se Vám   budou informace obsažené v tomto článku hodit.

Stáhnout ukázku(Delphi5)

Tématické zařazení:

 » Rubriky  » Delphi  

 » Rubriky  » Windows  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: