smtp et mail avec yahoo

smtp et mail avec yahoo - PHP - Programmation

Marsh Posté le 10-04-2006 à 12:15:29    

Bonjour,
 
j'ai un problème pour entrer les informations pour le serveur smtp
 
voilà mon php.ini:
 

Code :
  1. [Syslog]
  2. ; Whether or not to define the various syslog variables (e.g. $LOG_PID,
  3. ; $LOG_CRON, etc.).  Turning it off is a good idea performance-wise.  In
  4. ; runtime, you can define these variables by calling define_syslog_variables().
  5. define_syslog_variables  = Off
  6. [mail function]
  7. ; For Win32 only.
  8. SMTP = smtp.mail.yahoo.fr
  9. smtp_port = 587
  10. ; For Win32 only.
  11. sendmail_from = dale_lejeune@yahoo.fr
  12. ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i" ).
  13. ;sendmail_path =


 
Voilà mon test de la fonction mail:
 

Code :
  1. mail("dale.lejeune@gmail.com","klmkl","jkhjhkj" );


 
Voilà le rapport d'erreur:
 

Code :
  1. Warning: mail(): Failed to connect to mailserver at "smtp.mail.yahoo.fr" port 587, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\easyphp1-8\www\webradio\info.php on line 4

Reply

Marsh Posté le 10-04-2006 à 12:15:29   

Reply

Marsh Posté le 10-04-2006 à 12:19:22    

Le port SMTP de yahoo est le 25

Reply

Marsh Posté le 10-04-2006 à 12:56:19    

j'ai modifié et redémaré mais toujours un problème!
 

Code :
  1. Warning: mail(): Failed to connect to mailserver at "smtp.mail.yahoo.fr" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\easyphp1-8\www\webradio\info.php on line 4


Est ce que quelqu'un qui a yahoo à déja testé?
 

Reply

Marsh Posté le 10-04-2006 à 14:06:13    

Ca à l'air pourtant d'etre ca

Citation :


Command:
 
telnet smtp.mail.yahoo.fr 25
 
Results:
 
Trying 217.12.11.66...
Connected to smtp1.mail.vip.ukl.yahoo.com.
Escape character is '^]'.


Mais est ce que Yahoo authorise de faire relay SMTP ca m'etonne quand meme. Normalement tu dois mettre le smtp de ton FAI.


Message édité par Sebastien le 10-04-2006 à 14:07:16
Reply

Marsh Posté le 10-04-2006 à 14:16:35    

ah je comprend un peu mieux l'histoire, j'avais pas trop capter! En gros c'est impossible de le faire pour yahoo?

Reply

Marsh Posté le 10-04-2006 à 14:20:18    

En fait tu dois utiliser le smtp de ton FAI, c'est le meme que tu utilises pour ta boite de messagerie, mais rien ne t'empeche de mettre ton adresse yahoo comme adresse d'envoit.
Je sais que pendant lgtps laposte.net faisant relay je sais pas si elle le fait encore.
Mais si tu utilise wanadoo, free, 9 [suivant chez qui tu es -enfin ou se trouve le serveur-] tu devrais pas avoir de soucis

Reply

Marsh Posté le 10-04-2006 à 14:25:21    

