Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Check Mail - PHP Extension
Vezi mesajul original
Du-te la pagina 1, 2, 3, 4  Următoare
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
eXpertGiGi



Data înscrierii: 08/Iun/2005
Mesaje: 41

Trimis: Joi Sep 08, 2005 11:27 pm    Titlul subiectului: Check Mail - PHP Extension  

Va rog sa vizitati mai intai : http://expert.no-ip.org/ si pe urma sa puneti intrebari, comentarii (bune sau rele) fata de acest web site.

Va multumesc tuturor pentru orice fel de contributie adusa la dezvoltarea functiilor, claselor de functii sau extensiilor care sunt sau vor fii in acest web site.
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Vin Sep 09, 2005 9:44 am    Titlul subiectului:  

Codul sursa de unde se poate downloada? Licenta?
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Vin Sep 09, 2005 10:22 am    Titlul subiectului:  

Macar o explicatie la ce face?
Eu nu am priceput daca verifica formatul unei adrese de mail (caz in care nu are nici o utilitatea) sau verifica daca (macar) domeniul exista si are un MX.
Sus  
oriceon



Data înscrierii: 24/Dec/2004
Mesaje: 476
Locație: Constanta

Trimis: Vin Sep 09, 2005 10:31 am    Titlul subiectului:  

Extensia verifica formatul unei adrese mail.. caractere interzise.. etc.

In viitorul apropiat o sa fie imbunatatita si o sa verifice si MX si o sa aibe si alti parametrii.
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Vin Sep 09, 2005 10:33 am    Titlul subiectului:  

Pai si de ce ca extensie? Sansele sa fie built-in sunt destul de mici in acest moment...

Sa verifici formatul unei adrese de mail nu-i asa mare scofala (si nici daca adresa exista (pana la un anumit nivel))

Dupa cum a zis si aurelian, macar sursa sa fie la vedere, altfel nu vad nici un motiv pt. care as folosi-o/incerca-o.
Sus  
johnny



Data înscrierii: 31/Iul/2004
Mesaje: 904
Locație: Bucuresti

Trimis: Vin Sep 09, 2005 10:49 am    Titlul subiectului: uau funktzii  

get_rand()

nu vad scopul, putea fi scrisa cu 3 linii... seamana cu o implementare a unui algoritm pascal...


read_dir()
parca e si in manualul de php ceva similar...


smtp_mail()
ai scris-o doar ca sa demonstrezi ca se poate?
nu prea sunt multe abordari pentru asta... asa ca e ok...
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Vin Sep 09, 2005 10:53 am    Titlul subiectului: Re: uau funktzii  

johnny a scris: get_rand()
nu vad scopul, putea fi scrisa cu 3 linii... seamana cu o implementare a unui algoritm pascal...

Plus gandirea defectuoasa... se puteau generea codurile ascii fara sa se mai creeze un vector cu a .. z ( e tare asta for($i="a";$i<"z";$i++) $arr[] = $i; )

Aaa, uitasem, cele 3 randuri pomenite de johnny: (
an style="color: #000000"><?php $add=""; for($k=0;$k<$len;$k++) $add .= chr(rand(33,126)); return $add; 
P.S. 65 in loc de 33 doar pt. litere A-Z
Sus  
oriceon



Data înscrierii: 24/Dec/2004
Mesaje: 476
Locație: Constanta

Trimis: Vin Sep 09, 2005 11:01 am    Titlul subiectului:  

em@il a scris: Pai si de ce ca extensie? Sansele sa fie built-in sunt destul de mici in acest moment...

Sa verifici formatul unei adrese de mail nu-i asa mare scofala (si nici daca adresa exista (pana la un anumit nivel))

Dupa cum a zis si aurelian, macar sursa sa fie la vedere, altfel nu vad nici un motiv pt. care as folosi-o/incerca-o.


Da em@il, insa pentru incepatori este something weird :)

La urma urmei nici is_numeric nu e greu sa verifici but it is used.. right? .. ;)
Sus  
eXpertGiGi



Data înscrierii: 08/Iun/2005
Mesaje: 41

Trimis: Vin Sep 09, 2005 2:01 pm    Titlul subiectului: Explicatii ...  

