Fonction Mail()

Résolu/Fermé
Tanaka - Modifié par Tanaka le 31/08/2014 à 01:30
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 1 sept. 2014 à 12:19
Bonjour !

J'ai un souci avec ma newsletter... Je ne reçois pas les mail que je m'envoie avec la fonction php mail();

Voici mon code :

if($statut === "tentativeAbonnement") {

$objet = '['.$date.'] ['.$heure.'] Tentative d\'abonnement à la newletter !';

$headers = "MIME-Version: 1.0" . PHP_EOL
. 'Content-type: text/plain; charset=utf-8' . PHP_EOL
. 'From: Moi <***@***>' . PHP_EOL
. 'Reply-To: XXXXX <***@***>' . PHP_EOL
. 'Subject: {'.$objet.'}' . PHP_EOL
. 'X-Mailer: PHP/' . phpversion();

$mail = 'Email : ' . $emailClient . PHP_EOL
. 'Token : ' . $tokenClient . PHP_EOL . PHP_EOL
. 'Informations Complémentaires : ' . PHP_EOL
. 'X-Mailer: PHP/' . phpversion() . PHP_EOL
. 'User Agent : ' . $_SERVER['HTTP_USER_AGENT'] . PHP_EOL
. 'Adresse IP : ' . $_SERVER['REMOTE_ADDR']. ':' . $_SERVER['REMOTE_PORT']
. PHP_EOL ;
}

$adresseEmail = '***@***' ;
mail($adresseEmail, $objet, $mail, $headers);

Lorsque je fais un var_dump de ce que me renvoie la fonction mail, j'obtient un "bool(true)"...
Je suis chez OVH pour l'hébergement de mon site, et j'ai essayé d'envoyer ce mail sur plusieurs boites, gmail, orange, hotmail, serveur mail pro...etc...

A n'y rien comprendre... Merci pour votre aide !

A voir également:

1 réponse

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
31 août 2014 à 10:09
Bonjour,
Pour commencer, essaye un mail() tout simple, sans header ni variable pour tester la fonction en elle-même.

Sinon, tu peut essayer de remplacer tes php_eol par des "\r\n"
1
BOOYAAAAAAHHH. C'était les \r\n... Merci petit ange de l'internet :3
0
Autant pour moi, c'était mes entetes qui n'étaient pas correct.... Y'a quelque chose dans les entetes qui te fait tilter ? Une erreur de ma part ?
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
31 août 2014 à 16:05
Enlève l'entête subject, elle ne sert à rien de toute façon, vu qu'il y a un champ dans la fonction mail pour ça.
SI ce n'est pas ça qui pose problème, retire-les une à une, en testant à chaque fois.
Tu verra ainsi ce qui fait planter le mail.
0
Ca y est... C'était le champ Object: {} qui faisais planter le mail... Toutes les autres lignes fonctionnent dans l'entête !
J'ai rajouté un $mail = wordwrap($temp, 70, PHP_EOL); pour hacher les chaines de caractères en 70 caractères pour coller à la RFC.

Merci pour ton aide !
0
Par contre, dans les mail reçu, si j'utilise thunderbird, les entêtes sont correct (repondre à : en provenence de... etc), mais sur gmail et hotmail, j'obtient ça : from : XXX (arobase) 20gp.ovh.net
Sans rien d'autre... Pourtant, je sais qu'il lit bien les entête, vu que les caractères (à é) qui ne fonctionnait pas avant fonctionne maintenant avec la ligne 'Content-type: text/html; charset=utf-8'

Une idée ?
0