Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2635 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  la function mail dans PHP - réglage SMTP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

la function mail dans PHP - réglage SMTP

n°1435938
ghinzdra
Posté le 03-09-2006 à 17:23:50  profilanswer
 

Bonjour  
 
 J'essaye d'implanter une newsletter pour le compte de mon association . Pour l'instant j'effectue mes test en local avec EasyPHP. La partie inscription dans la base MySQL fonctionne (j'ai inscrit 2 emails dedans) . En revanche la partie envoi échoue à cause d'un problème de serveur SMTP semble il. Le mécanisme est fait de 2 pages , une page html pour la rédaction de la newsletter et la page php pour l'envoi de la newsletter .
Au départ sans changement dans le fichier php.ini  la ligne SMTP avait la valeur suivante : localhost
A ce moment le navigateur imprimait " Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\www\newsletter\mail.php3 on line 48"  
 
J'ai changé la valeur en utilisant le serveur smtp de wanadoo puis laposte.
pour wanadoo lorsque j'execute la newsletter le message suivant est imprimé dans le navigateur:  Warning: mail(): SMTP server response: 554 <ghinzdra@hotmail.com>: Relay access denied in c:\www\newsletter\mail.php3 on line 48
pour la poste  le résultat  est le suivant.  
Warning: mail(): SMTP server response: 530 authentication required for mail submission in c:\www\newsletter\mail.php3 on line 48
 
Bon je veux bien que que ne disposant de serveur SMTP en local je sois incapable d'envoyer un email. Mais comment faire alors ? visiblement les serveurs SMTP des fournisseurs demandent les mêmes infos d'identification que dans le cadre d'un logiciel de messagerie comme thunderbird ou outlook.  
D'où deux question : 1 Quelle est la solution pour le local ?
2 lorsque je voudrais implanter le tout sur le serveur distant quels réglages devrais je effectuer  
 
Merci d'avance  
accessoirement je mets le code de la page html  et de la page d'envoi bien que je ne pense pas que le problème soit là .  
 
1ère page : page d'envoi  envoi.htm

Citation :

<html>  
 
</body>  
 
<form  method="post" action="mail.php3">  
 
<table width="445" align="center" border="1" cellspacing="0"  
 
bordercolor="navy" bordercolordark="navy" bordercolorlight="navy">  
 
<tr><td width="130" align="right">  
 
<p><font size="2" color="navy"><b>Sujet</b></font><font size="2">  
 
<b> : </b></font></p>  
 
</td><td width="311" align="left">  
 
<p><font size="2"><input type="text" name="sujet" size="44">  
 
</font></p>  
 
</td></tr><tr><td width="130" align="right" valign="top" rowspan="2">  
 
<p><font size="2" color="navy"><b>Message</b></font><font  
 
size="2"><b>e : </b></font></p>  
 
</td><td width="311">  
 
<p><font size="2"><textarea name="message" rows="18"  
 
cols="42"></textarea></font></p>  
 
</td> </tr><tr><td width="311" align="left">  
 
<p><font size="2"><input type="submit" value="Envoyer la newsletter">  
 
<input type="reset" value="Réinitialiser"></font></p>  
 
</td></tr></table>  
 
</form>  
 
</body>  
 
</html>  


 
2ème page : page de mailing  

Citation :

<html>
 
<head>
 
<title>Mailer</title>
</head>
 
<body>
<?  
 
// le code qui nous permettra d'envoyer la lettre  
 
$headers="from:wanadoo.fr";  
 
// Connection à la base de donnée( par défaut paramètre local)  
 
$server="localhost";
$user="root";
$pass="mineraux";
$db="prim";
mysql_connect($server, $user, $pass) or die('Erreur de connexion');    
mysql_select_db($db) or die('Base inexistante');  
 
// on selectionne tous les emails de la base de donnée  
 
$req=mysql_query("SELECT email FROM lettre" );  
 
// on compte le nombre d'emails  
 
$res=mysql_numrows($req);  
 
// On envoi la lettre d'info a tous les emails  
 
// Utilisation d'une boucle while pour récupérer tous les mails  
 
// et envoi avec la fonction mail( ) placer dans la boucle...  
$i=0;  
 
while($i!=$res) {  
 
   $email=mysql_result($req,$i,"email" );  
 
// Les variables sujet et message sont récupérés via le formulaire  
 
// d'envoi  
$sujet=$_POST["sujet"];
$message=$_POST["message"];  
mail($email,$sujet,$message,$headers);  
 
    $i++;  
 
}  
 
// On ferme la connection  
 
mysql_close();  
 
?>  
 
 
</body>
 
</html>


 
Merci encore  

mood
Publicité
Posté le 03-09-2006 à 17:23:50  profilanswer
 

n°1435959
nargy
Posté le 03-09-2006 à 19:26:28  profilanswer
 

Citation :


D'où deux question : 1 Quelle est la solution pour le local ?
2 lorsque je voudrais implanter le tout sur le serveur distant quels réglages devrais je effectuer  


Pour répondre à ces deux questions ne une seule réponse: marre du spam!
 
Voilà, ce qui veut dire en clair que:
1- tu doit installer un serveur SMTP toi-même
2- tu doit veiller à ce que ton serveur SMTP ne soit pas black-listé, soit: pas d'adresse IP en location, pas de nom de domaine déjà black-listé, et le respect des normes de sécurité (notamment ton serveur ne doit pas faire relai) et de la nettiquette.

n°1435972
ghinzdra
Posté le 03-09-2006 à 19:51:49  profilanswer
 

Citation :


Pour répondre à ces deux questions ne une seule réponse: marre du spam!
 
Voilà, ce qui veut dire en clair que:
1- tu doit installer un serveur SMTP toi-même
2- tu doit veiller à ce que ton serveur SMTP ne soit pas black-listé, soit: pas d'adresse IP en location, pas de nom de domaine déjà black-listé, et le respect des normes de sécurité (notamment ton serveur ne doit pas faire relai) et de la nettiquette.


 
 
ta réponse me laisse perplexe...
1°Tu fais  référence au spam pour expliquer la nécessité de s'identifier au serveur SMTP des yahoo&co? Ils sont donc définitivement inutilisables dans le cadre d'une newsletter ? il n'y a aucun moyen de rentrer des informations d'identification correspondant à un compte classique , au moins comme solution temporaire ?
2°Par ailleurs si je comprends bien cela signifie que dés que tu veux mettre au point une newsletter tu dois installer en plus de php et de mysl et un serveur SMTP? je commence à trouver que ça fait beaucoup , surtout lorsqu'on voit le nombre de sites amateurs qui en incluent en plus d'un fil rss....
3°Par ailleurs si c'était indispensable alors je ne comprends pas que des solutions tout en 1 du type EASY php  qui incluent Apache , PHP, MySQL , PHPadministrator n'inclue pas de serveur SMTP : concrétement quel est le premier besoin d'un débutant (puisque c'est la cible reconnue d'easyPHP)  s'intéressant à une solution PHP+MySQL   sinon une newsletter (les forums , livres d'or,. viennent aprés)?
4°Enfin quelle est la solution SMTP conseillé aux débutants ? est ce qu'un logiciel comme Hamster dont je me sers habituellement pour récuperer les news sur Usenet peut convenir ?  

n°1435983
nargy
Posté le 03-09-2006 à 20:06:49  profilanswer
 

1° oui; oui; non
2° oui
3° parceque ces solutions sont généralement installés chez les particuliers, donc adresse IP en rotation et bannie
4° google

n°1435984
nargy
Posté le 03-09-2006 à 20:11:28  profilanswer
 

Solution plus simple à ton problème pour une petite newsletter: utilise le champs BCC pour envoyer des copies du mails à plusieurs personnes, et le champs TO pour te l'envoyer à toi-même. Avec un logiciel ou un compte mail classique.


Message édité par nargy le 03-09-2006 à 20:11:57
n°1435988
Dj YeLL
$question = $to_be || !$to_be;
Posté le 03-09-2006 à 20:14:55  profilanswer
 

ghinzdra> Tu dis "pour le moment j'effectue mes tests en local"... donc je suppose que tu vas le faire heberger. Et tout hebergeur qui se respecte permet d'envoyer des mails :o


---------------
Gamertag: CoteBlack YeLL
n°1435998
ghinzdra
Posté le 03-09-2006 à 20:37:13  profilanswer
 

Dj YeLL a écrit :

ghinzdra> Tu dis "pour le moment j'effectue mes tests en local"... donc je suppose que tu vas le faire heberger. Et tout hebergeur qui se respecte permet d'envoyer des mails :o


-nargy
le mail en duplicata ? j'y ai bien songé... mais pour des questions de prestige mon association refuse une telle solution . Par ailleurs un telle solution ça va bien un moment .... Comme tu l'as dit c'est pour une petite newsletter et on vise environ 900 personnes à terme .
-dj yell  
le problème c'est qu'il s'agit d'une association universitaire et que notre hébergement il s'effectue sur le serveur de l'université . Bon le PHP c'est OK , MySQL je suis en train de négocier une base de donnée mais un serveur SMTP c'est pas forcement gagné....  
 
Justement au niveau local , j'ai activé Hamster (j'espère que vous connaissez avant d'envoyer la newsletter) cette fois ci les warning relatif au défaut de mailserver ou au problème d'identification,ect... ont disparu ,juste une page blanche !Ce qui tendrait à dire que ça marche mais en vérifiant le contenu des boites mails en question  rien dedans.... :fou:  :fou:  :fou:  :fou:  
Ca peut  bloquer où cette fois ? les mails sont pourtant  bien inscrits dans la base MYSQL...
 et surtout comment obtenir au moins un message d'erreur pour savoir où ça cloche?  
 

n°1436002
nargy
Posté le 03-09-2006 à 20:56:38  profilanswer
 

  • (Re)Vérifie si la fonction mail() de php renvoie un code d'erreur,
  • Pour vérifier si tu es black-listé, ouvre un compte yahoo et envoies-y la newsletter, yahoo te donnera des indications,
  • Je ne connais pas Hamster. Vérifie son fonctionnement à l'aide d'un logiciel de mail classique (outlook par exemple).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  la function mail dans PHP - réglage SMTP

 

Sujets relatifs
[PHP] bug dans un script d'inscription[javascript] Commande smtp pour envoyer un mail
[HTML/PHP]Forcer le chargement d'une image non utiliserInsérer une classe CSS dans un tableau PHP
Problèmes avec PHPenvoi mail type HTML via Outlook
[HTML] Mail en HTML avec image incorporéePHP et les variables de session Probleme
PHP et Shopify ? 
Plus de sujets relatifs à : la function mail dans PHP - réglage SMTP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR