[php] conection smtp chez free ?

débPHP -  
SangokuSSJ4 Messages postés 480 Statut Membre -
bonjour,

j'ai un site chez free, & je veux envoyer des new's letter à mes abonnés, mais la limitte de 1000 mails est ch*** :-b
comme il parrait qu'il y a des fonctions remplacant mail(),
j'ai chercher, ...
j'ai trouver bcp de classe, ... qui facilité l'utilisation de la fonction mail & (pr l'instant) j'en ai trouvé 2 qui la remplasse :-))))))

ms je les ai tester à 2, sur free & elle marche pas :-((((
pouvez vous m'aider un peu ??? ( les fonctions je les aient trouvées sur nexen)

la premiére :
function send_mail2($sFrom , $sTo , $sSubject , $sMessage){ 
 $sSendMail = "/usr/sbin/sendmail"; 
  
  $pFile = popen($sSendMail." -t -oi", "w"); 
  fwrite($pFile, "To: $sTo\nFrom: $sFrom\nSubject: $sSubject\n\n$sMessage"); 
  pclose($pFile); 
  
  return $pFile; 
}


& il me met :
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/free.fr/7/5/blbg/1.php on line 7


& la 2eme :
function mailto($from , $to , $reply , $subject , $msg){ 
 function mailto($from, $to, $reply, $subject, $msg) 
 { 
 echo "Envoi d'un mail à $to<br>"; 
 $headers = "MIME-Version: 1.0\r\n"; 
 $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
 $headers .= "Reply-To: $reply\r\n"; 
 $headers .= "X-Mailer: PHP SCRIPT"; 
  
 $connection = fsockopen ("localhost", 25, &$errno, &$errstr, 1); 
  
 if (!$connection) { 
 echo "$errstr ($errno)<br>\n"; 
 } else { 
 $res1=fgets($connection, 256); 
 if(substr($res1, 0, 3) != "220") echo "error : $res1<br>"; 
  
 fputs($connection, "HELO localhost\n"); 
 $res2=fgets($connection, 256); 
 if(substr($res2, 0, 3) != "250") echo "error : $res2<br>"; 
  
 fputs($connection, "MAIL FROM: $from\n"); 
 $res3=fgets($connection, 256); 
 if(substr($res3, 0, 3) != "250") echo "error : $res3<br>"; 
  
 fputs($connection, "RCPT TO: $to\n"); 
 $res4=fgets($connection, 256); 
 if(substr($res4, 0, 3) != "250") echo "error : $res4<br>"; 
  
 fputs($connection, "DATA\n"); 
 $res5=fgets($connection, 256); 
 if(substr($res5, 0, 3) != "354") echo "error : $res5<br>"; 
  
 fputs($connection, "TO: $to\nFrom: $reply\nSubject:
$subject\n$headers\n\n$msg\n.\n"); 
 $res6=fgets($connection, 256); 
 if(substr($res6, 0, 3) != "250") echo "error : $res6<br>"; 
  
 fputs($connection, "QUIT\n"); 
 $res7=fgets($connection, 256); 
 if(substr($res7, 0, 3) != "221") echo "error : $res7<br>"; 
  
 fclose ($connection);} 
 if(substr($res1, 0, 3) == "220" && substr($res2, 0, 3) == "250" && substr($res3,
0, 3) == "250" && substr($res4, 0, 3) == "250" && substr($res5, 0, 3) == "354" &&
substr($res6, 0, 3) == "250" && substr($res7, 0, 3) == "221") echo "mesage envoyé
corectement<hr>"; 
 //echo
$res1."<br>".$res2."<br>".$res3."<br>".$res4."<br>".$res5."<br>".$res6."<br>".$res7; 
 } 
  
}


bon déjà il met une erreur car la fonction est définie 2fois, dc je suppr une déclaration
& aprés il met :
Envoi d'un mail à destinataire@free.fr

Warning: Can't open socket ! in /var/www/free.fr/7/5/blbg/2.php on line 12
()


j'ai remplacer le :
 $connection = fsockopen("localhost", 25, &$errno, &$errstr, 1);
par :
 $connection = fsockopen("smtp.free.fr", 25, &$errno, &$errstr, 1);

mais ça me fait la même erreur ...

& idem si je remplace localhost par le server smtp de free dans :
 fputs($connection, "HELO localhost\n"); 


dc si qqu'un voit une erreur & surtout une solution .. :-D
merci ...

3 réponses

  1. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    tu peux utiliser la fonction email() au lieu de mail(). Normalement elle marche sur free.

    l'utilisation est la même, mais l'ordre des paramètres est différent. regarde sur la doc php.
    1
  2. JCLB
     
    Free n'autorise pas pour l'instant l'utilisation de la fonction fsockopen
    0