Smtpclient - class ()

Pentru a crea și a trimite un mesaj de poștă electronică utilizând SmtpClient, trebuie să furnizați următoarele informații:

SMTP server-host folosit pentru trimiterea mesajelor e-mail. Vedeți proprietățile Host și Port.







Certificatele de autentificare, dacă sunt cerute de serverul SMTP. Vedeți descrierea proprietății de acreditare.

Conținutul mesajului. Vedeți descrierea metodelor Trimitere și SendAsync. acceptând parametrul corporal. Vedeți și descrierea proprietății MailMessage. Corp.

Pentru a include un atașament într-un mesaj de poștă electronică, trebuie mai întâi să creați un atașament utilizând clasa atașament. apoi adăugați-o la mesaj utilizând proprietatea MailMessage. Atașamente. În funcție de destinatarii de e-mail utilizați de destinatari și de tipul de fișier al atașamentului, este posibil ca anumiți destinatari să nu poată citi atașamentul. Pentru clienții care nu afișează atașamentul în forma lor originală, puteți specifica vederi alternative folosind proprietatea MailMessage. AlternateViews.

Folosind fișierele de configurare ale aplicației sau ale computerului, puteți specifica gazdă, port și acreditări care sunt utilizate în mod implicit pentru toate obiectele SmtpClient. Pentru mai multe informații, consultați Elementul (setări de rețea).

Pentru a trimite un mesaj de poștă electronică și a bloca munca în timp ce așteptați ca un mesaj să fie trimis către serverul SMTP, puteți utiliza una dintre metodele de trimitere sincronă. Pentru a permite ca firul principal al programului să continue să fie difuzat în timpul transferului de mesaje, utilizați una dintre metodele asinchinale SendAsync. Evenimentul SendCompleted apare atunci când operația SendAsync se termină. Pentru a primi acest eveniment, trebuie să adăugați delegatul SendCompletedEventHandler la SendCompleted. Delegatul SendCompletedEventHandler trebuie să acceseze metoda de retur apel care gestionează notificarea evenimentului SendCompleted. Pentru a dezactiva transmisia prin e-mail asincronă, utilizați metoda SendAsyncCancel.







Dacă apelați SendAsync sau Trimiteți din nou când e-mailul este trimis, va apărea o InvalidOperationException.

Conexiunea la serverul SMTP instalat de instanța curentă a clasei SmtpClient. poate fi refolosit dacă aplicația trebuie să trimită mai multe mesaje către același server SMTP. Acest lucru este util în special atunci când autentificarea sau criptarea care se utilizează stabilește o conexiune la serverul SMTP. Procesul de autentificare și instalare a unei sesiuni TLS poate fi o operație costisitoare. Cerința de a restabili o conexiune pentru fiecare mesaj când trimiteți un număr mare de mesaje de poștă electronică către un server SMTP poate afecta în mod semnificativ performanța. Există multe aplicații de e-mail puternice care trimit actualizări de e-mail, buletine de știri sau notificări. De asemenea, multe aplicații - clienții de e-mail acceptă modul offline, unde utilizatorii pot genera mesaje de poștă electronică trimise mai târziu, după stabilirea unei conexiuni la serverul SMTP. Un comportament tipic al unui client de e-mail este de a trimite toate mesajele SMTP către un anumit server SMTP (furnizat de ISP) și apoi să redirecționeze acest e-mail către alte servere SMTP.

Implementarea clasei SmtpClient implementează punerea în comun a conexiunilor SMTP pentru a evita costul reinstalării conexiunii pentru fiecare mesaj trimis pe același server. Aplicația poate reutiliza același obiect SmtpClient pentru a trimite mai multe mesaje e-mail diferite pe un server SMTP și pe multe servere SMTP diferite. Ca urmare, nu este posibil să se determine când o aplicație se oprește folosind obiectul SmtpClient și ar trebui să fie eliminată.

Când sesiunea SMTP se termină și clientul trebuie să încheie conexiunea, trebuie să trimită serverului mesajul QUIT pentru a indica faptul că nu mai are mesaje de trimis. Acest lucru permite serverului să elibereze resursele asociate conexiunii de la client și să proceseze mesajele trimise de client.

Clasa SmtpClient nu are metoda Finalize. astfel încât aplicația trebuie să apeleze metoda Dispose supraîncărcată pentru a elibera resursele în mod explicit. Metoda Dispose trasează toate conexiunile stabilite la serverul SMTP specificat în proprietatea gazdă. și trimite un mesaj QUIT, urmat de o terminare documentată a conexiunii TCP. De asemenea, metoda Dispose eliberează resursele neadministrate utilizate de Socket. și (opțional) eliberează resursele gestionate.

Metoda Dispose este apelată când terminați lucrul cu clasa SmtpClient. Metoda Dispose părăsește obiectul SmtpClient într-o stare inutilizabilă. După ce apelați metoda Dispose, ștergeți toate referințele la SmtpClient. astfel încât colectorul de gunoi să poată recupera memoria ocupată de metoda SmtpClient.







Articole similare

Trimiteți-le prietenilor: