Warning : mail() : Échec de la connexion au serveur de messagerie.

Résolu/Fermé
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 15 oct. 2021 à 09:40
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 15 oct. 2021 à 12:06
Bonjour,
Toujours dans la cadre de la migration à PHP 8, un nouveau message d'erreur apparait ligne 136 concernant un autre fichier que voici:

Voici le fichier dans son intégralité:
<?php
//session_start( );
 
// get required scripts
require_once 'config.inc.php';
//echo $msgTo;
//print_r(array($msgTo));
function webchessMail($type, $msgTo, $move, $opponent, $game_id)
{
    //print_r(array($type, $msgTo, $move, $opponent, $game_id));
	global $CFG_MAILADDRESS, $CFG_MAINPAGE, $CFG_USEEMAIL;

	// make sure we can use email - assurez-vous que nous pouvons utiliser le courrier électronique
	if ( ! $CFG_USEEMAIL)
	{
		return false;
	}

	// make sure there's an email address given - assurez-vous qu'il y a une adresse e-mail donnée
	if ('' == $msgTo && ! DEBUG)
	{
		return false;
	}
//header('Content-Type: text/plain;charset=iso-8859-1');
//header("Content-Type: text/plain;charset= 'utf-8'");
@$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; 

	// default subject header prefix
	$subject = 'CheckMate: ';
	// load specific message and subject
	switch($type)
	{
		case 'test':
			$subject .= 'Test Message';
			$message = "Félicitations !!\n"
							 . "Si vous voyez ce message, c'est que vous avez réglé avec succès votre notification par email !\n"
							 . "Maintenant, allez à {$CFG_MAINPAGE} pour jouer aux échecs !\n";
			break;
//------------------------------------------------------------------------------
		case 'invitation':
			$subject .= "{$opponent} vous a invite pour jouer une nouvelle partie";
			$message = $opponent." vous a invite pour jouer une nouvelle partie.\n"
							 . "Allez sur {$CFG_MAINPAGE} pour accepter ou decliner cette invitation.\n";
							 //print_r(array($type, $msgTo, $move, $opponent, $game_id));$type =invitation  $msgTo =fjep-villers@laposte.fr $opponent =April
			break;
//------------------------------------------------------------------------------
		case 'withdrawal':
			$subject .= 'Invitation annulee';
			$message = "Votre adversaire, {$opponent} a annule son invitation pour jouer une nouvelle partie.\n"
							 . "Allez sur {$CFG_MAINPAGE} pour inviter un joueur, ou poursuivre une partie.\n";
			break;
//------------------------------------------------------------------------------
//print_r(array($type, $msgTo, $move, $opponent, $game_id));
		case 'resignation':
			$subject .= "{$opponent} a abandonne la partie {$game_id}.";
			$message = "Votre adversaire, {$opponent} abandonne la partie {$game_id}.\n\n"
							 . "Allez sur {$CFG_MAINPAGE} pour commencer une nouvelle partie.\n";
			break;
//------------------------------------------------------------------------------
		case 'move':
			$subject .= "{$opponent}  joue {$move} dans la partie {$game_id}.";
			$message = "Votre adversaire, {$opponent}  joue le coup :\n"
							 . "{$move}\n\n"
							 . "C'est a vous de jouer\n"
							 . "Allez sur {$CFG_MAINPAGE} pour jouer.\n";
			break;
//------------------------------------------------------------------------------
		case 'accepted':
			$subject .= 'Invitation acceptee';
			$message = $opponent."  accepte votre invitation pour jouer une nouvelle partie.\n"
							 . "Allez sur {$CFG_MAINPAGE} pour jouer.\n";
			break;
//------------------------------------------------------------------------------
		case 'declined':
			$subject .= 'Invitation déclinee';
			$message = $opponent."  decline votre invitation pour jouer une nouvelle partie.\n"
							 . "Allez sur {$CFG_MAINPAGE} pour annuler votre invitation.\n";
			break;
//------------------------------------------------------------------------------
		case 'deletewarning':
			$subject .= 'Alerte d\'effacement de partie';
			$message = "Votre partie ({$game_id}) va être bientôt effacee.\n"
							 . "Allez sur {$CFG_MAINPAGE} pour la revoir.\n";
			break;
//------------------------------------------------------------------------------
		case 'passupdate':
			$subject .= 'Notification de remise à jour de votre mot de passe!!';
			$message = "Votre mot de passe pour CheckMate est .\n"
							 . "Votre nouveau de passe est remise à jour.\n\n"
							 . "Allez sur {$CFG_MAINPAGE} pour vous connecter maintenant, selectionnez 'personel' dans le menu,\n"
							 . "et changez votre mot de passe pour quelque chose de plus sécurisé.\n";
			break;
//------------------------------------------------------------------------------
		case 'wakeup':
			$subject .= 'Fonction Rappel';
			$message = "Votre adversaire, {$opponent} vous adresse  un e-mail de rappel.\n"
							 . "C'est a votre tour de jouer dans la partie #{$game_id}.\n\n"
							 . "Allez sur {$CFG_MAINPAGE} pour jouer.\n";
							
							
			break;
//------------------------------------------------------------------------------
		case 'checkmate':
			$subject .= 'Echec et mat !';
			$message = "Votre adversaire, {$opponent} vous a mis echec et mat.\n"
							 . "Vous aurez plus de chance la prochaine fois.\n\n"
							 . "Allez sur {$CFG_MAINPAGE} pour commencer une nouvelle partie.\n";
			break;
		// ToDo: mailmsgundorequest.php ??
	}
//header('Content-Type: text/html;charset= utf-8');
//header('Content-Type: text/html;charset=iso-8859-1');

	$message .= "\n\n----------------------------------------------\n"
						. "Ce message est envoye automatiquement\n"
						. 'par CheckMate et ne requiert pas de reponse.';

//$headers = "From: CheckMate <{$CFG_MAILADDRESS}>\r\n";
	// Some MTAs may require for you to uncomment the following line. Do so if mail notification doesn't work
	//$headers = "To: {$msgTo}\r\n" . $headers;
  //$headers = "From: checkmate <{$msgTo}>\r\n" . $headers;
  
	call('---MAIL---');
	call($msgTo);
	call($subject);
	call($message);
	call($headers);
/***************************************************************/
//print_r(array($type, $msgTo, $move, $opponent, $game_id));
//$recipient=($_SESSION['opponent']['p_email']); //envoi à l'adversaire une info.-receveur A ($_SESSION['opponent']['p_email'])
$sender = 'xxxxxx@xxxxxxxx.fr';//e-mail expéditeur De.. Permet de recevoir les messages.
$headers = 'From:' . $sender;//$headers = 'From:' . $sender;

/*****************************************************************/
	//return mail($recipient,$subject,$message,$headers);
	return mail($msgTo,$subject,$message,$headers);
}


