[php] conection smtp chez free ?

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. Free n'autorise pas pour l'instant l'utilisation de la fonction fsockopen
    0
    1. 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