Buna ziua. Deoarece grafomania mea progresează, am decis să mai adaug un articol. Articolul va, ca întotdeauna, cu exemple în C #, dar un VB „schnik mai mult sau mai puțin priceput va rescrie cu ușurință tot codul sub VB.NET.
Să începem, poate
Pentru trimiterea de e-mail trebuie să folosim trei obiecte. System.Net.Mail.SmtpClient pentru a trimite un mesaj, System.Net.Mail.MailMessage pentru a reprezenta un mesaj și System.Net.NetworkCredential pentru a autoriza.
Să creăm un client:
Var client = new SmtpClient("$Mail-Server-Address$", $Mail-Server-Port$);
referinta constructorului:
SmtpClient(string gazdă, int port);
Să creăm o instanță a clasei MailMessage:
Var msg = new MailMessage ("de la", "la");
Acum să setăm subiectul și conținutul scrisorii (apropo, totul poate fi setat în constructor). Precum și autentificarea și parola pentru clientul smtp. Apoi vom trimite un e-mail folosind metoda Send a obiectului nostru client:
Var client = new SmtpClient("smtp.yandex.ru"); var msg = new MailMessage ("de la", "la"); msg.Subject = "Mesajul meu de testare"; msg.Body = "Bună, prietene! Închipuiți-vă că tocmai am scris un program incredibil pentru a vă trimite această scrisoare fără sens de un miliard de ori doar prin câteva clicuri!"; msg.SubjectEncoding = Encoding.UTF8; msg.BodyEncoding = Encoding.UTF8; // priority msg.Priority = MailPriority.High; // corpul mesajului în html? msg.IsBodyHtml = fals; client.Credentials = new NetworkCredential("login", "parola"); client.Send(msg);
Asta e tot. Asigurați-vă că introduceți corect toate informațiile necesare.
Comentarii()
ruslang02 30
CoolHacker, pot împrumuta acest cod de la tine pentru partea 3 a browserului web?
Coolhacker 770 ruslang02 30Mulțumesc, îl voi folosi pentru a trimite link-uri prin e-mail
ca in Firefox
Trimiteți e-mail prin programare folosind diverse servicii
- .net,
Foarte des ai de-a face cu trimiterea e-mailuri din codul programului. Nu trebuie să cauți departe pentru exemple.
Acest articol este un indiciu și nu dezvăluie nimic nou, dar înainte de a-l scrie, am arătat asemănător pe Internet și am fost destul de surprins că aproape peste tot oferă fie o soluție nefuncțională, fie învechită, fie pur și simplu scrisă analfabet.
Primul lucru pe care nu ar trebui să-l faceți cu aceste exemple este să utilizați System.Web.Mail, care a fost depreciat de mult timp și de când Studio vizual 2010 biblioteca System.Web nici măcar nu poate fi adăugată fără a ști calea plină la DLL-ul corespunzător.
În schimb, se propune utilizarea bibliotecii System.Net.
folosind System.Net; folosind System.Net.Mail;
Deci, cel mai simplu, este și cel mai important și des folosit este trimiterea unei scrisori de la dvs server de mail Pe care este configurat clientul SMTP. După cum înțelegeți, serverul poate fi fie cel pe care rulează aplicația, fie unul la distanță, pe care aveți dreptul de a trimite scrisori fără autorizație suplimentară.
Exemplu de cod pentru trimiterea de e-mailuri de la aparatul local:
Utilizarea serviciilor de e-mail precum Gmail, Yandex, Mail.ru etc. totul este la fel, se adauga doar parametrii cu autorizatie.
Server SMTP: smtp.gmail.com
Port: 587
folosind (MailMessage mm = new MailMessage ("Nume
Server SMTP: smtp.yandex.ru
Port: 25
folosind (MailMessage mm = new MailMessage ("Nume
Server SMTP: smtp.mail.ru
Port: 25
folosind (MailMessage mm = new MailMessage ("Nume
Daca ai cutie poștală pe serviciul mail.ru se termină cu inbox.ru, list.ru sau bk.ru, apoi adresa serverului SMTP (smtp.inbox.ru, smtp.list.ru și smtp.bk.ru) se modifică în consecință.
După cum puteți vedea, pentru a utiliza orice alt serviciu de e-mail în programele dvs., trebuie doar să aflați adresa și portul serverului SMTP, precum și regulile de autorizare.
De asemenea, trebuie amintit că aproape toate serviciile de e-mail ale terților impun limite asupra numărului de e-mailuri trimise într-o perioadă de timp.
Etichete: e-mail, trimitere e-mailuri, smtp
Una dintre cele mai solicitate funcții de pe site este cererea sau formularul de comandă, datele din care sunt trimise pe mail-ul proprietarului site-ului. De regulă, astfel de formulare sunt simple și constau din două sau trei câmpuri pentru introducerea datelor. Cum se creează un astfel de formular de comandă? Acest lucru va necesita utilizarea limbajului de marcare HTML și a limbajului Programare PHP.
Limbajul de marcare HTML în sine este simplu, trebuie doar să vă dați seama cum și unde să puneți anumite etichete. Cu limbajul de programare PHP, lucrurile sunt ceva mai complicate.
Nu este dificil pentru un programator să creeze un astfel de formular, dar unele acțiuni pot părea dificile pentru un codificator HTML.
Crearea unui formular de trimitere html
Prima linie va fi următoarea
Acum hai să punem totul împreună.
Acum să facem obligatoriu câmpurile din formular. Avem următorul cod:
Creați un fișier care acceptă date dintr-un formular HTML
Acesta va fi un fișier numit send.php
În fișier, în prima etapă, trebuie să primiți date din matricea post. Pentru a face acest lucru, creăm două variabile:
$fio = $_POST["fio"];
$email = $_POST["e-mail"];
Numele de variabile în php sunt precedate de un semn $, iar un punct și virgulă este plasat la sfârșitul fiecărei linii. $_POST este o matrice la care sunt transmise datele din formular. În formularul html este specificată metoda de trimitere = "post". Astfel, două variabile sunt preluate din formulare html. Pentru a vă proteja site-ul, trebuie să treceți aceste variabile prin mai multe filtre - funcții php.
Prima funcție va converti toate caracterele pe care utilizatorul va încerca să le adauge în formular:
În acest caz, nu sunt create variabile noi în php, ci sunt folosite cele existente. Ceea ce va face filtrul este să convertească caracterul "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
A doua funcție decodifică adresa URL dacă utilizatorul încearcă să o adauge în formular.
$fio = urldecode($fio);
$email = urldecode($email);
Cu a treia funcție, vom elimina spații de la începutul și sfârșitul șirului, dacă există:
$fio = trim($fio);
$email = trim($email);
Există și alte funcții care vă permit să filtrați variabilele php. Utilizarea lor depinde de cât de mult vă este teamă că un atacator va încerca să adauge cod de program la această formă de trimitere a datelor către mail html.
Validați datele transmise din formularul HTML în fișierul PHP
Pentru a verifica dacă acest cod funcționează, dacă datele sunt transferate, îl puteți afișa pur și simplu pe ecran folosind funcția ecou:
echo $fio;
ecou"
";
echo $email;
A doua linie de aici este necesară pentru a separa rezultatul variabilelor php în linii diferite.
Trimiterea datelor primite din formularul HTML la e-mail folosind PHP
Pentru a trimite date la e-mail, trebuie să utilizați funcția de e-mail în PHP.
mail("la ce adresa se trimite", "subiectul scrisorii", "Mesaj (corpul scrisorii)","De la: din care email este trimisa scrisoarea \r\n");
De exemplu, trebuie să trimiteți date către e-mailul proprietarului sau managerului site-ului [email protected]
Subiectul e-mailului trebuie să fie clar, iar mesajul e-mailului trebuie să conțină ceea ce utilizatorul a specificat în formularul HTML.
Poștă(" [email protected]", "Aplicație de pe site", "Nume:".$fio.". E-mail: ".$email ,"De la: [email protected]\r\n");
Trebuie să adăugați o condiție care va verifica dacă formularul a fost trimis folosind PHP la adresa de e-mail specificată.
dacă (mail(" [email protected]", "Comanda de pe site", "Nume:".$fio.". E-mail: ".$email ,"De la: [email protected]\r\n"))
{
echo „mesaj trimis cu succes”;
) altfel (
}
Astfel, codul de program al fișierului send.php, care va trimite datele formularului HTML către e-mail, va arăta astfel:
$fio = $_POST["fio"];
$email = $_POST["e-mail"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
// ecou "
";
//echo $email;
dacă (mail(" [email protected]", "Aplicație de pe site", "Nume:".$fio.". E-mail: ".$email ,"De la: [email protected]\r\n"))
( echo „mesaj trimis cu succes”;
) altfel (
echo „au apărut erori la trimiterea mesajului”;
}?>
Cele trei rânduri pentru a verifica dacă datele sunt transmise fișierului sunt comentate. Dacă este necesar, acestea pot fi eliminate, deoarece au fost necesare doar pentru depanare.
Puneți codul HTML și PHP pentru trimiterea formularelor într-un singur fișier
În comentariile acestui articol, mulți oameni întreabă cum să faci atât formularul HTML, cât și codul PHP pentru trimiterea datelor la e-mail să fie într-un singur fișier, nu în două.
Pentru a implementa această lucrare, trebuie să plasați codul HTML al formularului în fișierul send.php și să adăugați o condiție care va verifica prezența variabilelor în matricea POST (această matrice este transmisă din formular). Adică, dacă variabilele din matrice nu există, atunci trebuie să arătați utilizatorului un formular. În caz contrar, trebuie să luați datele din matrice și să le trimiteți destinatarului.
Să vedem cum se schimbă codul PHP în fișierul send.php:
//verificați dacă variabilele există în matricea POST
if(!isset($_POST["fio"]) și !isset($_POST["email"]))(
?> ) altfel (
//arata formularul
$fio = $_POST["fio"];
$email = $_POST["e-mail"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
dacă (mail(" [email protected]", "Aplicație de pe site", "Nume:".$fio.". E-mail: ".$email ,"De la: [email protected]\r\n"))(
echo „Mesajul trimis cu succes”;
) altfel (
echo „Au apărut erori la trimiterea mesajului”;
}
}
?>
Verificăm existența unei variabile în matricea POST cu funcția PHP isset(). Un semn de exclamare înaintea acestei funcție într-o condiție înseamnă negație. Adică, dacă variabila nu există, atunci trebuie să ne arătăm forma. Dacă nu aș pune un semn de exclamare, atunci condiția ar însemna literal - „dacă există, atunci arată forma”. Și acest lucru este greșit în cazul nostru. Desigur, îl puteți redenumi în index.php. Dacă redenumiți fișierul, atunci nu uitați să redenumiți numele fișierului și în linie