Serviciul SMTP din IIS. Cum poate site-ul meu Web să trimită mesaje de e-mail automate

Să fie clar un lucru: serviciul SMTP din IIS nu este tocmai un server SMTP. Că mulți fac această confuzie. Este doar un serviciu de relaying pe care serverul de Web IIS îl pune la dispoziția aplicațiilor Web ce rulează pe acel IIS.

Cum se activează: La instalarea IIS 6.0, bifați căsuța corespunzătoare pentru SMTP, pe undeva sub nodul Internet Information Services, dacă nu mă înșel. La IIS 7.0 nu cred că trebuie făcut nimic – trebuie doar configurat după instalarea IIS.
Notă: Nu confundați SMTP cu SNMP, cum fac eu mereu, că al doilea e Simple Network Management Protocol cred.

Cum se configurează: În căsuța E-mail address se pune adresa From implicită. Sunt două moduri în care lucrează SMTP din IIS – "dă mesajul mai departe" sau "pune-l pe disc". Stai că explic.

  • Adresa From implicită: Dacă aplicația Web care trimite mesajul e-mail nu specifică nici o adresă From, se utilizează adresa implicită setată la nivelul serviciului SMTP.
  • Modul "dă mai departe", adică relaying: Trebuie să-i spui serviciului SMTP din IIS către ce server de e-mail SMTP să transmită mai departe mesajele pe care le primește de la aplicațiile Web. Acel server SMTP s-ar putea să ceară o autentificare din partea IIS, așa că va trebui să specificați contul și parola. Localhost înseamnă că serverul de e-mail SMTP se află pe aceeași mașină cu IIS-ul.
  • Modul "pune mesajele pe disc": În loc să dea mesajele mai departe, serviciul SMTP din IIS le va salva pe disc, urmând ca acele mesaje să fie ulterior procesate sau trimise de către o altă aplicație sau alt server. Io folosesc modul ăsta când dezvolt aplicațiile, că în rețeaua de acasă nu dispun de un server SMTP, ca serverele Web "din producție".

Bine, bine, acum că aplicațiile mele Web pot trimite mesaje de e-mail, cum se face asta efectiv în codul aplicației, adică programatic?

Păi să zicem că am o pagină ASP.NET (d-aia cu aspx în coadă), cu un formular de contact. Și pagina asta trebuie să trimită un mesaj de e-mail cuiva. În pagina aspx o să am niște text-box-uri care preiau informațiile de la vizitatorul paginii:

<asp:TextBox ID="TextBoxAdresaVizitator" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBoxMesajeVizitator" runat="server" TextMode="MultiLine"></asp:TextBox>

Iar în codul paginii aspx probabil că voi avea ceva ca mai jos (io folosesc C#, dar clasele sunt aceleași în Visual Basic):


using System.Net.Mail; // Namespace de trimis mesaje e-mail

MailMessage MesajulAplicatiei = new MailMessage();
MesajulAplicatiei.From = new MailAddress(TextBoxAdresaVizitator.Text);
MesajulAplicatiei.To = new MailAddress("suport@siteulmeu.ro");
MesajulAplicatiei.Subject = "Mesaj de la aplicatia Web";
MesajulAplicatiei.Body = TextBoxMesajeVizitator.Text;
SmtpClient ClientServiciuSMTP = new SmtpClient();
ClientServiciuSMTP.Send(MesajulAplicatiei);
MesajulAplicatiei.Dispose(); // curatam memoria, nu?

E drept, codul putea fi de 3 linii, dar nu era la fel de explicit. Pentru mai multe, citiți despre clasele MailMessage și SmtpClient din System.Net.Mail în documentația .NET Framework SDK.

Prescurtări (dacă mai era nevoie):

  • SMTP – Simple Mail Transfer Protocol. Serverele SMTP sunt "relee" de mesaje e-mail. Primesc un mesaj și-l dau mai departe către destinație, ceea ce în engleză s-ar numi E-mail Message Relaying.
  • IIS – Internet Information Services. Serverul de Web de la Microsoft, inclus în toate edițiile Windows Server dar și în Windows XP Professional și Windows Vista (Home Premium, Business, Enterprise, Ultimate, poate și Home Basic, dar nu sunt sigur). Așa se instalează.

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s