Page blanche Phpmailer

Résolu/Fermé
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 - 11 mars 2015 à 13:31
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 - 23 mars 2015 à 16:59
Bonjour,

J'ai testé Phpmailer car mon hébergeur a bloqué temporairement la fonction mail(). J'ai essayé de voir sur des forums et les tutos mais je n'y arrive pas. J'ai essayé de faire une page test de mon site mais à chaque fois, j'ai une page blanche. Pouvez-vous m'aider ? J'ai mis un des codes php que j'ai utilisé en bas de ce message.

Merci d'avance,

<?php


require_once('/phpmailer/class.phpmailer.php');

$mail = new PHPMailer();

$mail->IsHTML(true);

$mail->CharSet = "utf-8";

$mail->SetFrom('adresse-mail@gmail.com', 'Expéditeur');

$mail->Subject = 'Signalement erreur PHP';

$mail->Body = '<p><b>E-Mail</b> au format <i>HTML</i>.</p>';

$mail->AddAddress('adresse-mail@gmail.com');

$mail->Send();
 
?>
 
A voir également:

8 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
11 mars 2015 à 16:15
Bonjour
tu as essayé de faire :
if($mail->Send()){
  echo "<br>Mail envoyé avec succès !";
}else{
 echo "<br>ERREUR !";
} 
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
12 mars 2015 à 12:07
Oui tout à fait. J'ai réessayé à l'instant, et j'ai toujours une page blanche. Sans rien. Même pas un message d'erreur...
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023
12 mars 2015 à 13:01
Eventuellement.. ajoutes ça au début de ta page
ini_set('display_errors', '1');
error_reporting(E_ALL);
Echo "TEST";

et dis nous si ça t'affiche quelque chose.

Et tu l'appelles comment cette page ?
Via un formulaire HTML ?
Tu nous montres son code ?
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
12 mars 2015 à 14:35
Merci pour ton aide Jordane45. Avec ce code, cela m'affiche Test. Voici la page en question : http://pourquivoter.olympe.in/pagetest.php
Cette page je l'ai créée pour essayer si Phpmailer fonctionnait. En effet, je compte l'utiliser ensuite pour m'envoyer les résultats d'un questionnaire test.

Voici le code complet de cette simple page test :

<?php

ini_set('display_errors', '1');
error_reporting(E_ALL);
Echo "TEST";

require_once('/phpmailer/class.phpmailer.php');

$mail = new PHPMailer();

$mail->IsHTML(true);

$mail->CharSet = "utf-8";

$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');

$mail->Subject = 'Signalement erreur PHP';

$mail->Body = '<p><b>E-Mail</b> au format <i>HTML</i>.</p>';

$mail->AddAddress('pourquivoter@yahoo.fr');

$mail->Send();

if($mail->Send()){
  echo "<br>Mail envoyé avec succès !";
}else{
 echo "<br>ERREUR !";
}
 
?>
 
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
12 mars 2015 à 15:32
Testes ça :
<?php


ini_set('display_errors', '1');
error_reporting(E_ALL);

echo "<pre>DEBUT DU SCRIPT<br>";

require_once('/phpmailer/class.phpmailer.php');
include("/phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$body = "Hello, \n Ceci est un test !!!";

$mail             = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
																					 
//*************** AUTHENTIFICATION AU SMTP *****************************//																					 
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
$mail->Port       = 26;                    // set the SMTP port for the MAIL server
$mail->Username   = "yourname@yourdomain"; // SMTP account username
$mail->Password   = "yourpassword";        // SMTP account password
//***********************************************************************//

$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');
$mail->AddReplyTo("pourquivoter@yahoo.fr","First Last");
$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);

$address = "pourquivoter@yahoo.fr";
$mail->AddAddress($address, "pourquivoter");

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
    

?>

EDIT : Penses à mettre à jour les données qui se trouvent dans :
"AUTHENTIFICATION AU SMTP"


