Problème d'envoie d'un mail avec pièce ci-joint.
FerméMax747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 23 nov. 2022 à 12:22
- Problème d'envoie d'un mail avec pièce ci-joint.
- Problème yahoo mail - Guide
- Publipostage mail - Guide
- 1 pièce jointe - Guide
- Problème mail orange aujourd'hui 2023 - Guide
- Creer un compte mail - Guide
2 réponses
Modifié le 22 nov. 2022 à 16:06
Bonjour,
Ton source chez moi en local retourne l'erreur
Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
très classique, la fonction recherche un serveur de messagerie SMTP en local. Il faut renseigner dans le php.ini le smtp et le sendmail_from, on peut aussi le faire directement depuis le source. Mais il faut que ton environnement, et ton fai l'accepte un smtp de base, port 25, sinon il faut gérer des mails authentifiés avec compte/mot de passe.
Je suis chez Free, et sur ma FreeBox j'ai autorisé l'envoi par tout le monde de mail non controlé :-/
Aussi un simple
<?php ini_set('SMTP','smtp.free.fr'); ini_set('SENDMAIL_FROM','xxxxxxxxxx@free.fr'); if(mail('xxxxxxxxx@free.fr', 'sujet', 'message','From: Fred@gmail.com')) echo "Mail envoyé avec succès."; else echo "Un problème est survenu."; exit; ?>
permet d'envoyer un mail. Les 2 lignes ini_set remplaçant l'initialisation dans le php.ini. Sur un hébergement à l'exterieur pareil il faut initialiser le php.ini et il faut un serveur de messagerie utilisable.
J'ai essayé d'intégrer les ini_set dans ton source, sans succès, je n'ai pas vraiment cherché pourquoi, tu devrais rechercher un script de formulaire mail php, il en existe de nombreux opérationnels.
23 nov. 2022 à 12:22
Peut être remplacer cette ligne:
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
par celle ci:
$headers .= "Content-type:text/plain;charset=UTF-8" . "\r\n";
Sans grande conviction.
Car le problème produit certainement à cause d'un dysfonctionnement extérieur à votre script.
22 nov. 2022 à 17:01
je viens de tester, on peut se passer du sendmail_from