Check Mail este o extensie facuta pentru PHP4 Win32.
Decat sa folositi o functie scrisa in cod php si sa puneti de nenumarate ori include() sau require() sau ceva gen in cod-ul dvs., ati putea scrie simplu checkmail() oriunde in cod si in orice pagina si nu mai zic de timp de executie .. dar oricum utilizatorii s-au obisnuit sa fol. functii scrise in cod php si asa ca nu conteaza ce am scris mai sus. Aceasta functie checkmail() va ajuta sa vedeti daca o adresa de e-mail are format-ul conform standardelor rfc 822, 2882. Dupa cum a scris si oriceon, o sa implementez ca optiune si verificare zonei (record) MX sau/si DNS pentru ce este dupa @, adica host name.

Despre get_rand() pot spune ca e o functie ce va permite sa creati cum vreti dvs. un string customizabil de caractere aleatoriu. Puteti adauga la string-ul dvs. ce caractere doriti pentru a customiza si mai mult. Initial (by default) caracterele sunt [A-Z] [a-z] si numarul de caractere returnate e 6.
em@il are o idee buna' cu acel chr() .. sincer nu m-am gandit la aceasta varianta .. o sa schimb. Multumesc em@il, si credema' ca nu e gandire defectuasa, daca ai reusit sa faci ceva mai simplu nota 10.
em@il am schimbat cod-ul dar nu in sens-ul tau de gandire, deoarece e mai simplu sa adaugi noi valori pentru ca sa returnezi un string cat mai complex.

Va mltumesc in continuare pentru comentariile aduse si va astept cu altele noi.
Sus  
punctweb



Data înscrierii: 24/Mar/2004
Mesaje: 505

Trimis: Vin Sep 09, 2005 2:06 pm    Titlul subiectului:  

si ce ma fac daca host-ul nu-mi ofera suport pentru libraria mai sus mentionata ?

sau

ce ma fac daca folosesc *UNIX ?

E aiurea sa folosesc o facilitate la development daca stiu ca nu voi beneficia de ea si in afara lui localhost... 8O


Si sa mor de inteleg treaba asta:

an style="color: #000000"><?php $i<"z"; 
adica: cat timp $i e mai mic decat litera "z" ? sau cum ? 8O
Sus  
eXpertGiGi



Data înscrierii: 08/Iun/2005
Mesaje: 41

Trimis: Vin Sep 09, 2005 2:14 pm    Titlul subiectului:  

Deocamdata e "under development" aceasta extensie .. daca vrei sa o incerci n-ai decat sa fol. win32. La versiunea 2.0.x, o pun in pecl spre a fii inclusa' in sursele "de distributie" al php-ului.

Cod: $i<"z";

da, este adevarat cod-ul de mai sus in termenii :

Cod: for($i="a";$i<"z";$i++)
Sus  
bld



Data înscrierii: 01/Sep/2004
Mesaje: 284
Locație: Alaska

Trimis: Vin Sep 09, 2005 3:16 pm    Titlul subiectului:  

"se pare ca" :?: :!:
Sus  
whooper



Data înscrierii: 05/Apr/2005
Mesaje: 714
Locație: Toronto ON

Trimis: Vin Sep 09, 2005 10:28 pm    Titlul subiectului:  

uite aici o chestie pe care o folosesc si care da rezultate mai bune decat get_rand()-ul tau :)

an style="color: #000000"><?php ////////////////////////////////////////////////////////////////////////////////////////////////////// // function to generate passwords function generate_pass ($len) {  if($len > 62) { $len = 62; }  // Create random strings via different methods. The first  // is numerically and lowercase character heavy, the second  // is uppercase character heavy.  srand((double)microtime()*1000000);  $uid = uniqid(rand(),true);  $uid64 = base64_encode(md5(base64_encode($uid)));  // Split the two strings into arrays.  $uidA = preg_split('//', $uid, -1, PREG_SPLIT_NO_EMPTY);  $uid64A = preg_split('//', $uid64, -1, PREG_SPLIT_NO_EMPTY);  // Merge the two arrays, alternating characters.  $all = Array($uidA,$uid64A);  $pass = "";  for($i = 0; $i < 31; $i++) {   for($j = 0; $j < count($all); $j++) {    $temp = @$all[$j];    $pass .= @$temp[$i];   }  }  // Create a string "$len" characters long  // from the middle of $pass.  $passlen = strlen($pass);  $off = floor(($passlen - $len) / 2);  $pass = substr($pass,$off,$passlen - $off);  $passlen = strlen($pass);  $off = $passlen - $len;  $pass = substr($pass,0,$passlen - $off);  return $pass; } ////////////////////////////////////////////////////////////////////////////////////////////////////// 