0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
Modifié par djstoun le 13/03/2015 à 12:15
Cela me fait une page blanche où il est simplement écrit "DEBUT DU SCRIPT".

Voici mon code :
<?php


ini_set('display_errors', '1');
error_reporting(E_ALL);

echo "<pre>DEBUT DU SCRIPT<br>";

require_once('/phpmailer/class.phpmailer.php');
include("/phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$body = "Hello, \n Ceci est un test !!!";

$mail             = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp.mail.yahoo.com"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
																					 
//*************** AUTHENTIFICATION AU SMTP *****************************//																					 
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.mail.yahoo.com"; // sets the SMTP server
$mail->Port       = 587;                    // set the SMTP port for the MAIL server
$mail->Username   = "pourquivoter@yahoo.fr"; // SMTP account username
$mail->Password   = "******";        // SMTP account password
//***********************************************************************//

$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');
$mail->AddReplyTo("pourquivoter@yahoo.fr","First Last");
$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);

$address = "pourquivoter@yahoo.fr";
$mail->AddAddress($address, "pourquivoter");

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
    

?>
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
14 mars 2015 à 14:44
J'en appelle aussi aux autres webmasters, phpiste etc. Si vous avez des idées...
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
14 mars 2015 à 17:53
C'est vraiment étrange ton truc.....

On va ajouter un peu de debug ....

<?php


ini_set('display_errors', '1');
error_reporting(E_ALL);

$debug=0;
echo "<pre>DEBUT DU SCRIPT</pre>";
$debug++;
echo "<br> DEBUG :".$debug;

require_once('/phpmailer/class.phpmailer.php');
include("/phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$debug++;
echo "<br> DEBUG :".$debug;

$body = "Hello, \n Ceci est un test !!!";

$mail             = new PHPMailer();

$debug++;
echo "<br> DEBUG :".$debug;

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp.mail.yahoo.com"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
																$debug++;
echo "<br> DEBUG :".$debug;					 
//*************** AUTHENTIFICATION AU SMTP *****************************//																					 
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.mail.yahoo.com"; // sets the SMTP server
$mail->Port       = 587;                    // set the SMTP port for the MAIL server
$mail->Username   = "pourquivoter@yahoo.fr"; // SMTP account username
$mail->Password   = "******";        // SMTP account password
//***********************************************************************//
$debug++;
echo "<br> DEBUG :".$debug;


$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');
$mail->AddReplyTo("pourquivoter@yahoo.fr","First Last");
$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);

$address = "pourquivoter@yahoo.fr";
$mail->AddAddress($address, "pourquivoter");
$debug++;
echo "<br> DEBUG :".$debug;

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
    
$debug++;
echo "<br> DEBUG :".$debug;

echo "<pre>FIN DU SCRIPT</pre>";
?>


0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
15 mars 2015 à 12:27
Coucou jordane45,

C'est effectivement étrange...

Cela me marque sur la page blanche :

DEBUT DU SCRIPT

DEBUG :1
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023
15 mars 2015 à 15:47
Donc il ne dépasse pas l'import des fichiers phpmailer...
tu es sûr du chemin ??
Testes ceci :

<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);

$debug=0;
echo "<pre>DEBUT DU SCRIPT</pre>";
$debug++;
echo "<br> DEBUG :".$debug;

$phpmailerClass = "/phpmailer/class.phpmailer.php";
if(file_exists($phpmailerClass)){
 echo "<br>ok : Fichier $phpmailerClass trouvé ! ";
 require_once($phpmailerClass);
 include("/phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
}else{
 echo "<br>Error : Fichier $phpmailerClass non trouvé ! ";
}


$debug++;
echo "<br> DEBUG :".$debug;

$body = "Hello, \n Ceci est un test !!!";

$mail             = new PHPMailer();

$debug++;
echo "<br> DEBUG :".$debug;

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp.mail.yahoo.com"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
$debug++;
echo "<br> DEBUG :".$debug;					 
//*************** AUTHENTIFICATION AU SMTP *****************************//																					 
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.mail.yahoo.com"; // sets the SMTP server
$mail->Port       = 587;                    // set the SMTP port for the MAIL server
$mail->Username   = "pourquivoter@yahoo.fr"; // SMTP account username
$mail->Password   = "******";        // SMTP account password
//***********************************************************************//
$debug++;
echo "<br> DEBUG :".$debug;


$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');
$mail->AddReplyTo("pourquivoter@yahoo.fr","First Last");
$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);