Je comrpend mieux, je testerai tantot avec mon FAI (versatel que c'est) Mais je comrpends mieux le fonctionnement! C'ets un peu normal car aussi non on pourrait utiliser le comtpe de n'importe qui!
 
Tandis quand utilisant son fai, il sait faire une reconnaissance!
 

Reply

Marsh Posté le 10-04-2006 à 15:21:32    

chezmoiçamarche.org
 
J'ai mon smtp machin configuré sur yahoo, et ça fonctionne.

Reply

Marsh Posté le 10-04-2006 à 15:23:05    

Aussi, j'utilise fake-sendmail ( http://glob.com.au/sendmail/ ), sinon ça peut absolument pas marcher sous Windows (à part cas spéciaux). Là en plus je vois easyphp, donc à tous les coup c'est parce qu'il trouve pas de sendmail...


Message édité par FlorentG le 10-04-2006 à 15:23:31
Reply

Marsh Posté le 10-04-2006 à 15:26:08    

sendmail? c'est quoi exactement?

Reply

Marsh Posté le 10-04-2006 à 15:26:08   

Reply

Marsh Posté le 10-04-2006 à 15:29:30    

C'est le programme qui sert à envoyer des mails. Si tu l'as pas installé, ou si t'as pas d'équivalent (utilisable par la fonction mail), point de salut.

Reply

Marsh Posté le 10-04-2006 à 15:30:52    

Citation :

For the Mail functions to be available, PHP must have access to the sendmail binary on your system during compile time. If you use another mail program, such as qmail or postfix, be sure to use the appropriate sendmail wrappers that come with them. PHP will first look for sendmail in your PATH, and then in the following: /usr/bin: /usr/sbin: /usr/etc: /etc: usr/ucblib: /usr/lib. It's highly recommended to have sendmail available from your PATH. Also, the user that compiled PHP must have permission to access the sendmail binary.


Message édité par FlorentG le 10-04-2006 à 15:31:16
Reply

Marsh Posté le 10-04-2006 à 15:31:08    

ben mon serveur est sous windows et j'utilise easyphp!
 
J'ai modifier le php.ini où on me l'a dit
 
Il manque quoi?

Reply

Marsh Posté le 10-04-2006 à 15:31:28    

Le programme sendmail que j'ai filé en lien

Reply

Marsh Posté le 10-04-2006 à 15:32:08    

oui mais il tourne pas sous windows?

Reply

Marsh Posté le 10-04-2006 à 15:34:42    

Si justement, c'est l'émulateur sendmail pour windows (RTFS §§§)

Reply

Marsh Posté le 10-04-2006 à 15:36:57    

ah autant pour moi, j'avais pas bien lu!
 
Arpès il faut que je configure quoi? j'ai télécharger le zip, j'ai mis dans c:\usr\lib, j'ai exécuté le exe!
 
arpès il faut faire quoi?

Reply

Marsh Posté le 10-04-2006 à 15:37:30    

Y'a rien à exécuter. Y'a un .ini à configurer, avec les paramètres de comptes. Puis le php.ini où faut indiquer le chemin du sendmail.exe

Reply

Marsh Posté le 10-04-2006 à 15:44:06    

Voilà mon ini:
 

Code :
  1. ; configuration for fake sendmail
  2. [sendmail]
  3. ; you must change mail.mydomain.com to your smtp server
  4. smtp_server=smtp.mail.yahoo.fr
  5. ; the default domain for this server will be read from the registry
  6. ; this will be appended to email addresses when one isn't provided
  7. ; if you want to override the value in the registry, uncomment and modify
  8. ;default_domain=mydomain.com
  9. ; log smtp errors to error.log (defaults to same directory as sendmail.exe)
  10. ; uncomment to enable logging
  11. error_logfile=error.log
  12. ; create debug log as debug.log (defaults to same directory as sendmail.exe)
  13. ; uncomment to enable debugging
  14. ;debug_logfile=debug.log
  15. ; if your smtp server requires authentication, modify the following two lines
  16. auth_username=dale_lejeune@yahoo.fr
  17. auth_password=****
  18. ; if your smtp server uses pop3 before smtp authentication, modify the
  19. ; following three lines
  20. pop3_server=pop.mail.yahoo.fr
  21. pop3_username=dale_lejeune@yahoo.fr
  22. pop3_password=****
  23. ; to force the sender to always be the following email address, uncomment and
  24. ; populate with a valid email address.  this will only affect the "MAIL FROM"
  25. ; command, it won't modify the "From: " header of the message content
  26. ;force_sender=
  27. ; sendmail will use your hostname and your default_domain in the ehlo/helo
  28. ; smtp greeting.  you can manually set the ehlo/helo name if required
  29. hostname=


 
et dans php.in, je met quoi? ça:
 

Code :
  1. [mail function]
  2. ; For Win32 only.
  3. SMTP = smtp.mail.yahoo.fr
  4. smtp_port = 25
  5. ; For Win32 only.
  6. sendmail_from = dale_lejeune@yahoo.fr
  7. ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i" ).
  8. ;sendmail_path = c:\usr\lib


 

Reply

Marsh Posté le 10-04-2006 à 15:45:44    

Modifie le sendmail_path. Et fout tes comptes & mot de passe dans le sendmail.ini

Reply

Marsh Posté le 10-04-2006 à 15:54:40    

dans sendmail.ini j'ai mis mon mot de passe mais le retse qui est en commentaire, c'est bon?
 
php.ini, il faut mettre ça: sendmail_path = c:\usr\lib\sendmail.exe

Reply

Marsh Posté le 10-04-2006 à 15:59:13    

pour php.ini, met là où t'as extrait ton sendmail.exe
 
Chez moi c'est :

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25
 
; For Win32 only.
;sendmail_from = me@example.com
 
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i" ).
sendmail_path = "G:\dev\sendmail\sendmail -t"
 
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =


Voit tout ce qui a été mis en commentaires. Y'a juste le sendmail_path qui reste. Faut pas oublier le -t aussi
 
Pour le sendmail.ini, j'ai :

; configuration for fake sendmail
 
[sendmail]
 
; you must change mail.mydomain.com to your smtp server
 
smtp_server=smtp.mail.yahoo.fr
 
; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify
 
;default_domain=yah
 
; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
 
error_logfile=error.log
 
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
 
debug_logfile=debug.log
 
; if your smtp server requires authentication, modify the following two lines
 
auth_username=*******
auth_password=*********
 
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines
 
pop3_server=pop.mail.yahoo.fr
pop3_username=******
pop3_password=********
 
; to force the sender to always be the following email address, uncomment and
; populate with a valid email address.  this will only affect the "MAIL FROM"
; command, it won't modify the "From: " header of the message content
 
force_sender=
 
; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required
 
hostname=


Remplace les username et password par les tiens, et ça devrait rouler. Oublie pas de redémarrer Apache...

Reply

Marsh Posté le 10-04-2006 à 16:01:18    

C'est pas pour dire, mais sous windows, il suffit d'indiquer l'adresse et le port du serveur smtp pour que ca marche.
Sous les autres OS, là par contre, on est obligé de passer par sendmail.
pour rappel, sendmail est un serveur SMTP capable de recevoir la demande d'envoie de mail aussi bien par réseau (comme un serveur SMTP classique) que par l'exécution d'un autre exemplaire de lui même (ce que fait php)
En passant par sendmail, vous ne passez donc pas par le smtp de yahoo mais par un smtp local.
 
PS : En général, il n'est pas besoin d'indiquer les infos de conection à un serveur pop3 pour envoyer des mails vu qu'un serveur pop est un serveur de réception de mail et pas d'envoie.
 
PS2 : Sous windows, le "sendmail_from" ne sera utilisé que si le "from" n'est pas déjà défini dans l'entête du mail.

Reply

Marsh Posté le 10-04-2006 à 16:02:05    

les username, il faut mettre le @yahoo avec?

Reply

Marsh Posté le 10-04-2006 à 16:04:00    

cela semble ne pas marcher à moins qu'il faut du temps pour l'envoit

Reply

Marsh Posté le 10-04-2006 à 16:07:19    

chepa_jemls a écrit :

les username, il faut mettre le @yahoo avec?


Nope, juste le user name

Reply

Marsh Posté le 10-04-2006 à 16:08:29    

omega2 a écrit :

C'est pas pour dire, mais sous windows, il suffit d'indiquer l'adresse et le port du serveur smtp pour que ca marche.
Sous les autres OS, là par contre, on est obligé de passer par sendmail.
pour rappel, sendmail est un serveur SMTP capable de recevoir la demande d'envoie de mail aussi bien par réseau (comme un serveur SMTP classique) que par l'exécution d'un autre exemplaire de lui même (ce que fait php)
En passant par sendmail, vous ne passez donc pas par le smtp de yahoo mais par un smtp local.
 
PS : En général, il n'est pas besoin d'indiquer les infos de conection à un serveur pop3 pour envoyer des mails vu qu'un serveur pop est un serveur de réception de mail et pas d'envoie.
 
PS2 : Sous windows, le "sendmail_from" ne sera utilisé que si le "from" n'est pas déjà défini dans l'entête du mail.


Ah ? :D hihi :D

Reply

Marsh Posté le 10-04-2006 à 16:10:01    


 
 
pk cette réponse?

Reply

Marsh Posté le 10-04-2006 à 16:11:53    

chepa_jemls a écrit :

pk cette réponse?


Parce que selon omega2, pas besoin de se faire chier avec sendmail sous win... Je sais plus pourquoi je l'ai utilisé, mais j'arrivais pas à faire marcher mail(à sous win sans ce petit programme

Reply

Marsh Posté le 10-04-2006 à 16:20:08    

dans mon fichier de error.log, il dit  
 
06/04/10 16:09:59 : Message is missing sender's address

Reply

Marsh Posté le 10-04-2006 à 16:20:38    

Il manque dans les header le From

Reply

Marsh Posté le 10-04-2006 à 16:21:55    

non je l'ai fait regarde:
 

Code :
  1. function envoi_mail($destinataire,$sujet, $message )
  2. {
  3.         $entete  = @"From : dale_lejeune@yahoo.fr.net\n";
  4.        if(!@mail($destinataire, $sujet, $message, $entete) or die ("Une erreur est survenue dans l'envoi de l'email !" )){
  5.         echo "<br><br>Une erreur est survenu a l envoi du mail<br><br>";
  6.        }
  7.        else{
  8.         echo "<br><br>Envoi du mail avec succès<br><br>";
  9.        }
  10. }


 

Reply

Marsh Posté le 10-04-2006 à 16:23:49    

Y'a pas d'espaces entre le From et le double-point je crois bien :) Et une adresse @yahoo.fr.net est louche, c'est .fr tout court, non ?

Reply

Marsh Posté le 10-04-2006 à 16:26:34    

voilà mon erreur maitenant  
 
06/04/10 16:32:00 : Connect timed out.
 
Je suis donc bien connecté là? est ce que dans sendmail.ini, les usernames, tu laisses @yahoo.fr?

Reply

Marsh Posté le 10-04-2006 à 16:31:25    

Nan, j'ai viré les @yahoo.fr

Reply

Marsh Posté le 10-04-2006 à 16:32:43    

d'ou peut venir le timeout?

Reply

Marsh Posté le 10-04-2006 à 16:37:31    

Ch'ais pas :??:

Reply

Marsh Posté le 10-04-2006 à 16:39:19    

je suis sur un réseau, mais pas les droits, je dois peut être demandé pour débloquer des ports? voir même faire du mapping?

Reply

Marsh Posté le 10-04-2006 à 16:53:03    

Ouais faudrait

Reply

Marsh Posté le 10-04-2006 à 16:59:21    

si tu es en entreprise, motivé pour ouvrir le port 25 vers l'exterieur :o
Sinon tu as pas essayé de mettre comme serveur SMTP l'ip de ton serveur mail du taf ?


Message édité par Sebastien le 10-04-2006 à 17:00:01
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed