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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Envoyer des mails en php sous nginx

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoyer des mails en php sous nginx

n°1429853
hiiirozz
Posté le 13-02-2019 à 22:15:43  profilanswer
 

Bonjour, j'ai un serveur sur le quel j'ai installer mon site Web php qui tourne sous Nginx ai j'aimerais que celui-ci puisse envoyer des emails mais cela ne fonctionne pas...  
 
L'envois de mail via mon site fonctionnait quand je l'avais mis chez un hébergeur mais cela ne fonctionne plus depuis qu'il tourne sur mon petit serveur privé. Je ne sais pas d'où pourrait venir le problème malheureusement, quelqu'un saurait m'aider ?
 
Bien à vous !

mood
Publicité
Posté le 13-02-2019 à 22:15:43  profilanswer
 

n°1429856
rat de com​bat
attention rongeur méchant!
Posté le 13-02-2019 à 22:39:28  profilanswer
 

Tu es derrière une "box"? Commence déjà par vérifier que les ports pour l'envoi mail sont ouverts.

n°1429858
memaster
ki a volé mon 62?
Posté le 13-02-2019 à 22:48:43  profilanswer
 

utilise phpmailer en smtp-auth


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1429960
kaari
Fuck Yeah !
Posté le 15-02-2019 à 11:27:50  profilanswer
 

Oui, vérifie que le port 25 est ouvert en outbound.
Tu as quoi comme logs?


---------------
Mon topic ventes ;)
n°1429968
hiiirozz
Posté le 15-02-2019 à 12:57:15  profilanswer
 

Bonjour, merci beaucoup pour votre aide, je regarderai tout ça demain et je vous dirais quoi.
Bonne journée à vous !

n°1430041
hiiirozz
Posté le 16-02-2019 à 20:18:30  profilanswer
 

Bonsoir,  
Voila je viens d'ouvrir le port 25 de ma box mais cela ne fonctionne toujours pas...
Voici le code source dont je m'étais inspirer pour envoyer des emails :

Code :
  1. <?php
  2. $mail = 'weaponsb@mail.fr'; // Déclaration de l'adresse de destination.
  3. if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
  4. {
  5. $passage_ligne = "\r\n";
  6. }
  7. else
  8. {
  9. $passage_ligne = "\n";
  10. }
  11. //=====Déclaration des messages au format texte et au format HTML.
  12. $message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
  13. $message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
  14. //==========
  15. //=====Création de la boundary
  16. $boundary = "-----=".md5(rand());
  17. //==========
  18. //=====Définition du sujet.
  19. $sujet = "Hey mon ami !";
  20. //=========
  21. //=====Création du header de l'e-mail.
  22. $header = "From: \"WeaponsB\"<weaponsb@mail.fr>".$passage_ligne;
  23. $header.= "Reply-to: \"WeaponsB\" <weaponsb@mail.fr>".$passage_ligne;
  24. $header.= "MIME-Version: 1.0".$passage_ligne;
  25. $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
  26. //==========
  27. //=====Création du message.
  28. $message = $passage_ligne."--".$boundary.$passage_ligne;
  29. //=====Ajout du message au format texte.
  30. $message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
  31. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  32. $message.= $passage_ligne.$message_txt.$passage_ligne;
  33. //==========
  34. $message.= $passage_ligne."--".$boundary.$passage_ligne;
  35. //=====Ajout du message au format HTML
  36. $message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
  37. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  38. $message.= $passage_ligne.$message_html.$passage_ligne;
  39. //==========
  40. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  41. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  42. //==========
  43. //=====Envoi de l'e-mail.
  44. mail($mail,$sujet,$message,$header);
  45. //==========
  46. ?>


Je suis en train de regarder pour utiliser phpmailer mais je ne comprend pas trop comment cela fonctionne et je ne suis pas encore tomber sur de bonne explication...
Est-ce que quelqu'un connaîtrait un bon cour à se sujet ou bien saurait m'expliquer ?  
Merci d'avance!  

