Creați și trimiteți mesaje de poștă electronică utilizând SmtpClient. trebuie să furnizați următoarele informații:
SMTP server-host folosit pentru trimiterea mesajelor e-mail. În secțiunea Gazdă și Porturi.
Acreditări pentru autentificare, dacă este necesar pentru un server SMTP. Vedeți proprietatea Credentiale.
Conținutul mesajului. În secțiunea Send și SendAsync a metodelor care acceptă parametrul corporal. Vedeți și proprietatea MailMessage.Body.
Pentru a activa atașamentele prin e-mail, creați mai întâi un atașament utilizând clasa Attachment și adăugați-l la mesaj utilizând proprietatea MailMessage.Attachments. În funcție de citirea mesajelor e-mail, destinatarii utilizați și tipul de fișier al atașamentului, este posibil ca unii destinatari să nu poată citi atașamentul. Pentru clienții care nu pot afișa atașamentul în forma sa originală, puteți specifica vizualizări alternative utilizând proprietatea MailMessage.AlternateViews.
Puteți utiliza fișierele de configurare ale aplicației sau ale computerului pentru a specifica nodul, portul și acreditările implicite pentru toate obiectele SmtpClient. Pentru mai multe informații, consultați Elementul
Pentru a trimite un mesaj e-mail și un bloc în timp ce așteptați un mesaj de poștă electronică trimis de serverul SMTP, utilizați una dintre metodele de trimitere sincronă. Pentru a permite ca programul principal de fire să continue să funcționeze în timp ce trimiteți un mesaj de poștă electronică, utilizați una dintre metodele asincrone SendAsync. Trimitere eveniment SendCompleted la terminarea operațiunii SendAsync. Pentru a primi acest eveniment, trebuie să adăugați SendCompletedEventHandler Delegate SendCompleted. SendCompletedEventHandler Delegatul trebuie să facă trimitere la metoda de retur care gestionează notificarea evenimentului SendCompleted. Pentru a anula transmiterea mesajelor e-mail asincron, utilizați metoda SendAsyncCancel.
Dacă trimiteți mesaje e-mail și trebuie să apelați metoda SendAsync sau Send, veți primi o InvalidOperationException.
Conexiunea la actuala instanță SmtpClient a clasei pentru serverul SMTP poate fi reutilizată dacă aplicația trebuie să trimită mai multe mesaje către același server SMTP. Acest lucru este util în special atunci când se utilizează autentificarea sau se criptează o conexiune de la un server 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 atunci când trimiteți cantități mari de e-mail către un server SMTP poate avea un impact semnificativ asupra performanței. Există o serie de aplicații de e-mail puternice, care trimit actualizări de stare de e-mail, buletine de știri sau notificări. De asemenea, majoritatea aplicațiilor de e-mail client acceptă modul offline în care utilizatorii pot genera mesaje de poștă electronică trimise mai târziu atunci când stabilesc o conexiune la serverul SMTP. Este tipic ca un client de e-mail să trimită toate mesajele SMTP pentru un anumit server SMTP (furnizat de ISP), care apoi transmite acest mesaj de poștă electronică către alte servere SMTP.
SmtpClient Implementarea clasei bazei de conexiuni SMTP, astfel încât să puteți evita reconectarea fiecărui mesaj la același server. Aplicația poate reutiliza același obiect SmtpClient pentru a trimite o varietate de mesaje de e-mail diferite unui server SMTP și mai multe servere SMTP diferite. Ca rezultat, nu există nici o modalitate de a determina dacă aplicația este terminată folosind obiectul SmtpClient și va fi șters.
La sfârșitul sesiunii SMTP și clientul trebuie să încheie conexiunea, trebuie să trimită un mesaj QUIT la server pentru a indica faptul că nu mai există mesaje de trimis. Acest lucru va permite serverului să elibereze resursele asociate cu conectarea clientului și să proceseze mesajele trimise de client.
SmtpClient Nu conține metoda Finalize, astfel încât aplicația ar trebui să determine Dispose pentru a elibera resurse în mod explicit. Eliminarea Metoda de enumerare a tuturor conexiunilor stabilite la serverul SMTP specificat în proprietatea gazdă și trimiterea mesajului QUIT urmează terminarea corectă a conexiunii TCP. Aruncați Metoda de asemenea eliberează resursele neadministrate utilizate de soclu și, dacă este necesar, eliberează și resursele gestionate.
Apelați metoda Dispose după utilizarea clasei SmtpClient. Metoda Dispose părăsește clasa SmtpClient într-o stare inutilizabilă. După ce apelează metoda Dispose. este necesar să se elibereze toate link-urile către colectorul de gunoi SmtpClient ar putea restaura memoria, SmtpClient ocupat.