Sähköpostien lähettäminen liitteineen Delphi & Indyn avulla

click fraud protection

Alla on ohjeet "sähköpostin lähettäjän" luomiseen, joka sisältää vaihtoehdon sähköpostien ja liitteiden lähettämiseen suoraan Delphi-sovelluksesta. Ennen kuin aloitamme, harkitse vaihtoehtoa ...

Oletetaan, että sinulla on sovellus, joka toimii joidenkin tietokantatietojen kanssa muun muassa. Käyttäjien on vietävä tietoja sovelluksestasi ja lähetä tiedot sähköpostitse (kuten virheraportti). Ilman alla kuvattua lähestymistapaa sinun on vietävä tiedot ulkoiseen tiedostoon ja lähetettävä sitten sähköpostiohjelmalla.

Sähköpostin lähettäminen Delphistä

Voit lähettää sähköpostia suoraan Delphistä monella tapaa, mutta yksinkertaisin tapa on käyttää sitä ShellExecute API. Tämä lähettää sähköpostin tietokoneeseen asennetulla oletuksena olevalla sähköpostiohjelmalla. Vaikka tämä lähestymistapa on hyväksyttävä, et voi lähettää liitteitä tällä tavalla.

Toinen tekniikka käyttää sähköpostin lähettämiseen Microsoft Outlookia ja OLE: ta, tällä kertaa kanssa liitteen tuki, mutta MS Outlook on sitten käytettävä.

instagram viewer

Vielä yksi vaihtoehto on käyttää Delphin sisäänrakennettua tukea Windows Simple Mail -sovellusliittymälle. Tämä toimii vain, jos käyttäjälle on asennettu MAPI-yhteensopiva sähköpostiohjelma.

Tässä käymämme tekniikka käyttää indy (Internet Direct) -komponentit - loistava Internet-komponenttipaketti, joka koostuu suosituista Delphin kirjoitetuista Internet-protokollista, joka perustuu tukkeutuviin pistorasioihin.

TIdSMTP (Indy) -menetelmä

Sähköpostiviestien lähettäminen (tai hakeminen) Indy-komponenteilla (jotka toimitetaan Delphi 6+: n kanssa) on yhtä helppoa kuin komponentin tai kahden pudottaminen lomakkeelle, asetusten määrittäminen ja "painikkeen napsauttaminen".

Tarvitsemme kaksi komponenttia, jotta lähetämme liitteenä sähköpostin Delphistä Indyn avulla. Ensinnäkin TIdSMTOP käytetään yhteyden muodostamiseen ja viestintään (sähköpostin lähettämiseen) SMTP-palvelimen kanssa. Toiseksi TIdMessage hoitaa viestien tallennuksen ja koodauksen.

Kun viesti on rakennettu (milloin TIdMessage on "täynnä" tietoja), sähköposti toimitetaan SMTP-palvelimelle käyttämällä TIdSMTP.

Sähköpostin lähettäjän lähdekoodi

Olen luonut yksinkertaisen postituslähetysprojektin, jonka selitän alla. Voit ladata koko lähdekoodin täältä.

Huomautus: Tämä linkki on suora lataus projektin ZIP-tiedostoon. Sinun pitäisi pystyä avaamaan se ilman ongelmia, mutta jos et voi, käytä 7-Zip avataksesi arkiston, jotta voit poimia projektitiedostot (jotka on tallennettu kansioon nimeltä Lähetä postia).

Kuten suunnitteluajan kuvakaappauksesta voidaan nähdä, lähettää sähköpostia käyttämällä TIdSMTP komponentti, sinun on ainakin määritettävä SMTP-postipalvelin (isäntä). Itse viesti tarvitsee säännöllisesti täytetyt sähköpostiosat, kuten alkaen, jotta, aihe, jne.

Tässä on koodi, joka käsittelee yhden sähköpostin lähettämisen liitteenä:

menettely TMailerForm.btnSendMailClick (Lähettäjä: TObject); alkaa StatusMemo. Asia selvä; // Aseta SMTP SMTP.Host: = ledHost. Teksti; SMTP.Port: = 25; // asennusviesti MailMessage. Alkaen. Osoite: = ledFrom. Teksti; MailMessage. Vastaanottajia. Sähköpostiosoitteet: = ledTo. Teksti + ',' + ledCC.Text; MailMessage. Aihe: = ledSubject. Teksti; MailMessage. Elin. Teksti: = Runko. Teksti; jos FileExists (ledAttachment. Teksti) sitten TIdAttachment. Luo (MailMessage. MessageParts, ledAttachment. Teksti); //Lähetä postiayrittääyrittää SMTP.Yhteys (1000); SMTP.Send (MailMessage); paitsipäällä E: Poikkeus. StatusMemo. Linjat. Lisää (0, 'VIRHE:' + E. Viesti); pää; vihdoinjos SMTP.Connected sitten SMTP.Disconnect; pää; pää; (* btnSendMail napsauta *)

Huomautus: Lähdekoodista löydät kaksi ylimääräistä menettelytapaa, joita käytetään isäntä, alkaenja jotta muokkausruudut pysyvät, käyttämällä INI-tiedostoa tallennukseen.

instagram story viewer