Genki Posté(e) le 5 juin Posté(e) le 5 juin Bonjour à tous. Je développe un petit site perso sur mon NAS et je souhaite utiliser la fonction mail() pour envoyer un mail de confirmation. Je suis sur DSM 7.2.2, et PHP 8.0 J'ai bien configuré les notifications via SMTP Outlook 365 et je reçois bien le mail test du NAS. J'ai également configuré le php.ini avec les infos SMTP (car même avec les notifications, le phpinfo() ne m'affichait pas les bonnes informations Concernant mon code php, le voici : $mail = $_POST['mail']; $objet = "Bonjour"; $message = "Salut à tous !"; $headers = "From: Xxxx <xxxxxxx@hotmail.com>\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=utf-8\r\n"; $headers .= "Return-Path: xxxxx@hotmail.com\r\n"; $headers .= "X-Mailer: PHP/" . phpversion(); if (mail($mail,$objet,$message,$headers)) { echo "Le mail a été envoyé."; } else { echo "Le mail n'a pas pu être envoyé."; } À chaque exécution du code, j'ai donc en retour "Le mail n'a pas pu être envoyé." et j'ai beau vérifier ma messagerie et mes spams, aucun signe du message. Auriez-vous une idée de ce qui cloche ? Je vous remercie d'avance pour votre aide. 0 Citer
DaffY Posté(e) le 6 juin Posté(e) le 6 juin Bonjour Le mieux est d'utiliser phpmailer c'est garanti 100%Via composer c'est simple d'utilisation http:// https://github.com/PHPMailer/PHPMailer 0 Citer
Genki Posté(e) le 6 juin Auteur Posté(e) le 6 juin Bonsoir et merci. Je vais essayer de tester PHPMailer ce week-end. J'ai fait d'autres tentatives depuis, en installant notamment Mail Server sur mon synology, je n'ai plus de message d'erreur sur le script PHP, donc le mail s'envoie, mais aucune réception. Dans les logs de Mail Server ça me dit "sasl authentication failed; server smpt office365 com authentification unsuccessful" C'est à s'arracher les cheveux 😅 0 Citer
Genki Posté(e) le 8 juin Auteur Posté(e) le 8 juin (modifié) Bonjour, j'ai donc installé PHPMailer et ça ne fonctionnait toujours pas. J'ai fini par changer pour le SMTP gmail et ça fonctionne enfin. Il y avait toujours ce même problème d'authentification avec le SMTP d'Outlook... Par contre, malgré le fait que mes headers soient formatés, mon mail tombe toujours dans les spams... Une idée pour résoudre ce problème ? Voici mon code d'envoie try { //Server settings //$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output $mail->isSMTP(); //Send using SMTP $mail->Host = 'smtp.gmail.com'; //Set the SMTP server to send through $mail->SMTPAuth = true; //Enable SMTP authentication $mail->Username = 'xxxxxxx@gmail.com'; //SMTP username $mail->Password = 'xxxxxxxx'; //SMTP password $mail->SMTPSecure = 'ssl';//PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption $mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` //To load the French version $mail->setLanguage('fr', '/PHPMailer/language/phpmailer.lang-fr.php'); //Recipients $mail->setFrom('xxxxxx@gmail.com', 'xxxxx'); $mail->addReplyTo('xxxxxxx@gmail.com'); $mail->addAddress($maildest); //Name is optional //headers $mail->CharSet = 'utf-8'; $mail->addCustomHeader('MIME-Version: 1.0'); //$mail->addCustomHeader('Content-type: text/html; charset=utf-8'); $mail->addCustomHeader('X-Mailer: PHP/' . phpversion()); //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = "Coucou !"; $mail->Body = "Hello !"; //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); ?> <div style="text-align:center;margin:10px">Le mail a été envoyé.<div> <?php } catch (Exception $e) { ?> <div style="text-align:center;margin:10px">Le mail n'a pas pu être envoyé.<br><?php echo $mail->ErrorInfo;?><div> <?php } Merci d'avance. EDIT, j'ai fait au passage un test sur mail tester et j'obtiens pourtant une note de 10/10 Modifié le 8 juin par Genki 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.