Azi ma gandeam sa trimit mailuri prietenilor, sa-i invit la ziua mea, si pentru ca nu am vrut sa trimit un mail nepersonalizat membrilor grupului, m-am decis sa scriu un script care sa trimita mailurile asa cum vreau eu.
In primul rand avem nevoie de un server SMTP prin care sa fie trimis mailul; eu am trimis de pe o adresa personala unde am uploadat si scriptul -> emanuel[at]weebo[punct]ro, dar cred ca se poate si cu gmail – smtp.gmail.com sau rds – smtp.rdslink.ro; sau alti provideri care permit trimiterea mailurilor prin SMTP, si scriptul rulat local.
Bun, acum ca avem serverul si configurarile, vom downloada pachetul de Pear::Mail, posibil ca acest sa existe deja in unele configuratii. Il dezarhivam si in acelasi folder cu Mail.php cream un fisier nou “script.php”.
Fisierul script.php va contine urmatoarea sintaxa:
Acesta apeleaza functiile din Mail.php, se creaza un obiect Mail – $smtp, care va primi setarile puse de noi prin functia factory() – Mail::factory(); mailul se trimite cu functia send() – $smtp->send(); iar rezultatul se inregistreaza in $mail, variabila pe care o verificam prin if, pentru a afisa un mesaj de eroare sau de succes.
Pentru cei ce au hosting pe un server ce are configurat un cont de mail anonim, este suficienta functia din php mail()
LE: Ca si raspuns pentru comentariul lui xpt1
Tutorialul este independent de platforma, eu l-am folosit si de pe hosting (un server unde aveam deja o adresa de mail configurata) si de pe serverul local trimitand mailul printr-o adresa gmail. Trebuiesc anumite librarii ale php-ului instalate: PEAR, in Windows se instaleaza prin go-pear.bat (in Ubuntu prin sudo apt-get install php-pear) si Net_SMTP (prin comanda: pear install Net_SMTP-1.3.4 – in linia de comanda, atat in Windows cat si in Ubuntu).
<?php
require_once “Mail.php”;
//lista cu SETARILE
//cel ce trimite mailul
$from = “Numele nostru <user@gmail.com>”;
//cei ce primesc mailurile pot fi n persoane, in for va fi schimbat ($i<2) cu $i<n
$to = array( 0=>”Ion <ion@server_mail.tld>”,
1=>”Ana <ana@server_mail.tld>”
);
$subject = “Ce dorim la subiect”; //si pentru subiect putem crea un array, daca vrem ca fiecare sa primeasca ceva personalizat
$body = array( 0=>”Salut Ion,\nMesaj pentru Ion test”,
1=>”Buna Ana,\nMesaj pentru Ana …”
);
//configurare pentru o adresa de la gmail
$host = “ssl://smtp.gmail.com”; //gmail foloseste ssl, deci se va specifica acest fapt in adresa
//portul normal pentru smtp este 25, dar fiind o conexiune criptata ssl portul folosit este 465
$port = “465″;
$username = “user@gmail.com”;
$password = “parola”;
for($i=0;$i<2;$i++){
//vectorul $headers permite o recunoastere a mailului (acesta nu va intra in spam)
$headers = array ( ‘From’ => $from,
‘To’ => $to[$i],
‘Subject’ => $subject
);
//functia(metoda) care primeste setarile si face AUTENTIFICAREA la server si crearea obiectului
$smtp = Mail::factory( ’smtp’,
array ( ‘host’ => $host,
‘port’ => $port,
‘auth’ => true,
‘username’ => $username,
‘password’ => $password));
//TRIMITEREA mailurilor
$mail = $smtp->send($to[$i], $headers, $body[$i].”\n\nNumele nostru,\nPt detalii reply la adresa@provider.tld”);
//verificarea daca au fost trimise, daca nu da eroare totul a mers bine, este posibil totusi ca mailul sa fie primit dupa ceva mai multe minute (sau instant… in cazul meu am primit al doilea mail inaintea primului, am testat de la gmail la yahoo)
if (PEAR::isError($mail)) {
echo(“<p>” . $mail->getMessage() . “</p>”);
} else {
echo(“<p>Message {$i} successfully sent!</p>”);
}
}
?>
Related Posts :
Un gravatar este un “avatar recunoscut la nivel global.”. O figurina/iconita care va aparea ...
Am cautat si testat diverse metode de masurare a site-ului. Unele presupuneau inscrierea pe un s ...
Google Buzz a aparut ca initiativa Google de a avea un produs in Social Media. Nu este totusi re ...
Se cauta blogger!!! Da, azi am primit un mail de la bestjobs.ro cu joburile care s-ar potrivi c ...
Pentru a intelege robots.txt, trebuie mai intai sa intelegi ce sunt robotii (aceia de web). U ...










Interesant tutorialul.
Ai putea sa faci tutorialul si pentru windows (xp si 7), si, sa incarci pe site fisierul ca sa putem trimite si noi mesaje, fara sa luam totul de la 0…
@xpt1 Wordpressul nu ma lasa sa-l formatez cum vreau eu… acela este codul scris pentru cineva care vrea sa trimita mailuri prin gmai. Poti da copy/paste sau poti modifica, are si comentarii orientative, din poza se intelege logica mai bine.
Totusi sa stii ca avea dreptate; un fisier pe care doar sa-l downlodezi iar ajuta pe cei mai lenesi.
)
Sunt cateva dificultati tehnice, fiind nou domeniul, trebuie sa ne decidem asupra unor pluginuri si asupra unei teme mai atragatoare, unul dintre pluginuri va avea in vedere si uploadul de fisiere si/sau afisarea de cod text, formatat asemanator cu cel din poza. Programarea, in orice limbaj, se face prin exercitiu, daca esti lenes, mai bine te reprofilezi.
@Emanuel: nu trebuie sa fii programator ca sa folosesti un script. Daca esti lenes poti cere intotdeauna ajutorul unui prieten. Prietenul te poate ajuta direct sau te poate invata cum sa te descurci singur. Prima solutie poate parea mai buna intr-un anumit moment, dar a doua este cea care conteaza pe termen lung. Aici pe blog va vom oferi ambele variante de ajutor. Insa si munca pe cont propriu are un rol foarte important.
Pentru RDS e mail.rdslink.ro. Pentru alti provideri, e suficient sa sunati la relatii cu clientii si sa cereti adresa serverului de mail, trebuie sa vi-l dea.
Setarile se fac in php.ini la “[mail function]” iar pentru un simplu mail se descurca PHP foarte bine, fara a downloada pachetul respectiv. Poate nu inteleg eu scopul pachetului PEAR, caz in care sunt curios care sunt diferentele (in afara de usurinta de a lucra cu niste clase/functii scrise deja). Un pic mai complicat este cand e vorba de atasamente, dar chiar si asa, nu e foarte “challenging”
Multa bafta in continuare!