Nauja

Siųsti el. Pašto pranešimus (ir priedus) naudojant „Delphi & Indy“

Siųsti el. Pašto pranešimus (ir priedus) naudojant „Delphi & Indy“


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Žemiau pateikiamos instrukcijos, kaip sukurti „el. Pašto siuntėją“, kuriame yra galimybė siųsti el. Laiškus ir priedus tiesiogiai iš „Delphi“ programos. Prieš pradėdami, apsvarstykite alternatyvą ...

Tarkime, kad turite programą, veikiančią su kai kuriais duomenų bazės duomenimis, be kitų užduočių. Naudotojai turi eksportuoti duomenis iš jūsų programos ir siųskite duomenis el. paštu (pvz., apie klaidų ataskaitą). Nesinaudodami toliau pateiktu metodu, turite eksportuoti duomenis į išorinį failą, o tada siųsti el. Pašto klientui.

Siųsti el. Laišką iš „Delphi“

Yra daugybė būdų, kaip galite siųsti el. Laišką tiesiogiai iš „Delphi“, tačiau paprasčiausias būdas yra naudoti „ShellExecute“ API. El. Laiškas bus išsiųstas naudojant numatytąją kompiuteryje įdiegtą el. Pašto programą. Nors šis požiūris yra priimtinas, jūs negalite tokiu būdu siųsti priedų.

Šiuo metu el. Laiškams siųsti naudojama kita technika - „Microsoft Outlook“ ir OLE su priedų palaikymą, tačiau tada reikia naudoti „MS Outlook“.

Dar viena galimybė yra naudoti įmontuotą „Delphi“ palaikymą „Windows Simple Mail“ API. Tai veikia tik tuo atveju, jei vartotojas turi įdiegtą su MAPI suderinamą el. Pašto programą.

Čia aptartai technikai naudojami „Indy“ („Internet Direct“) komponentai - puikus interneto komponentų rinkinys, sudarytas iš populiarių interneto protokolų, parašytų Delfyje ir pagrįstų lizdais.

TIdSMTP (Indy) metodas

El. Pašto pranešimų siuntimas (arba gavimas) naudojant „Indy“ komponentus (kurie pristatomi su „Delphi 6+“) yra toks pat lengvas, kaip numesti komponentą ar du į formą, nustatyti kai kurias ypatybes ir „paspausti mygtuką“.

Norėdami išsiųsti el. Laišką su priedais iš „Delphi“ naudodami „Indy“, mums reikės dviejų komponentų. Pirma, TIdSMTOP naudojamas prisijungti ir susisiekti (siųsti laiškus) su SMTP serveriu. Antra, „TIdMessage“ tvarko žinučių saugojimą ir kodavimą.

Kai pranešimas sukonstruotas (kada „TIdMessage“yra "užpildytas" duomenimis), el. laiškas į SMTP serverį pristatomas naudojant TIdSMTP.

El. Pašto siuntėjo šaltinio kodas

Aš sukūriau paprastą pašto siuntėjo projektą, kurį paaiškinu žemiau. Visą šaltinio kodą galite atsisiųsti čia.

Pastaba: Ši nuoroda yra tiesioginis atsisiuntimas į projekto ZIP failą. Turėtumėte galėti atidaryti jį be jokių problemų, tačiau jei negalite, atidarykite archyvą naudodami „7-Zip“, kad galėtumėte išgauti projekto failus (kurie yra saugomi aplanke, vadinamame Išsiųsti laišką).

Kaip matote iš projektavimo laiko ekrano kopijos, nusiųskite el. Laišką naudodami TIdSMTP komponentą, jūs bent jau turite nurodyti SMTP pašto serverį (pagrindinį kompiuterį). Pačiam pranešimui reikia užpildyti įprastas el. Pašto dalis, pvz., , Kam, Temair kt.

Štai kodas, kurį naudojant galima siųsti vieną el. Laišką su priedu:

procedūra TMailerForm.btnSendMailClick (Siuntėjas: TObject); prasideda „StatusMemo.Clear“;// sąrankos SMTP SMTP.Host: = ledHost.Text; SMTP.portas: = 25;// sąrankos pašto pranešimas „MailMessage.From.Address“: = ledFrom.Text; „MailMessage.Recipients.EMailAddresses“: = ledTo.Text + ',' + ledCC.Text; „MailMessage.Subject“: = ledSubject.Text; „MailMessage.Body.Text“: = „Body.Text“;jei „FileExists“ (ledAttachment.Text) tada „TIdAttachment.Create“ („MailMessage.MessageParts“, „ledAttachment.Text“);//Išsiųsti laišką   bandyti     bandyti „SMTP.Connect“ (1000); SMTP.Send („MailMessage“);išskyrus apie E: Išimtis „StatusMemo.Lines.Insert“ (0, 'KLAIDA:' + E. Pranešimas);pabaiga;   pagaliau     jei SMTP.prijungtas tada SMTP.Atjungti;pabaiga; pabaiga; (* „btnSendMail“ paspaudimas *)

Pastaba: Šaltinio kode rasite dvi papildomas procedūras, kurios naudojamos nustatant Priimančioji, ir Kam nuolatiniai taisymo langeliai, naudojant INI failą saugojimui.


Žiūrėti video įrašą: Naujienos iš TPT tribunolo. 2016 10 06 (Birželis 2022).


Komentarai:

  1. Lycaon

    Sutinku, tai juokinga informacija.

  2. Babar

    Atsiprašau, bet, mano nuomone, tu neteisi. Esu užtikrintas. Rašyk man į PM, susisieksime.

  3. Mami

    Jūsų klausimas kaip žiūrėti?

  4. Jysen

    Tu ne teisus. Aptarkime tai.

  5. Jutaxe

    Aš patvirtinu. I agree with all of the above-said. Let us try to discuss the matter.



Parašykite pranešimą