Pentru smtp_mail() ma asteptam sa vad alta idee desteapta si anume sa ma pot conecta la un server unde am deja cont, pe orice port trebuie, sa ma autentific acolo, dupa care sa pot trimite email-uri cu PHP-ul ca si cum as fi logat in outlook, sau mai stiu eu unde .. :) Orice server care se respecta filtreaza email-urile care vin dupa mai multe criterii, iar unul dintre ele este ca serverul CARE TRIMITE MAIL trebuie sa aiba MX-Record.

Cand tu te conectezi direct la serverul target, si incerci un EHLO de la PC-ul tau de acasa unde ruleaza Apache+PHP .. singurul lucru pe care o sa-l primesti in scurt timp si in 99% din cazuri cand mesajul trece de filtre, sunt rezultate catalogate drept "bulk", "spam", sau "junk" functie de jargonul fiecaruia.
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou

Trimis: Vin Sep 09, 2005 10:42 pm    Titlul subiectului:  

uhm ... gigi ...

nu vrei de la a la z ???

an style="color: #000000"><?php $i<"z"; 
iti ia PANA LA z

an style="color: #000000"><?php $i<="z"; 
s-ar zice ca e corect ...


ma rog , gata , tac :D
Sus  
whooper



Data înscrierii: 05/Apr/2005
Mesaje: 714
Locație: Toronto ON

Trimis: Vin Sep 09, 2005 10:58 pm    Titlul subiectului:  

Inca o chestie pentru smtp_mail(). Ar fi cazul sa te uiti si in RFC-uri inainte de a posta functia pe vre-un site, pentru ca un utilizator care vrea sa trimita mesaje conform unor standarde oarecare va vedea ca-i crapa la prima folosire ..

Incearca sa trimiti un mesaj care are undeva pe la mijloc o linie pe care ai doar un caracter punct (.) Punem pariu ca ceea ce urmeaza acelei linii nu se mai transmite ?

Uite ce ar trebui sa ai in vedere si cum ar trebui sa fie variabilele cand te apuci de chestii din astea cu SMTP ..

