Citation
Extrait de Php.ini
[mail function]
; For Win32 only.
; [php.net]
SMTP = smtp.live.com
; [php.net]
smtp_port = 587
; For Win32 only.
; [php.net]
sendmail_from = artemus24@live.fr
; For Unix only. You may supply arguments as well (default: "sendmail -t -i".
; [php.net]
;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
; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =
Citation
mail()
Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first in I:\Mon_Site\Ex_06\Index.php on line 37
if($_SERVER['SERVER_NAME'] != "<nom du serveur local>" ) { //Boucle d'envoi de mail d'origine du forum foreach ($addresses as $recipientname => $recipientemail) { $mail_to = $recipientname." <".$recipientemail.">"; $mail_subject = pun_htmlspecialchars($_POST['message_subject']); $mail_message = pun_htmlspecialchars($_POST['message_body']); pun_mail($mail_to, $mail_subject, $mail_message); } } else {// Envoi SMTP VIA PHPmailer en local $output = ($smtp_essais) ? "<b>Simulation de l'envoi</b>\n" : ""; //$smtp_essais = true; //true pour affichage sans envois $subject = $_POST['message_subject']; $message = $_POST['message_body']; require_once('class.phpmailer.php'); //Nettoyage du message $subject = trim(preg_replace('#[\n\r]+#s', '', $subject)); // CRLF à chaque fin de ligne et suppression des octets null $message = str_replace(array("\n","\0","'","`" ), array("\r\n",'',"'","'" ), pun_linebreaks($message)); // Remplacement d'un point (.) en début de ligne par deux points (..) $message = str_replace("\r\n.", "\r\n..", $message); $message = (substr($message,0,1) == '.' ? '.'.$message : $message); error_reporting(E_STRICT); date_default_timezone_set('Europe/Paris'); //Scindée par groupe de 20 destinataires en BCC $num_BCC = 20; $count_add = 0; $num_bcl = 1; reset($addresses); while ($count_add < $usercount) { $mail = new PHPMailer(); $mail->SetLanguage('fr'); $mail->IsSMTP(); $mail->IsHTML = false; $mail->SMTPDebug = false; $mail->SMTPAuth = true; $mail->Host = "auth.smtp.1and1.fr"; //SMTP authentifié 1and1 $mail->Port = 587; $mail->CharSet = "utf-8"; $mail->Username = "<nom utilisateur>"; $mail->Password = "<mot de passe d'authentification>"; $mail->From = "<Adresse expéditeur>"; $mail->FromName = "<Nom Expéditeur>"; //Caractéristiques du message $mail->Subject = $subject; $mail->Body = $message; //Admin en destinataire $mail->AddAddress("<adresse administrateur>", "Administrateur du Forum" ); //Autres destinataires en BCC $count_bcl=0; while($count_bcl < $num_BCC) { list($recipientname,$recipientemail) = each($addresses); if ($recipientemail != $pun_config['o_admin_email'] AND $recipientemail != $pun_config['o_mailing_list']) { if($smtp_essais) $output .= "<p>".$count_add." : ".$recipientname." - ".$recipientemail."</p>\n"; $mail->AddBCC($recipientemail,$recipientname); $count_bcl++; } $count_add++; if($count_add >= $usercount) break; } if(!$smtp_essais) { if(!$mail->Send()) $output .= "Erreur d'envoi boucle n°".$num_bcl.": ".$mail->ErrorInfo; else $output .= "<p> PHPMailer : Boucle BCC n°".$num_bcl." - ".$count_bcl." destinataires - envoyés </p>\n"; } else $output .= "<p> <b>PHPMailer test : Boucle BCC n°".$num_bcl." - ".$count_bcl." destinataires - envoyés </b></p>\n"; $num_bcl++; $mail->SmtpClose(); }//Boucle while pour groupes de 20 }//Fin envoi SMTP PHPMailer
$mail->SMTPAuth = true;dans la configuration (Voir contribution précédente).
get_lines(): $str is "220 auth.smtp.1and1.fr (mreu3) Welcome to Nemesis ESMTP server " FROM SERVER:220 auth.smtp.1and1.fr (mreu3) Welcome to Nemesis ESMTP server get_lines(): $str is "250-auth.smtp.1and1.fr " get_lines(): $str is "250-STARTTLS " get_lines(): $data is "250-auth.smtp.1and1.fr 250-STARTTLS " get_lines(): $str is "250-AUTH LOGIN PLAIN " get_lines(): $data is "250-auth.smtp.1and1.fr 250-STARTTLS 250-AUTH LOGIN PLAIN " get_lines(): $str is "250-AUTH=LOGIN PLAIN " get_lines(): $data is "250-auth.smtp.1and1.fr 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN " get_lines(): $str is "250-SIZE 120000000 " get_lines(): $data is "250-auth.smtp.1and1.fr 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-SIZE 120000000 " get_lines(): $str is "250 HELP " get_lines(): $data is "250-auth.smtp.1and1.fr 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-SIZE 120000000 250 HELP " FROM SERVER: 250-auth.smtp.1and1.fr 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-SIZE 120000000 250 HELP get_lines(): $str is "334 RTxCVtUyyTR6 " (Chaînes codées remplacées) get_lines(): $str is "334 UYvTr5TTyEQ6 " get_lines(): $str is "235 Authentication successful "
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";et du coup, je n'ai plus mon message d'anomalie.
Citation
Bonjour,
Ce message concernant les mails des utilisateurs de Homail et Msn, peut ne pas leur arriver !
Suites à de nombreux tests nous avons constaté que des mails étaient mis en courrier indésirable voir carrément perdu. Les domaines concernés sont hotmail.com, hotmail.fr, msn.com. Après recherche, nous avons acquis la certitude que les serveurs de Hotmail
sont responsables de la perte quotidienne d'un nombre indéterminé de courriels. Les responsables de MSN France ont confirmé que ces "dysfonctionnements" étaient causés sciemment par leur politique anti-spam.
Qui est concerné ?
Toutes les personnes ayant une adresse email chez Hotmail, ou écrivant un courriel vers un utilisateur de Hotmail (forward à partir de votre compte vers une adresse hotmail ), sont concernés : leur courrier est automatiquement délivré dans le dossier "courrier indésirable" de leur compte Hotmail. Or le contenu de ce dossier est effacé rapidement (5 jours ), dans le dos des utilisateurs et sans les en avertir. Il existe bien des possibilités de contournement qui sont proposées aux grands fournisseurs d'accès moyennant finance, mais leur coût excède largement nos moyens.
Que faire ?
Vous pouvez aller consulter très régulièrement votre dossier "courrier indésirable" et ouvrir le mail désiré, puis mettre l'option appropriée soit "courrier autorisé". Vous devez faire la même démarche si le mail vient d'une liste de diffusion, en précisant bien que c'est une liste de diffusion.
Sinon, il vous faut baisser le niveau de filtrage de courrier indésirable : celui qui est activé n'est pas adapté à votre cas. Affichez les Options du service puis cliquez sur Filtre Courrier indésirable. Cochez dans la page qui s'affiche, l'option "Bas - le courrier indésirable évident est intercepté".
A noter que plusieurs organismes, tels que Ecole polytechnique conseille aux utilisateurs qui utilisent Hotmail et Msn, de changer de service de mail pour utiliser des services tels laposte.net, freesurf.fr ou encore free.fr. Vu la politique anti-spam actuelle de Microsoft, <mon lieu d'études> ne peut plus garantir le trafic d'email à destination de ce fournisseur.
Microsoft a annoncé que ses serveurs refuseraient tout courriel n'utilisant pas la technologie Sender ID qu'il a brevetée. Les prestataires de redirection de courrier et les prestataires de listes de diffusion en seront affectés : ils ne pourront pas se conformer à cette technologie car les brevets qui la protègent empêchent son implémentation dans les logiciels libres.
Cordialement,
<le service informatique>
Citation
<!doctype html>
<html lang="fr">
<head>
<!-- ------------ -->
<!-- balises Meta -->
<!-- ------------ -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test PHPMailer() !</title>
<!-- ----------------------------- -->
<!-- Scripts et Feuilles de Styles -->
<!-- ----------------------------- -->
<link rel="stylesheet" type="text/css" href="Styles.css" />
<!-- -------------------------------------- -->
<!-- Envoi d'un message MAIL avec PHPMailer -->
<!-- -------------------------------------- -->
<?php
error_reporting(E_ALL);
date_default_timezone_set('Europe/Paris');
require_once("../PHPMailer/class.phpmailer.php"
require_once("../PHPMailer/class.smtp.php"
require_once("../PHPMailer/class.pop3.php"
/*--------------------------*/
/* Utilisation de PHPMailer */
/*--------------------------*/
$mail = new PHPMailer();
$mail->SetLanguage('fr');
$mail->IsSMTP();
$mail->IsHTML = false;
$mail->SMTPDebug = 2;
/*-----------------------------*/
/* Caractéristiques du serveur */
/*-----------------------------*/
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPSecure = "tls";
/*------------------*/
/* Authentification */
/*------------------*/
$mail->SMTPAuth = true;
$mail->Username = "monadresse@gmail.com";
$mail->Password = "mot de passe";
/*-----------------------------*/
/* Caractéristiques du message */
/*-----------------------------*/
$mail->CharSet = "utf-8";
$mail->ContentType = "text/plain";
$mail->Encoding = "8bit";
/*---------------------------*/
/* Expéditeur & Destinataire */
/*---------------------------*/
$mail->SetFrom("monadresse@gmail.com", "moi"
$mail->AddAddress("autreadresse@hotmail.fr", "lui"
/*---------------------------------*/
/* le sujet et le corps du message */
/*---------------------------------*/
$mail->Subject = "On test PHPMailer sur SMTP.GMAIL.COM port 587";
$mail->Body = "Bonjour,\n\nvoici le corps du message.\nMessage envoyé avec PHPMailer";
?>
</head>
<body>
<div id="bloc">
<?php
/*--------------------------*/
/* Envoi et test du message */
/*--------------------------*/
if (!$mail->Send()) $mess = "PHPMailer : <span>" . $mail->ErrorInfo . "</span>";
else $mess = "PHPMailer : <span>Le Message a été envoyé !</span>";
$mail->SmtpClose();
unset($mail);
?>
<br /><?php echo $mess ?>
</div>
</body>
</html>
Citation
SMTP -> FROM SERVER:220 mx.google.com ESMTP fq10sm4964770wib.11
SMTP -> FROM SERVER: 250-mx.google.com at your service, [XX.XX.XX.XX] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250 ENHANCEDSTATUSCODES
SMTP -> FROM SERVER:220 2.0.0 Ready to start TLS
( ! ) Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in I:\mon-site\PHPMailer\class.smtp.php on line 200
Call Stack
# Time Memory Function Location
1 0.0008 378208 {main}( ) ..\Index.php:0
2 0.0225 1376200 PHPMailer->Send( ) ..\Index.php:90
3 0.0239 1378592 PHPMailer->PostSend( ) ..\class.phpmailer.php:588
4 0.0240 1378592 PHPMailer->SmtpSend( ) ..\class.phpmailer.php:660
5 0.0241 1378712 PHPMailer->SmtpConnect( ) ..\class.phpmailer.php:797
6 0.3228 1388512 SMTP->StartTLS( ) ..\class.phpmailer.php:895
7 0.3809 1388728 stream_socket_enable_crypto ( ) ..\class.smtp.php:200