$address = "pourquivoter@yahoo.fr";
$mail->AddAddress($address, "pourquivoter");
$debug++;
echo "<br> DEBUG :".$debug;

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
    
$debug++;
echo "<br> DEBUG :".$debug;

echo "<pre>FIN DU SCRIPT</pre>";

?>
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
Modifié par djstoun le 16/03/2015 à 12:58
Incompréhensible... Avec le code ci-dessus, cela me marque la même chose :

DEBUT DU SCRIPT

DEBUG :1

Là, j'ai l'impression que le Php veut me "faire tourner en bourrique". Ps : J'ai enlevé les slash pour phpmailer/class.smtp.php et phpmailer/class.phpmailer.php
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023
16 mars 2015 à 12:48
TU peux faire un clic droit sur la page qui s'affiche à l'écran (celle où tu n'as que DEBUG :1 qui apparait...) et faire afficher la source puis nous la poster ici ?
(NB: je parles bien du code source (html) de la page GÉNÉRÉE ... pas de ton code php...)
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
16 mars 2015 à 12:49
En revanche si je fais le code tout simple :
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);


$phpmailerClass = "phpmailer/class.phpmailer.php";
if(file_exists($phpmailerClass)){
 echo "<br>ok : Fichier $phpmailerClass trouvé ! ";
 require_once($phpmailerClass);
 include("phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
}else{
 echo "<br>Error : Fichier $phpmailerClass non trouvé ! ";
}


?>

Cela me marque bien "ok : Fichier phpmailer/class.phpmailer.php trouvé !"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 mars 2015 à 16:57
Vides bien ton cache et teste ce code :
<?php
// AFFICHAGE DES ERREURS:
ini_set('display_errors', '1');
error_reporting(E_ALL);

/**
* Fonction d'envoi de mails
*/
function SendMail($to,$sujet,$body){
//Include des class :
$phpmailerClass = "/phpmailer/class.phpmailer.php";
if(file_exists($phpmailerClass)){
 echo "<br>ok : Fichier $phpmailerClass trouvé ! ";
 require_once($phpmailerClass);
 include("/phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
}else{
 echo "<br>Error : Fichier $phpmailerClass non trouvé ! ";
}
//-------------------------------------------------------------------------------//

try{
//Objet Mail
$mail             = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp.mail.yahoo.com"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
		 
//*************** AUTHENTIFICATION AU SMTP *****************************//																					 
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.mail.yahoo.com"; // sets the SMTP server
$mail->Port       = 587;                    // set the SMTP port for the MAIL server
$mail->Username   = "pourquivoter@yahoo.fr"; // SMTP account username
$mail->Password   = "******";        // SMTP account password
//***********************************************************************//
 
$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');
$mail->AddReplyTo("pourquivoter@yahoo.fr","First Last");
$mail->Subject    = $sujet;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$mail->AddAddress($to, "pourquivoter");
if(!$mail->Send()){
 $result = "Mailer Error: " . $mail->ErrorInfo;
}else{
 $result=false;
}

} catch (Exception $e) {
    $result = '<br>Exception reçue : ' . $e->getMessage(). "\n";
}
return $result;
}


 //---------------------------------------------------------------------------------------------//   
echo "<pre>DEBUT DU SCRIPT</pre>";
 $address = "pourquivoter@yahoo.fr"; 
 $message = " <pre> Ceci est un message Test. </pre>";
 $sujet = "Mail de Test";
 
 // envoie du mail
 echo "<pre>Envoi du mail :";
  $sendMail = SendMail($address,$sujet,$message); 
  if(!$sendMail) {
    echo "<br> Message envoyé!";
  }else{
     echo "<br>".$sendMail;
   }
 echo "</pre>";
 
echo "<pre>FIN DU SCRIPT</pre>";
//---------------------------------------------------------------------------------------------//
?>

0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
16 mars 2015 à 19:02
Donc voici ce que j'ai obtenu :
DEBUT DU SCRIPT
Envoi du mail :
ok : Fichier phpmailer/class.phpmailer.php trouvé !

PS : je n'ai reçu aucun mail. La fonction mail de l'hébergeur du site est indisponible. Je ne sais pas si cela vient de cela. C'est aussi pour cela que j'ai voulu passer par phpmailer
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 mars 2015 à 19:10
Tu as bien parametre le smtp et tout dans le code que je t'ai donné hein ??

Ce qui m'étonne c'est que tu n'as pas le echo de fin.... ni message d'erreur. ...
soit tu ne nous marques pas tout... soit y'a vraiment un pb avec ton hebergeur. .. (mais aucun rapport avec la fonction mail )
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
Modifié par djstoun le 16/03/2015 à 19:34
Je te mets mon code : (mais on est d'accord il faut bien mettre le smtp de yahoo, c'est à dire celui de mon adresse mail ?)
<?php
// AFFICHAGE DES ERREURS:
ini_set('display_errors', '1');
error_reporting(E_ALL);

/**
* Fonction d'envoi de mails
*/
function SendMail($to,$sujet,$body){
//Include des class :
$phpmailerClass = "phpmailer/class.phpmailer.php";
if(file_exists($phpmailerClass)){
 echo "<br>ok : Fichier $phpmailerClass trouvé ! ";
 require_once($phpmailerClass);
 include("phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
}else{
 echo "<br>Error : Fichier $phpmailerClass non trouvé ! ";
}
//-------------------------------------------------------------------------------//

try{
//Objet Mail
$mail             = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "smtp.mail.yahoo.com"; // SMTP server
$mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
   
//*************** AUTHENTIFICATION AU SMTP *****************************//                      
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.mail.yahoo.com"; // sets the SMTP server
$mail->Port       = 587;                    // set the SMTP port for the MAIL server
$mail->Username   = "pourquivoter@yahoo.fr"; // SMTP account username
$mail->Password   = "****";        // SMTP account password
//***********************************************************************//
 
$mail->SetFrom('pourquivoter@yahoo.fr', 'Expéditeur');
$mail->AddReplyTo("pourquivoter@yahoo.fr","First Last");
$mail->Subject    = $sujet;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$mail->AddAddress($to, "pourquivoter");
if(!$mail->Send()){
 $result = "Mailer Error: " . $mail->ErrorInfo;
}else{
 $result=false;
}

} catch (Exception $e) {
    $result = '<br>Exception reçue : ' . $e->getMessage(). "\n";
}
return $result;
}


 //---------------------------------------------------------------------------------------------//   
echo "<pre>DEBUT DU SCRIPT</pre>";
 $address = "pourquivoter@yahoo.fr"; 
 $message = " <pre> Ceci est un message Test. </pre>";
 $sujet = "Mail de Test";
 
 // envoie du mail
 echo "<pre>Envoi du mail :";
  $sendMail = SendMail($address,$sujet,$message); 
  if(!$sendMail) {
    echo "<br> Message envoyé!";
  }else{
     echo "<br>".$sendMail;
   }
 echo "</pre>";
 
echo "<pre>FIN DU SCRIPT</pre>";
//---------------------------------------------------------------------------------------------//
?>
0
Utilisateur anonyme
16 mars 2015 à 19:41
Bonsoir

Juste une petite remarque :
Dans ton script simple, tu écris "phpmailer/class.phpmailer.php" (pas de / au début
Dans ceux qui ne marchent pas, tu écris "/phpmailer/class.phpmailer.php"
Si c'est ça la raison, bizarre qu'il n'y ait pas de message d'erreur quand même
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
Modifié par djstoun le 16/03/2015 à 19:50
Oui fallait que je vide le cache et pour que je reçoive le message "Fichier phpmailer/class.phpmailer.php trouvé ! " il fallait enlever le "/".
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 mars 2015 à 20:21
Je viens de fouiller un peu sur le net ... et visiblement.... avec Yahoo ... seuls les comptes "pro" peuvent envoyer des mails depuis des scripts PHP.....

A mon avis, tu ferais mieux de passer par Gmail.


<?php
// AFFICHAGE DES ERREURS:
ini_set('display_errors', '1');
error_reporting(E_ALL);

function sendMail($to,$sujet,$body,$pj=NULL){

//***** VARIABLES *****//

$user = "tonadresseMail";
$password ="tonPassword";
$fromMail = "tonadresseMail";
$fromName = "Moi";
$replytoMail = "tonadresseMail";
$replytoName = "Moi";

// Parametres SMTP
$host = 'smtp.gmail.com';
$port = 587;
//---------------------//
$result=array();
//Include des class :
$phpmailerClass = "phpmailer/class.phpmailer.php";
if(file_exists($phpmailerClass)){
 require_once($phpmailerClass);
 include("phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
}else{
 $result['error'] = "<br>Error : Fichier $phpmailerClass non trouvé ! ";
 return $result;
}
//-------------------------------------------------------------------------------//

try{
//Objet Mail
$mail  = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug  = 1;      // enables SMTP debug information (for testing)
                            // 1 = errors and messages
                            // 2 = messages only
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';

//*************** AUTHENTIFICATION AU SMTP *****************************//                      
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth   = true;       // enable SMTP authentication
$mail->Host       = $host; 		// sets the SMTP server
$mail->Port       = $port;      // set the SMTP port for the MAIL server
$mail->Username   = $user; 		// SMTP account username
$mail->Password   = $password;  // SMTP account password
//***********************************************************************//
 
$mail->SetFrom($fromMail, $fromName);
$mail->AddReplyTo($replytoMail,$replytoName);
$mail->Subject    = $sujet;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$mail->AddAddress($to);
if(!$mail->Send()){
  $result['error'] = "Mailer Error: " . $mail->ErrorInfo; 
  $result['status'] = false;
  }else{
 $result['error'] = false;
 $result['status'] = true;
}

} catch (Exception $e) {
    $result['error'] = '<br>Exception reçue : ' . $e->getMessage(). "\n";
	$result['status'] = false;
}
return $result;
}



//-------- debut du script -------------------//
echo "<br>" . date('Y-m-d H:i:s') . " Debut du script ";
	$destinataire = "uneadresse@toto.com";
	$sujet = "ceci est un mail test";
	$message = " Youpii.. ça marche ...";
	print_r( sendMail($destinataire,$sujet,$message));
echo "<br>" . date('Y-m-d H:i:s') . " Fin du script ";


?>


0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
Modifié par djstoun le 16/03/2015 à 22:33
Sur la page cela m'affiche : 2015-03-16 22:24:09 Debut du script

Et toujours pas de mail reçu sur la nouvelle boite mail. J'ai essayé en changeant le port à 25 et 465.


<?php
// AFFICHAGE DES ERREURS:
ini_set('display_errors', '1');
error_reporting(E_ALL);

function sendMail($to,$sujet,$body,$pj=NULL){

//***** VARIABLES *****//

$user = "pourquivoter@gmail.com";
$password ="*****";
$fromMail = "pourquivoter@gmail.com";
$fromName = "Moi";
$replytoMail = "pourquivoter@gmail.com";
$replytoName = "Moi";

// Parametres SMTP
$host = 'smtp.gmail.com';
$port = 587;
//---------------------//
$result=array();
//Include des class :
$phpmailerClass = "phpmailer/class.phpmailer.php";
if(file_exists($phpmailerClass)){
 require_once($phpmailerClass);
 include("phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
}else{
 $result['error'] = "<br>Error : Fichier $phpmailerClass non trouvé ! ";
 return $result;
}
//-------------------------------------------------------------------------------//

try{
//Objet Mail
$mail  = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug  = 1;      // enables SMTP debug information (for testing)
                            // 1 = errors and messages
                            // 2 = messages only
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';

//*************** AUTHENTIFICATION AU SMTP *****************************//                      
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth   = true;       // enable SMTP authentication
$mail->Host       = $host;   // sets the SMTP server
$mail->Port       = $port;      // set the SMTP port for the MAIL server
$mail->Username   = $user;   // SMTP account username
$mail->Password   = $password;  // SMTP account password
//***********************************************************************//
 
$mail->SetFrom($fromMail, $fromName);
$mail->AddReplyTo($replytoMail,$replytoName);
$mail->Subject    = $sujet;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$mail->AddAddress($to);
if(!$mail->Send()){
  $result['error'] = "Mailer Error: " . $mail->ErrorInfo; 
  $result['status'] = false;
  }else{
 $result['error'] = false;
 $result['status'] = true;
}

} catch (Exception $e) {
    $result['error'] = '<br>Exception reçue : ' . $e->getMessage(). "\n";
 $result['status'] = false;
}
return $result;
}



//-------- debut du script -------------------//
echo "<br>" . date('Y-m-d H:i:s') . " Debut du script ";
 $destinataire = "pourquivoter@gmail.com";
 $sujet = "ceci est un mail test";
 $message = " Youpii.. ça marche ...";
 print_r( sendMail($destinataire,$sujet,$message));
echo "<br>" . date('Y-m-d H:i:s') . " Fin du script ";


?>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
16 mars 2015 à 22:31
C'est quoi ton hebergeur ??
tu peux tester ce code en local sur ton pc?
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
Modifié par djstoun le 17/03/2015 à 11:48
C'est Olympe.

Tu veux dire par Wampserver ? Je teste.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
17 mars 2015 à 11:57
Oui
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
17 mars 2015 à 12:22
En local je reçois le message :
2015-03-17 11:19:17 Debut du script

Et toujours pas de mail reçu (mais je pense qu'en étant en local c'est normal ?)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
17 mars 2015 à 15:01
Il semble qu'il y ai un souci de connexion au SMTP de google....
bizarre....

TU peux tester ça :
<?php
// AFFICHAGE DES ERREURS:
ini_set('display_errors', '1');
error_reporting(E_ALL);

function testCnx($host,$port){
try{
    $checkconn = fsockopen($host, $port, $errno, $errstr, 10);
    if(!$checkconn){
        echo "<br>($errno) $errstr";
				$result=false;
    } else {
        echo 'ok';
				$result=true;
    }
} catch (Exception $e) {
  echo $e->getMessage();
	echo "<br>($errno) $errstr";
  $result=false;	
}

 return $result;
}

function sendMail($to,$sujet,$body,$pj=NULL){
//***** VARIABLES *****//
//Include des class :
$phpmailerClass = "phpmailer/class.phpmailer.php";
require_once($phpmailerClass);
include("phpmailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$user = "monemail@gmail.com";
$password ="*****";
$fromMail = "monemail@gmail.com";
$fromName = "Moi";
$replytoMail = "monemail@gmail.com";
$replytoName = "Moi";

// Parametres SMTP
$host = 'smtp.gmail.com';
$port = 587;
//---------------------//
$result=array();
if(!testCnx($host,$port)){
 exit();
}

//-------------------------------------------------------------------------------//

try{
//Objet Mail
$mail  = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug  = 1;      // enables SMTP debug information (for testing)
                            // 1 = errors and messages
                            // 2 = messages only
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';

//*************** AUTHENTIFICATION AU SMTP *****************************//                      
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth   = true;       // enable SMTP authentication
$mail->Host       = $host; 		// sets the SMTP server
$mail->Port       = $port;      // set the SMTP port for the MAIL server
$mail->Username   = $user; 		// SMTP account username
$mail->Password   = $password;  // SMTP account password
//***********************************************************************//
 $mail->WordWrap    = 900;
 $mail->ContentType = 'text/html; charset=utf-8\r\n';
 $mail->CharSet     = 'UTF-8';
 $mail->Encoding    = '8bit';
$mail->SetFrom($fromMail, $fromName);
$mail->AddReplyTo($replytoMail,$replytoName);
$mail->Subject    = $sujet;
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$mail->AddAddress($to);
if(!$mail->Send()) {
		$result[] = 'Mail error: '.$mail->ErrorInfo;
	} else {
	  echo "<br>".date('Y-m-d'). " Mail envoyé OK";
		$result[] = true;
	}
	
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}
$mail->SmtpClose();
return $result;
}



//-------- debut du script -------------------//
echo "<br>" . date('Y-m-d H:i:s') . " Debut du script ";
	$destinataire = "jordane.reynet@atos.net";
	$sujet = "ceci est un mail test";
	$message = " Youpii.. ça marche ...";
	print_r(sendMail($destinataire,$sujet,$message));
echo "<br>" . date('Y-m-d H:i:s') . " Fin du script ";


?>

0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
18 mars 2015 à 11:25
Mon hébergeur a un gros souci en ce moment. Je ne peux plus envoyer de pages (j'espère que cela va se résoudre dans la journée).
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
18 mars 2015 à 11:35
j'ai retesté le script ...
Il fonctionne très bien (en local chez moi) .. mais ne passe pas lorsque je suis au travail car le port est bloqué !
Si ça se trouve... ton problème ...c'est juste une question de port bloqué..... (par le FireWall ou le routeur ou le proxy par exemple). Mais dans ce cas... je n'ai aucune solution pour contourner le problème.
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
23 mars 2015 à 13:57
Alors j'ai pu enfin retransférer la page sur mon FTP. J'ai eu ce message, à toi de me dire, si y a moyen de résoudre ou pas :

"
2015-03-23 13:55:29 Debut du script okSMTP -> ERROR: EHLO not accepted from server:
SMTP -> ERROR: HELO not accepted from server:
SMTP -> NOTICE: EOF caught while checking if connectedLanguage string failed to load: tls
Array ( )
2015-03-23 13:55:55 Fin du script"
0
djstoun Messages postés 291 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 26 mai 2023 5
23 mars 2015 à 16:59
Youpi !

J'ai en fait cette fois-ci paramétrer sur une adresse hotmail et cela fonctionne ! Merci à toi Jordane45. Maintenant, je vais essayer d'arriver à mes fins avec cette utilisation de Phpmailer. (peut-être que j'aurais de nouveau besoin de tes conseils du coup.)^^

Voici le code hotmail qui fonctionne, pour ceux qui s'arrachent les cheveux.
require "phpmailer/class.phpmailer.php"; 
    $mail = new PHPmailer(); 
    $mail->IsSMTP(); 
    $mail->IsHTML(true); 
    $mail->Host='smtp.live.com';  //aussi essayé smtp.mondomaine.com
    $mail->Port=587;
    $mail->Username = 'yourmail@hotmail.com';      // SMTP login
    $mail->Password = '*******';        // SMTP password
    $mail->SMTPAuth = true;      // Active l'uthentification par smtp
    $mail->SMTPSecure = 'tls';
    $mail->From='yourmail@hotmail.com'; 
    $mail->AddAddress('yourmail@hotmail.com'); 
    $mail->AddReplyTo('yourmail@hotmail.com');      
    $mail->Subject='Exemple trouvé sur DVP'; 
    $mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}'; 
    $mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>'; 
    $mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>'; 
    $mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>'; 
 
    if(!$mail->Send()){ //Teste si le return code est ok. 
        echo $mail->ErrorInfo; //Affiche le message d'erreur
        } 
    else{      
        echo 'Mail envoyé avec succès'; 
    } 
    $mail->SmtpClose(); 
    unset($mail); 
0