an style="color: #000000"><?php /////////////////////////////////////////////////     // PUBLIC VARIABLES     /////////////////////////////////////////////////     /**      * Email priority (1 = High, 3 = Normal, 5 = low).      * @access public      * @var int      */     var $Priority          = 3;     /**      * Sets the CharSet of the message.      * @access public      * @var string      */     var $CharSet           = "iso-8859-1";     /**      * Sets the Content-type of the message.      * @access public      * @var string      */     var $ContentType        = "text/plain";     /**      * Sets the Encoding of the message. Options for this are "8bit",      * "7bit", "binary", "base64", and "quoted-printable".      * @access public      * @var string      */     var $Encoding          = "8bit";     /**      * Holds the most recent mailer error message.      * @access public      * @var string      */     var $ErrorInfo         = "";     /**      * Sets the From email address for the message.      * @access public      * @var string      */     var $From               = "Daemon@Subspace";     /**      * Sets the From name of the message.      * @access public      * @var string      */     var $FromName           = "Crew Member";     /**      * Sets the Sender email of the message. If not empty, will be sent via -f to sendmail      * or as 'MAIL FROM' in smtp mode.      * @access public      * @var string      */     var $Sender            = "";     /**      * Sets the Subject of the message.      * @access public      * @var string      */     var $Subject           = "";     /**      * Sets the Body of the message.  This can be either an HTML or text body.      * If HTML then run IsHTML(true).      * @access public      * @var string      */     var $Body               = "";     /**      * Sets the text-only body of the message.  This automatically sets the      * email to multipart/alternative.  This body can be read by mail      * clients that do not have HTML email capability such as mutt. Clients      * that can read HTML will view the normal Body.      * @access public      * @var string      */     var $AltBody           = "";     /**      * Sets word wrapping on the body of the message to a given number of       * characters.      * @access public      * @var int      */     var $WordWrap          = 0;     /**      * Method to send mail: ("mail", "sendmail", or "smtp").      * @access public      * @var string      */     var $Mailer            = "smtp";     /**      * Sets the path of the sendmail program.      * @access public      * @var string      */     var $Sendmail          = "/usr/sbin/sendmail";     /**      *  Turns Microsoft mail client headers on and off.  Useful mostly      *  for older clients.      *  @access public      *  @var bool      */     var $UseMSMailHeaders = false;          /**      * Path to plugins.  This is now only useful if the SMTP class       * is in a different directory than the PHP include path.        * @access public      * @var string      */     var $PluginDir         = "";     /**      *  Holds version nr.      *  @access public      *  @var string      */     var $Version           = "2.01.10";     /**      * Sets the email address that a reading confirmation will be sent.      * @access public      * @var string      */     var $ConfirmReadingTo  = "";     /**      *  Sets the line endings of the message.      *  @access public      *  @var string      */     var $LE           = "\n";     /**      *  Sets the hostname to use in Message-Id and Received headers      *  and as default HELO string. If empty, the value returned      *  by SERVER_NAME is used or 'localhost.localdomain'.      *  @access public      *  @var string      */     var $Hostname          = "";     /////////////////////////////////////////////////     // SMTP VARIABLES     /////////////////////////////////////////////////     /**      *  Sets the SMTP hosts.  All hosts must be separated by a      *  semicolon.  You can also specify a different port      *  for each host by using this format: [hostname:port]      *  (e.g. "smtp1.example.com:25;smtp2.example.com").      *  Hosts will be tried in order.      *  @access public      *  @var string      */     var $Host        = "localhost";     /**      *  Sets the default SMTP server port.      *  @access public      *  @var int      */     var $Port        = 25;     /**      *  Sets the SMTP HELO of the message (Default is $Hostname).      *  @access public      *  @var string      */     var $Helo        = "";     /**      *  Sets SMTP authentication. Utilizes the Username and Password variables.      *  @access public      *  @var bool      */     var $SMTPAuth     = false;     /**      *  Sets SMTP username.      *  @access public      *  @var string      */     var $Username     = "";     /**      *  Sets SMTP password.      *  @access public      *  @var string      */     var $Password     = "";     /**      *  Sets the SMTP server timeout in seconds. This function will not       *  work with the win32 version.      *  @access public      *  @var int      */     var $Timeout      = 10;     /**      *  Sets SMTP class debugging on or off.      *  @access public      *  @var bool      */     var $SMTPDebug    = false;     /////////////////////////////////////////////////     // PRIVATE VARIABLES     /////////////////////////////////////////////////     /**      *  Holds all "To" addresses.      *  @access private      *  @var array      */     var $to              = array();     /**      *  Holds all "CC" addresses.      *  @access private      *  @var array      */     var $cc              = array();     /**      *  Holds all "BCC" addresses.      *  @access private      *  @var array      */     var $bcc             = array();     /**      *  Holds all "Reply-To" addresses.      *  @var array      */     var $ReplyTo         = array();     /**      *  Holds all string and binary attachments.      *  @access private      *  @var array      */     var $attachment      = array();     /**      *  Holds all custom headers.      *  @var array      */     var $CustomHeader    = array();     /**      *  Holds the type of the message.      *  @var string      */     var $message_type    = "";     /**      *  Holds the message boundaries.      *  @access private      *  @var string array      */     var $boundary        = array(); 

Vrei si restul de CLASA, ca sa nu te mai chinui singur?

Pentru CheckMail, ma asteptam sa vad o abordare mai interesanta, in sensul ca functia respectiva sa verifice remote daca adresa target exista. Adica faci frumos un socket si intrebi serverul target daca primeste mailuri pentru recipienti .. Si zau daca ma intereseaza daca serverul TARGET are MX-RECORD. Eu pot sa-i trimit oricui email ACASA, chiar daca are un postfix neinregistrat nicaieri, daca el de acolo isi citeste in mod regulat mesajele.

Testarea asta remote nu s-a mai facut pana acum (sau cel putin n-am auzit eu) .. pentru ca ia timp pana discuti cu serverul target. Fa-o tu instant si spargi piatza.

Doar pentru a verifica un sir de caractere daca e conform unui RFC, faci un regexp in javascript, il verifici la rulare cu PHP-ul (alt regexp .. ) si gata.

an style="color: #000000"><?php if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+))*$",$e_mail) ){        // not a good email } else {       // valid email. } 
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat Du-te la pagina 1, 2, 3, 4  Următoare
Pagina 1 din 4


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community