n°1430044
memaster
ki a volé mon 62?
Posté le 16-02-2019 à 20:38:49  profilanswer
 

https://github.com/PHPMailer/PHPMailer/wiki/Tutorial
 
 :hello:


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1430045
hiiirozz
Posté le 16-02-2019 à 20:40:12  profilanswer
 

Si jamais, c'est grave si je sous sur la version 5.6.39 de php ? :-/

n°1430046
hiiirozz
Posté le 16-02-2019 à 21:06:52  profilanswer
 

Voilà, j'ai essayer d'envoyer un mail et voici ce que ça m'affiche:

Code :
  1. 2019-02-16 20:05:39 SMTP ERROR: Failed to connect to server: Network is unreachable (101)
  2. SMTP connect() failed. https://github.com/PHPMailer/PHPMai [...] leshooting
  3. Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMai [...] leshooting

n°1430047
hiiirozz
Posté le 16-02-2019 à 21:18:07  profilanswer
 

Cela me met qu'il me manque ce fichier mais je n'arrive pas a le trouver...
autoload.php';

mood
Publicité
Posté le 16-02-2019 à 21:18:07  profilanswer
 

n°1430048
rat de com​bat
attention rongeur méchant!
Posté le 16-02-2019 à 21:25:14  profilanswer
 

hiiirozz a écrit :

Si jamais, c'est grave si je sous sur la version 5.6.39 de php ? :-/

Si je crois Wikipédia il n'y a plus de màj sécurité (ni fonctionnalité) pour cette version. Il est temps de changer. :o  
 
Concernant ton soucis un coup de Wireshark peut parfois apporter des précisions.

n°1430051
memaster
ki a volé mon 62?
Posté le 16-02-2019 à 21:38:06  profilanswer
 

hiiirozz a écrit :

Cela me met qu'il me manque ce fichier mais je n'arrive pas a le trouver...
autoload.php';


tu dois configurer les variables de ton smtp dans un autre fichier. je regarderais demain, je ne l'ai pas en tete pour le moment.
si en local tu n'as pas de sender (postfix, sendmail ou autre), tu ne risques pas d'envoyer grand chose vers l'exter.

Message cité 1 fois
Message édité par memaster le 16-02-2019 à 21:39:51

---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1430052
hiiirozz
Posté le 16-02-2019 à 21:41:05  profilanswer
 

memaster a écrit :


tu dois configurer les variables de ton smtp dans un autre fichier. je regarderais demain, je ne l'ai pas en tete pour le moment.
si en local tu n'as pas de sender (postfix, sendmail ou autre), tu ne risques pas d'envoyer grand chose vers l'exter.


Okay merci beaucoup pour votre aide!  
Bonne soirée à vous!

n°1430053
memaster
ki a volé mon 62?
Posté le 16-02-2019 à 21:41:26  profilanswer
 

rat de combat a écrit :

Si je crois Wikipédia il n'y a plus de màj sécurité (ni fonctionnalité) pour cette version. Il est temps de changer. :o  
 
Concernant ton soucis un coup de Wireshark peut parfois apporter des précisions.


sinon, je plussoie passer en 7 minimum et faire evoluer ta solution/appli


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1430057
hiiirozz
Posté le 16-02-2019 à 22:00:22  profilanswer
 

Voici le code que j'ai utiliser:

