SMTP server response: 503

Eléphant du PHP | 417 Messages

06 mai 2013, 15:37

Bonjour a tous le monde,

j'ai crée un site pour un client, et j'ai un formulaire de contact avec la fonction mail qui marché bien au début mais au bout d'un moment quand j'essayer d'envoyer un mail a partir de formulaire j'ai un message d'erreur le voici:

Warning: mail() [function.mail]: SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server.

j'ai rien compris, j'ai essayé de voir sur internet mais j'ai pas trouvé :s

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 mai 2013, 19:06

Salut,


Le message t'indique que le serveur smtp demande une authentification pour les adresses 'externes'.
Il faut donc voir du côté de la configuration du serveur ou utilise une classe comme phpmailer.

@+
Il en faut peu pour être heureux ......

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 mai 2013, 21:39

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 417 Messages

07 mai 2013, 09:17

Salut,


Le message t'indique que le serveur smtp demande une authentification pour les adresses 'externes'.
Il faut donc voir du côté de la configuration du serveur ou utilise une classe comme phpmailer.

@+
Merci pour votre réponse moogli,

mais quelle authentification fait mettre? le mot de passe de l e-mail de destinataire ?

ViPHP
ViPHP | 2577 Messages

07 mai 2013, 10:15

Plutôt celui de l'expéditeur. Il me semble que ce genre de chose se paramètre dans php.ini mais j'ignore comment.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 mai 2013, 14:16

http://fr2.php.net/manual/fr/mail.configuration.php ?

sur unix c'est sendmail qui s'occupe de cela normalement.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 417 Messages

08 mai 2013, 21:40

donc c'est des modif au niveau de l'hébergeur et pas mon code?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 mai 2013, 23:22

les deux sont envisageable en fonction des possibilités de l'hébergements.

la solution la plus simple est souvent de modifier le code, cela le rend autonome.

tu peux utiliser phpmailer par exemple ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 417 Messages

11 mai 2013, 15:46

dans le code je met mon mot de passe ?
genre si je reçois les mail a mon adresse gmail, je met mon mot de passe gmail dans le code? mais c'est pas sécurisée comme ça :shock:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 mai 2013, 10:37

Il te faudra de toutes façon indiquer un utilisateur et un mot de passe de serveur smtp.
Suivant celui que tu utilisera effectivement ton hébergeur peux avoir accès a des infos qui te sont utile.
Tu peux très bien ouvrir au autre compte gmail que pour cela ;) (avec un mot de passe différent).

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

21 mai 2013, 13:37

la fonction "mail()" de php et une fonction de dépannage qui à mon avis est à éviter en environnement de production.

Mieux vaut lui préférer le paquet PEAR MAIL : http://pear.php.net/package/Mail

Ton bonheur est là :
$params["auth"] - Whether or not to use SMTP authentication. Default is FALSE.
$params["username"] - The username to use for SMTP authentication.
$params["password"] - The password to use for SMTP authentication.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 mai 2013, 20:15

bof car pas forcément dispo nativement et dépendante de pear. sans parler du fait que le code n'as pas bouger depuis 3 ans :mrgreen:

un code standalone est plus portable me parait une bonne option quand on ne maîtrise pas le serveur ;)

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 6 Messages

22 mai 2013, 09:20

Avant, il y a longtemps, on avait besoin d'un mot de passe pour lire son courrier, mais pas pour en envoyer.
On s'est aperçu que cela permettait à des spammeurs d'utiliser des serveurs smtp pour envoyer des spams : il suffisait de connaître le nom du serveur smtp, de connaître une adresse email sur ce serveur et les spammers pouvaient utiliser le serveur.

Donc maintenant, de plus en plus, il faut également un mot de passe pour envoyer un courrier. Et le plus souvent, le mot de passe pour envoyer est le même que celui pour recevoir.

Donc, pour envoyer des emails, utilise la classe PHPMailer (ce qui à mon avis se fait de mieux en ce moment). Et en plus la documentation est bien faite avec pas mal d'exemples et tu as un mode debug qui te donnera des indications précieuses.
http://phpmailer.worxware.com/index.php?pg=sf&p=sfp