Pourriez vous m'orienter à résoudre ce problème?
Merci.


Configuration: Windows / Firefox 93.0

2 réponses

jordane45 Messages postés 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 4 689
15 oct. 2021 à 09:52
Bonjour,
Ce n'est pas un souci lié à la version de php.

Le message d'erreur indique que la fonction "mail" n'arrive pas à se connecter au serveur (serveur d'envoi de mails.. )
Vu que tu bosses en local avec un WAMP.. c'est normal.
Soit tu installes fake sendmail, soit tu paramères ton wamp en renseignant un smtp valide (celui de ton fournisseur internet par exemple)
Soit tu changes la fonction mail par l'utilisation de la class phpMailer et en utilisant une boite mail ( gmail par exemple) pour générer ton envoi de mails.

Tu trouveras des exemples de tout ça ici :
https://www.google.com/search?q=wamp+fakesendmail

.

0
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024
15 oct. 2021 à 12:06
Lorsque toutes les erreurs importantes seront éliminées, et par conséquent résolues, j' installerai fake sendmail avec je l'espère la bonne configuration. Car pour les personnes ayant mal configuré le fichier ini de Wamp, celui ci ne redémarre plus parfois.
Ainsi je préfère rester prudent en sachant que ce fichier (webchessmail.inc.php) fonctionnera sur mon serveur distant.
Je garde donc tes informations précieusement pour plus tard.
Et te remercie bien pour toute l'aide que tu m'apportes.
Sujet résolu pour moi.
Cordialement.
0