Code :
  1. use PHPMailer\PHPMailer\PHPMailer;
  2. use PHPMailer\PHPMailer\Exception;
  3. require 'PHPMailer/src/Exception.php';
  4. require 'PHPMailer/src/PHPMailer.php';
  5. require 'PHPMailer/src/SMTP.php';
  6. $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
  7. try {
  8.     //Server settings
  9.     $mail->SMTPDebug = 2;                                 // Enable verbose debug output
  10.     $mail->isSMTP();                                      // Set mailer to use SMTP
  11.     $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
  12.     $mail->SMTPAuth = true;                               // Enable SMTP authentication
  13.     $mail->Username = 'email@gmail.com';                 // SMTP username
  14.     $mail->Password = '1234';                           // SMTP password
  15.     $mail->SMTPSecure = 'ssl`';                            // Enable TLS encryption, `ssl` also accepted
  16.     $mail->Port = 25;                                    // TCP port to connect to
  17.     //Recipients
  18.     $mail->setFrom('noreply@gmail.com', 'Admin');
  19.     $mail->addAddress('email@gmail.com');     // Add a recipient
  20.     $mail->addAddress('email@mailinator.com');               // Name is optional
  21.     //$mail->addReplyTo('info@example.com', 'Information');
  22.     //$mail->addCC('cc@example.com');
  23.     //$mail->addBCC('bcc@example.com');
  24.     //Attachments
  25.     //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
  26.     //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
  27.     //Content
  28.     $mail->isHTML(true);                                  // Set email format to HTML
  29.     $mail->Subject = 'Here is the subject';
  30.     $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
  31.     //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
  32.     $mail->send();
  33.     echo 'Message has been sent';
  34. } catch (Exception $e) {
  35.     echo 'Message could not be sent.';
  36.     echo 'Mailer Error: ' . $mail->ErrorInfo;


mais cela ne fonctionne toujours pas...
Peut être essayer avec un autre serveur que celui de gmail...


Message édité par hiiirozz le 16-02-2019 à 22:07:10
n°1430058
hiiirozz
Posté le 16-02-2019 à 22:20:01  profilanswer
 

J'ai désormais un autre retour, j'arrive a me connecter au serveur mais l'authentification ne fonctionne pas on dirait...

Code :
  1. 2019-02-16 21:16:18 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP u6sm5510520wmj.28 - gsmtp
  2. 2019-02-16 21:16:18 CLIENT -> SERVER: EHLO localhost.localdomain
  3. 2019-02-16 21:16:18 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [81.244.6.197]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
  4. 2019-02-16 21:16:18 CLIENT -> SERVER: STARTTLS
  5. 2019-02-16 21:16:18 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
  6. 2019-02-16 21:16:18 CLIENT -> SERVER: EHLO localhost.localdomain
  7. 2019-02-16 21:16:19 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [81.244.6.197]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
  8. 2019-02-16 21:16:19 CLIENT -> SERVER: AUTH LOGIN
  9. 2019-02-16 21:16:19 SERVER -> CLIENT: 334 VXNlcm5hbWU6
  10. 2019-02-16 21:16:19 CLIENT -> SERVER: <credentials hidden>
  11. 2019-02-16 21:16:19 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
  12. 2019-02-16 21:16:19 CLIENT -> SERVER: <credentials hidden>
  13. 2019-02-16 21:16:19 SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials u6sm5510520wmj.28 - gsmtp
  14. 2019-02-16 21:16:19 SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials u6sm5510520wmj.28 - gsmtp
  15. SMTP Error: Could not authenticate.
  16. 2019-02-16 21:16:19 CLIENT -> SERVER: QUIT
  17. 2019-02-16 21:16:19 SERVER -> CLIENT: 221 2.0.0 closing connection u6sm5510520wmj.28 - gsmtp
  18. SMTP Error: Could not authenticate.
  19. Message could not be sent.Mailer Error: SMTP Error: Could not authenticate.

n°1430059
kaari
Fuck Yeah !
Posté le 16-02-2019 à 22:32:11  profilanswer
 

Tu as essayé vers le port 587 ou 465 ?
465 c'est le smtps (SSL)
587 c'est submission (TLS/STARTSSL)
 
Ce que tout le monde devrait utiliser pour du sasl, d'ailleurs il est souvent prudent de désactiver les auth sur le port 25.


Message édité par kaari le 16-02-2019 à 22:40:00

---------------
Mon topic ventes ;)
n°1430060
hiiirozz
Posté le 16-02-2019 à 22:36:23  profilanswer
 

