mail() et localhost

Guillaume150
Invité n'ayant pas de compte PHPfrance

30 déc. 2010, 14:54

Bonsoir,

Cette question fut sans doute posée des dizaines de fois, mais dur de retrouver d'autres personnes l'ayant posée. Donc je suis en local et j'utilise mail() mais j'ai le message d'erreur suivant:
Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. n78sm7222408weq.27 in C:\wamp\www\aaaaaaaaa\inscription.php on line 145
Je sais qu'il faut (enfin pas sur) modifier les réglages de wamp j'ai donc cherché sur le net et j'ai remplacé:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 25
par
[mail function]
; For Win32 only.
SMTP = smtp.gmail.com
smtp_port = 25
[mail function]
; For Win32 only.
;sendmail_from = <a href="mailto:[email protected]">[email protected]</a>
Mais j'ai toujours des erreurs:
Notice: Undefined variable: headers in C:\wamp\www\integrationlistejeu\inscription.php on line 141

Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. i80sm7249492wej.4 in C:\wamp\www\integrationlistejeu\inscription.php on line 145

Voilà, donc si quelqu'un pouvait m'aider à résoudre ce problème.

Merci

ViPHP
xTG
ViPHP | 7331 Messages

30 déc. 2010, 14:58

Le warning concerne-t-il les paramètres du header à fournir dans le mail ?
Si c'est le cas regarde la documentation pour voir ce qu'il y a à mettre dans le header d'un email et remplie ta variable qui ne l'est pas. ^^

guillaume150
Invité n'ayant pas de compte PHPfrance

30 déc. 2010, 15:02

Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. o33sm7686603wej.37 in C:\wamp\www\integrationlistejeu\inscription.php on line 145
Toujours ca et voici le code de mon code pour l'envoi de mail:
if ($valid) {
  
  $hash = md5(rand(0,10000000));
  
  $to = $mail;
  $subject = 'Validation inscription du site "Liste Jeux": http://www.aaaaaa.com';
  $message = 
  '
  <p>Bonjour '.$login.'!<br /><br/>
  Nous vous remercions pour votre inscription sur le site <a href="www.aaaaa.com">aaaaaaaa</a>
  Afin de pouvoir vous connecter et profiter de toutes les fonctionnalités présentes sur le site, merci de valider votre compte en cliquant sur le lien suivant:
  <a href="http://localhost/integrationlistejeu/verif.php?mail='.$mail.'$hash='.$hash.'">http://localhost/integrationlistejeu/verif.php?mail='.$mail.'$hash='.$hash.'</a>'
  ;
  
;
  $headers = 'From: Liste Jeux <[email protected]>' . "\r\n";
  $headers .= 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";  

  mail($to, $subject, $message, $headers);
  
  membreFactory::sauvegardeUser($login, md5($pass), $mail, $hash);
$crea_valid = true;
  
  
  
  }
Merci beaucoup

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

30 déc. 2010, 15:11

salut,

il faut enlever le ; de la ligne send_mail (le ; indique un commentaire, donc la ligne n'est pas "lue") => solution indiquée par google sur le 1er résultat.

ensuite il semble que google utilise (comme beaucoup) SSL et une demande user / pwd ce qui n'est pas possible ainsi via php et donc rend ta solution impossible.

il existe des serveur smtp gratuits que tu peut installer facilement sur ta machine afin de pouvoir tester ce que tu souhaite ;)

pour la 1ere erreur je partage l'avis de xTG la variable headers n'existe pas ;)

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

Eléphant du PHP | 422 Messages

30 déc. 2010, 15:15

yes
SMTP server response: 530 5.7.0 Must issue a STARTTLS command first.
il demande une connexion sécurisé TLS

Ton FAI peut faire l'affaire !

++
Modifié en dernier par telnes le 30 déc. 2010, 15:24, modifié 1 fois.
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

guillaume150
Invité n'ayant pas de compte PHPfrance

30 déc. 2010, 15:16

il faut enlever le ; de la ligne send_mail (le ; indique un commentaire, donc la ligne n'est pas "lue")
Je ne vois pas ou?
pour la 1ere erreur je partage l'avis de xTG la variable headers n'existe pas ;)
J'ai réglé le problème dans mon message précédent.


Merci

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

30 déc. 2010, 15:32

dans ton php.ini

@telnes : oui tant qu'il n'y a pas de demande de login / mdp

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

guillaume150
Invité n'ayant pas de compte PHPfrance

30 déc. 2010, 15:45

Je viens d'aller dans le php.ini et je n'ai plus de paragraphe concernant [mail function] à quoi c'est du?

Merci

Eléphant du PHP | 422 Messages

30 déc. 2010, 16:02

tu la delete :shock:
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

guillaume150
Invité n'ayant pas de compte PHPfrance

30 déc. 2010, 16:16

Je ne pense pas, je peux le remettre ou je veux dans le php.ini ou il y a un ordre?

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

30 déc. 2010, 16:59

c'est un fichier de conf, normalement y a pas de soucis

la section ressemble à ça

Code : Tout sélectionner

[mail function] ; For Win32 only. ; http://php.net/smtp SMTP = smtp.gmail.com ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = [email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = ; 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 = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = On ; The path to a log file that will log all mail() calls. Log entries include ; the full path of the script, line number, To address and headers. ;mail.log =
juste après Syslog
@+
Il en faut peu pour être heureux ......

guillaume150
Invité n'ayant pas de compte PHPfrance

30 déc. 2010, 19:37

Enfaite ca n'avait pas disparu un problème du ctrl + f mais j'ai toujours le problème...

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

30 déc. 2010, 22:40

a tu essayer d'installer un serveur smtp sur ton pc (c'est le seul moyen de te mettre dans les conditions du serveur en ligne).

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

guillaume150
Invité n'ayant pas de compte PHPfrance

31 déc. 2010, 13:41

C'est fait, j'ai pris SMTP server mais comment je l'utilise maintenant?

Merci

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

31 déc. 2010, 14:57

heu t'a regardé la doc du serveur ?

dans la conf de php c'est la conf d'origien (serveur locahost avec le port que tu configure dans le serveur smtp et le send_mail_from a renseigner

@+

edit :

je viens de tester avec serveur gratis
- insataller le bazard
- créer un compte dedans
- configurer le php.ini avec localhost et send_mail_from = [email protected]

tester avec un script simple comme ceux de la doc
<?php
     $to      = 'xxxxx';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: [email protected]' . "\r\n" .
     'Reply-To: [email protected]' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

    $x = mail($to, $subject, $message, $headers);
	if ($x === true) echo 'yaaaaahhhhooo !!!';
	else echo 'so bad :/';
 ?>
- vérifier que le mail arrive et c'est bon

a tu des soucis sur la conf ?

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