Malheureusement oui, je suis actuellement avec le port 587 car le 25 et 465 ne fonctionnait pas et me mettait:

Code :
  1. 2019-02-16 21:34:50 SERVER -> CLIENT:
  2. 2019-02-16 21:34:50 SMTP NOTICE: EOF caught while checking if connected
  3. SMTP Error: Could not authenticate.
  4. SMTP Error: Could not authenticate.
  5. Message could not be sent.Mailer Error: SMTP Error: Could not authenticate.


J'ai vérifié plusieurs fois, mon login et mdp sont correcte donc je ne comprend pas...

n°1430065
kaari
Fuck Yeah !
Posté le 17-02-2019 à 00:03:01  profilanswer
 

Hmmmm...
 

Citation :

$mail->SMTPSecure = 'ssl`';


Citation :

$mail->SMTPSecure = 'tls';


 
doc: https://github.com/PHPMailer/PHPMai [...] n-flavours
 

Citation :

Don't mix up these modes; ssl on port 587 or tls on port 465 will not work.


rtfm ? :o


Message édité par kaari le 17-02-2019 à 00:05:29

---------------
Mon topic ventes ;)
n°1430071
memaster
ki a volé mon 62?
Posté le 17-02-2019 à 11:07:01  profilanswer
 

Code :
  1. require_once(DIR_WS_CLASSES . "class.phpmailer.php" );
  2. $pMail = new PHPMailer();
  3. //$pMail->SetLanguage("fr", 'language/');
  4. //$pMail->From     = $from_addr;
  5. //$pMail->FromName = $from_name;
  6. $pMail->From     = "no_reply@nawakdomain.tld";
  7. $pMail->FromName = "memaster62";
  8. $pMail->IsSMTP();
  9. $pMail->Host     = "ssl0.ovh.net";       // replace with your SMTP server
  10. $pMail->Username = "mail@domain.tld";      // replace with your SMTP username
  11. $pMail->Password = "yourpass";          // replace with your SMTP password
  12. //$pMail->SMTPSecure = "tls";
  13. $pMail->SMTPAuth = true;                        // SMTP authentication must be always turned on (true)
  14. $pMail->Port = 587;
  15. $pMail->Subject = $subject;
  16. $pMail->Body    = $this->output;
  17. $pMail->AddAddress($to_addr, $to_name);
  18. $pMail->IsHTML(false);
  19. return $pMail->Send();
  20. $pMail->ClearAddresses();
  21. $pMail->ClearAttachments();
  22.       }


voici mon code de parametres (ici avec un compte mail OVH) qui fonctionne en prod sur un serveur perso@home


Message édité par memaster le 17-02-2019 à 11:09:07

---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1430072
hiiirozz
Posté le 17-02-2019 à 12:14:26  profilanswer
 

Tu désactive le SMTPSecure ?

n°1430075
hiiirozz
Posté le 17-02-2019 à 18:38:49  profilanswer
 

Voila j'ai réussis désormais !!!!! :pt1cable:  
C'est j'ai mail qui me bloquait l'envois... :fou:

n°1430079
kaari
Fuck Yeah !
Posté le 17-02-2019 à 21:14:29  profilanswer
 

Gné ? Pourquoi ? :o


---------------
Mon topic ventes ;)
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Envoyer des mails en php sous nginx

 

Sujets relatifs
problèmes d'émissions de mails vers domaines sfr, orange et freeRTMP Nginx Sever Latence
Des robots tentent de se servir de mon serveur SMTP.[Résolu] RTMP et nginx
Zimbra - programmer envoi de mailswp-smtp - le mail de test fonctionne mais pas les mails wordpress
Nginx auth_basic offListing de repertoire sous nginx
Config NGINX[ Résolu] Problème d'adresse dans les notifications mails phpBB 3.2
Plus de sujets relatifs à : Envoyer des mails en php sous nginx


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)