[SOLUTION] Mail via fonction PHP mail()

yannouk

WRInaute passionné
Au vu du nombre de personnes demandeuses des bons headers pour envoyer un mail en php qui ne passe pas pour du courrier indesirable, voici le code que j'utilise.

teste dans:
-le webmail de OPERA
-Hotmail
-Gmail
-Yahoo Mail

A noter que le script gere les mails HTML et TEXTE brut. Il choisit automatiquement 1 des 2 messages en fonction de la configuration du webmail du receveur (pour des raisons de compatibilite)

Code:
$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"Votresite.com\" <contact@votresite.com>\n"; 
$headers .= "From: \"Votresite.com\"<contact@votresite.com>\n";
//NOTE: l'adresse email indiquée dans le header From doit etre l'adresse absolue du serveur qui envoie les messages, et peut etre differente de votre adresse de contact si vous etes par exemple sur un serveur dedié partagé. dans mon cas l'adresse specifiee ici est <webusers@mail.nomduserveur.com>
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "destinataire@du.msg";

$subject = "Sujet de mail";

$message_txt  = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "toto";

$message_html  = "<html>\n";
$message_html .= "<body>\n";
$message_html .= "<b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<u>toto</u>";
$message_html .= "</body>\n";
$message_html .= "</html>\n";

$message  = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_txt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_html;
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($destinataire, $subject, $message, $headers);


Voila :) Normalement tout fonctionne faites moi part de vos tentatives.

Au passage, les mails envoyés par wri partent en courrier indesirable sur hotmail...La solution est peut etre ici?
A+++
 

fredsoft

WRInaute discret
Salut

a tester ta solution mais la question n'est pas de faire fonctionner cela avec opera mail ou autre mais que cela soit pas considéré comme du spam par aol wanadoo club internet et autre....

et la nous sommes tous preneur d'une solution
 

Stellvia

WRInaute impliqué
Oui alors la votre sujet m'interesse beaucoup car j'ais de gros probleme avec tiscalie et aol :((((((

Je crois qu'il faudrais vraiment faire une mise au point avec ce probleme de mail() avec php car a mona vis beaucoup de webmaster ( dont moi ) ont des problemes avec ca.
 

yannouk

WRInaute passionné
je pense que le plus restrictif a ce niveau la doit etre hotmail. Et avec eux, ca passe. A mon avis pas de probleme avec les wanadoo et compagnie. Donnez moi votre adresse mail chez un de ces fournisseurs et je vous envoie un mail, on verra bien.
YAN
 

Stellvia

WRInaute impliqué
Qu'est ce qu'il faut garder dans ton script dans le cas ou l'on envois que des mails en texte brute ?

J'ais pas compris a quel endrois il choisis un des 2.
 

fredsoft

WRInaute discret
yannouk a dit:
je pense que le plus restrictif a ce niveau la doit etre hotmail. Et avec eux, ca passe. A mon avis pas de probleme avec les wanadoo et compagnie. Donnez moi votre adresse mail chez un de ces fournisseurs et je vous envoie un mail, on verra bien.
YAN

envoie moi un mail sur webmaster@fredsoftwares.com j'ai un anti spam serveur qui aime pas php !!!
sinon j'ai mis un nos dev sur ton script pour tester je te dirai...
 

yannouk

WRInaute passionné
pour le texte brut, enleve ca:

Code:
$message_html  = "<html><body><b>Salut Alphonse</b><br><br>"; 
$message_html .= "Ca va ?<br>"; 
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>"; 
$message_html .= "A plus<br>"; 
$message_html .= "<u>toto</u>"; 

$message  = "This is a multi-part message in MIME format.\n\n"; 
$message .= "--" . $boundary . "\n"; 
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
$message .= "Content-Transfer-Encoding: quoted-printable\n\n"; 
$message .= $message_txt; 
$message .= "\n\n"; 
$message .= "--" . $boundary . "\n"; 
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
$message .= "Content-Transfer-Encoding: quoted-printable\n\n"; 
$message .= $message_html; 
$message .= "\n\n"; 
$message .= "--" . $boundary . "--\n";

et renomme "message_txt" en "message"
 

Stellvia

WRInaute impliqué
Ok ca donne :

<?php

$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"Votresite.com\" <contact@votresite.com>\n";
$headers .= "From: \"Votresite.com\"<contact@votresite.com>\n";
//NOTE: l'adresse email indiquée dans le header From doit etre l'adresse absolue du serveur qui envoie les messages, et peut etre differente de votre adresse de contact si vous etes par exemple sur un serveur dedié partagé. dans mon cas l'adresse specifiee ici est <webusers@mail.nomduserveur.com>
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "destinataire@du.msg";

$subject = "Sujet de mail";

$message_txt = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "toto";


mail($destinataire, $subject, $message_txt, $headers);

?>

Je test merci

Par contre tu précise qu'il faut utilisé l'adresse absolus du serveur ,ca voudrais dire que pour plus de chance que le mail arrive il ne faut pas donner d'email style webmaster@sddsds.com .

Je suis chez sivit et chez moi c est webusers@sdXXX.sivit.org , faudrais voir si y a pas moyen de changer ca sur le dédié car c'est vraiment moche j'ais peur que les gens efface direct le mail en voyant un expediteur pareil :/
 

Stellvia

WRInaute impliqué
chez moi le mail est bien recu , sujet et headers ok , par contre aucun message apparait c'est bisard ca.
 

Stellvia

WRInaute impliqué
le message apparais quand je supprime

$boundary = "-----=" . md5( uniqid ( rand() ) );

A quoi sert cette ligne ? :/
 

Stellvia

WRInaute impliqué
fredsoft > t'as pas eu de probleme avec le message il apparait ?

Chez moi j'ais rien a moins de supprimer la ligne qui fait un espece de truc aleatoire $boundary = "-----=" . md5( uniqid ( rand() ) );
 

yannouk

WRInaute passionné
ca sert a generer une frontiere dans $message entre le message html et le message texte...
a mon avis, si tu le mets pas, certes ca marche, mais le mail ne pourra pas etre envoyer en txt
 

yannouk

WRInaute passionné
je rectifie ce que g dit j'ai parlé trop vite. toi apparement tu as enlevé la fonction pour envoyer en html...Donc tu as raison d'enlever le $boundary puisque tu n'as aucune frontiere a generer. Ton script semble bel et bien operationnel
 

Stellvia

WRInaute impliqué
oui ok ca marche :)

en fait ca marche autant que mon ancien script pour l'instant.

Le truc c'est qu'il faudrais le tester sur different adresse email , notamment chez les fai ou on peut pas s'inscrire si on est pas chez le fai , genre aol pour le pas le nommer , ou tiscali , wanadoo , etc.


Moi je suis chez le 9 et j'ais deja demandé je connais personne qui a des adresse email chez eux.

C'est la qu'on aurais bien besoin de nos confrere webmaster qui traine sur le forum ;)
 

Stellvia

WRInaute impliqué
j'ais fait passé le message a tout mes amis et personne n'a d'email chez eux !!!!! en meme temps je les comprend parce que etre chez aol lol ....... mais bon quand meme ca craint la :/
 

Stellvia

WRInaute impliqué
c'est vrai , mais bon faudrais pouvoir le testé sur un maximum de fai different.

Faudrais peut etre réecrée un post avec un titre plus explicite du genre : "Aidez-nous a tester un script svp" ou bien : "Besoin d'adresse email chez aol / tiscali / wanadoo etc"

Le probleme c'est que les email du genre laposte ou hotmail on peut les testé , mais les email des fai c'est impossible de le faire tout seul :/
 

broche

Nouveau WRInaute
J'ai juste modifié quelques petites choses:

$headers = "Reply-to: \"Monsite.be\" <news@Monsite.be>\n";
$headers .= "From: \"Monsite.be\"<Monsite@240plan.ovh.net>\n";

$destinataire = "moi@hotmail.com";

Comme je l'ai déjà signalé à Ulysse dans un autre sujet voila ce qu'il se passe....

Mes paramètres hotmail de "Junk E-Mail Protection" sont "Enhanced - most junk e-mail is caught"

Et du coup le mail passe directement dans le junk mail

Mais j'avoue par contre que lorsque je mets les paramètres sont "low"
Le mail est passé sans soucis

Le problème est que à mon avis la plupart des utilisateurs mettent justement cette protection à " Enhanced " donc que faire pour que ça passe
 

Nico5

Nouveau WRInaute
Tests

Merci pour le script, j'ai testé sur hotmail et yahoo.

Mais moi aussi sur hotmail, ça part dans le courrier indésirable en choisissant le filtre 'étendu' au lieu de 'bas'.

Les problèmes se rencontrent parfois avec hotmail, mais toujours avec wanadoo, et skynet.be (pour les belges).
Vous avez d'autres fournisseurs qui bloquent complètement ?
 

broche

Nouveau WRInaute
Suivant les conseils d'un autre forum, j'ai utilisé la classe libmail améliorée

et la ça se passe bien je sais pas si quelqu'un d'autres a déjà essayé

vous pourrez la trouvez ici:

http://www.phpclasses.org/browse/package/1458.html

Pour l'instant j'ai simplement envoyé un petit message texte du style bonjour et il n'est pas tombé dans le "bulk mail"
ce qui était le cas avec les autres classes
 

yannouk

WRInaute passionné
Re: Tests

Nico5 a dit:
Merci pour le script, j'ai testé sur hotmail et yahoo.

Mais moi aussi sur hotmail, ça part dans le courrier indésirable en choisissant le filtre 'étendu' au lieu de 'bas'.

Les problèmes se rencontrent parfois avec hotmail, mais toujours avec wanadoo, et skynet.be (pour les belges).
Vous avez d'autres fournisseurs qui bloquent complètement ?
pour moi ca fonctionne en laissant le filtre de hotmail par defaut. avec un filtre plus exigeant ca ne m'etonne aps et je ne pense pas qu'il y ait de solution fonctionnelle
 

olivieri

WRInaute impliqué
yannouk,
j'utilise ton exemple mais j'ai corrigé certains défauts, tu devrais peut être modifier le modèle de départ:

dans la partie messagehtml:

- il manque le </body></html>

- il manque des \n en fin de lignes pour eviter que le code html ressemble à
<html><body>contenu</body></html>
et plutot qu'il ressemble à:
<html>
<body>
contenu
</body>
</html>

merci pour l'exemple :wink:
 

vincent07200

Nouveau WRInaute
yannouk,

je ne voudrais pas être pointilleux, mais il me semble que tu as oublié de concaténer le début du message_html :

Code:
$message_html  = "<html>\n"; 
$message_html  = "<body>\n"; 
$message_html  = "<b>Salut Alphonse</b><br><br>"; 
$message_html .= "Ca va ?<br>";
devrait être plutôt :
Code:
$message_html  = "<html>\n"; 
$message_html  .= "<body>\n"; 
$message_html  .= "<b>Salut Alphonse</b><br><br>"; 
$message_html  .= "Ca va ?<br>";
En tout cas, merci beaucoup pour cette aide qui m'a été précieuse.
 

moussa1111

Nouveau WRInaute
slt
quelqu'un peut m'aider?
je voudrais afficher le resultat d'une requette sur le serveur par un clic(evenement button)
la requette se fait sur le serveur(php) voici mon code:
fonction.php
<html>
<head></head>
<body><? include("connexion.php");?>
<?
$req1= mysql_query("select code_centrale_p from consommation_P");
while($res1=mysql_fetch_array($req1)){
echo $res1['code_centrale_p'];}
;?>
</body>
</html>
donc je veux appeler cette fonction (pas par include("fonction.php"))sur ma page d'appel mais par le clic d'un button
exemple
<button onClick="fonction.php;" >
si quelqu'un m'aider
 

jeromax

WRInaute impliqué
Ce post parle d'envoi de mail, pas de tarte aux concombres....

Sinon ton problème vient du fait que tu confonds le code serveur du code client. Mais je te conseille de créer un post spécial pour ta question qui n'a rien à faire dans celui là...
 

nihaoma

Nouveau WRInaute
Bonjour à tous,

je me permet de vous poser une petite question concernant la fonction mail() de PHP histoire de voir si c un probleme récurant ou si c lié à mon script ou mon hébergeur.

j'essais d'envouer une sorte de newsletter aux membres de mon site (environs 40 personnes). j'ai donc ecrit un script qui me générer l'email et l'envois via une boucle for. Si je coupe ma boucle et n'envois qu'un seul email, je le recois sans probleme (donc pas considérer comme du spam sur gmail) mais si par exemple j'essais de l'envoyer 5 fois (que ce soit sur une meme adresse ou sur 5 adresses différents - toutes sous gmail), je recois aléatoirement entre 1 ou 3 emails seulement (rarement 4 et jamais 5), est-ce un probleme connu avec la fonction mail() de php ? ou bien est-ce un probleme lié à mon hébergeyr ?

merci pour vos avis

cordialement

NiHaoma
 

herve01

WRInaute discret
J'ai essayé les différentes solutions citées dans les précédents posts mais aucune ne m'a parue vraiment efficace.

Par contre je viens de mettre en place une solution basée sur les sockets et du coup les messages envoyés ne sont plus bloqués ou placés dans le dossier "spam" des FAI. Certes c'est plus complexe à mettre en oeuvre mais ça vaut le coup.

Adieu la fonction mail! 8)
 

e-kiwi

WRInaute accro
nihaoma a dit:
Bonjour à tous,

je me permet de vous poser une petite question concernant la fonction mail() de PHP histoire de voir si c un probleme récurant ou si c lié à mon script ou mon hébergeur.

j'essais d'envouer une sorte de newsletter aux membres de mon site (environs 40 personnes). j'ai donc ecrit un script qui me générer l'email et l'envois via une boucle for. Si je coupe ma boucle et n'envois qu'un seul email, je le recois sans probleme (donc pas considérer comme du spam sur gmail) mais si par exemple j'essais de l'envoyer 5 fois (que ce soit sur une meme adresse ou sur 5 adresses différents - toutes sous gmail), je recois aléatoirement entre 1 ou 3 emails seulement (rarement 4 et jamais 5), est-ce un probleme connu avec la fonction mail() de php ? ou bien est-ce un probleme lié à mon hébergeyr ?

merci pour vos avis

cordialement

NiHaoma

un meme mail identique envoyé au final sur plsuieurs adresses mais qui correspondent toutes à un seul et meme compte pop => (le mail était unique à l'envoi) + (liste des destinataires unique = un seul et meme compte pop) = un seul mail recu
 

Nakago

Nouveau WRInaute
Bonjour tout le monde !

J'ai une page html sur un serveur et je voudrais que son contenu s'affiche dans le corps d'un mail (envoyé avec la fonction mail). J'arrive à envoyer un message simple mais ca je n'arrive pas à le faire. Quelqu'un pourrait-il m'aider ?

Merci
 

Or-Bleu

Nouveau WRInaute
bjr,

ce script marche bien sauf: que pour insérer des img dans l'email html, il faut modifier

Code:
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
par :
Code:
$message .= "Content-Transfer-Encoding: 8bit\n\n";

il y a un autre problème, AOL refuse l'email html, ca envoie un email blanc. (titre du mess, mais sans le corp du mess).

si quelqu'un a trouver comment finter la bétise d'AOL, ca serai cool de le partager.

++ :)
 

yannouk

WRInaute passionné
merci or-bleu pour ta participation...
malheureusement pour aol, mes compétences s'arretent là (j'ai d'ailleurs pas mal galéré pour en arriver déjà a ce résultat :p)
 

Or-Bleu

Nouveau WRInaute
ok,

si quelqu'un arrive à envoyer des emails html via un script automatique accédant aux boites mail d'aol.. qu'il se fasse connaitre plz :)[/img]
 

alien7

Nouveau WRInaute
J'ai un ptit problème avec le script,j'ai dû envoyer au moins 50 email et toujours le même problème.
Mes liens ne marche pas, lorsque je recois un email avec outlook le lien ne fonctionne pas il retire un h du http dans le lien.

Vou sauriez une ptite idée de la cause ?

Merci
 

ChezThierry

WRInaute occasionnel
Or-Bleu a dit:
ok,

si quelqu'un arrive à envoyer des emails html via un script automatique accédant aux boites mail d'aol.. qu'il se fasse connaitre plz :)[/img]

Sans soucis, j'envoi des mails hybrides text+html+attachement avec PHPMailer mais j'ai du demander à mon hebergeur de mettre en place le reverse DNS sur ma machine SMTP sinon aol me retournait les mails en erreur 421 DNSNR.

Depuis, ça fonctionne nickel.
 

alien7

Nouveau WRInaute
UP je n'ai toujours pas trouver la cause a mon probleme.

Y'aurai t il d'autre option dans cette ligne ?
Code:
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

Sinon pour un site pro il est preferable d'envoyer un mail en html ou texte ? par exemple une confirmation d'inscription ?
 

pierre_jean

WRInaute occasionnel
problème

Bonjour,

j'ai utilisé votre fonction mail() , car effectivement avant mes messages passs en spam. Le problème c'est que j'utilise votre astuce dans le cadre d'une recommandation de site, donc l'url de ce dernier apparait dans le corps du mail. Et systématiquement gmail catégorise les nouveaux mails comme spam ... parceque il y a une url à l'intérieur ?
sinon commetn faire?

voilà mon code type :
Code:
<?php
$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"domaine.com\" <contact@domaine.com>\n";
$headers .= "From: \"domaine.com\"<contact@domaine.com>\n";
//NOTE: l'adresse email indiquée dans le header From doit etre l'adresse absolue du serveur qui envoie les messages, et peut etre differente de votre adresse de contact si vous etes par exemple sur un serveur dedié partagé. dans mon cas l'adresse specifiee ici est <webusers@mail.nomduserveur.com>
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "visiteur@domaine.com";

$subject = "Sujet de mail";

$message_txt  = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "regardes mon site";

$message_html  = "<html>\n";
$message_html .= "<body>\n";
$message_html .= "<b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<a href=\"https://www.google.fr\">regardes mon site</a>";
$message_html .= "</body>\n";
$message_html .= "</html>\n";

$message  = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_txt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_html;
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($destinataire, $subject, $message, $headers);
?>

merci d'avance,

Cdlt,

P.J.
 

yannouk

WRInaute passionné
pour ma part aucun probleme avec gmail, je place des liens vers mon site et les mails arrivent!

pour le probleme d'alien7, certaines lettres ou chiffres, nottament en utilisant les variables, se retrouvaient supprimées, a cause du type d'encodage utilisé.

J'ai solutionné en rajoutant ces lignes:

chercher
Code:
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";

ajouter
Code:
$message .= "Content-Transfer-Encoding: base64\r\n\r\n";
$message .= chunk_split(base64_encode($message_html));
 

attentio

WRInaute discret
bonjour,
je patauge ...je patauge :cry:
voila je voudrais envoyer mes mails uniquement au format html.

mais soucis, dès que je mets une image, mon mail est envoyé dans le courrier indesirable.
j'ai pourtant rajouté
"Content-Transfer-Encoding: 8bit\n\n";
comme le conseillait or-bleu
Code:
<?
$boundary = "-----=" . md5( uniqid ( rand() ) ); 
$entete = "Reply-to: \"mon_site.com\" <contact@mon_site.com>\n"; 
$entete .= "From: \"mon_site.com\"<contact@mon_site.com>\n"; 
$entete .= "MIME-Version: 1.0\n"; 
$entete .= "Content-Type: multipart/alternative; boundary=\"$boundary\""; 

$destinataire = "mail@hotmail.com"; 
$sujet = "Sujet de mail"; 
$message='<html><img src="http://www.mon_site.com/logo_petit.gif"><br><p>hello</p></html>';
  

$message_envoi  = "This is a multi-part message in MIME format.\n\n"; 
$message_envoi .= "--" . $boundary . "\n"; 
$message_envoi .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
$message_envoi .= "Content-Transfer-Encoding: quoted-printable\n\n"; 
$message_envoi .= "\n\n"; 
$message_envoi .= "--" . $boundary . "\n"; 
$message_envoi .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
$message_envoi .= "Content-Transfer-Encoding: 8bit\n\n";
$message_envoi .= $message; 
$message_envoi .= "\n\n"; 
$message_envoi .= "--" . $boundary . "--\n"; 

mail($destinataire, $sujet, $message_envoi, $entete);
?>
il ya surement des choses inutiles dans mon code ....

merci infiniment de votre aide
 

JayJayPackman

Nouveau WRInaute
J'utilise cette fonction pour envoyer des mail j'ai un problème à la reception du mail.

Hotmail me propose de telecharger les deux partie du messages au lieu de me montrer le corps html.
Et dans mon client outlook j'obtiens la totalité du message.

voici le code utilisé :
Code:
$to = "moi@moi.com <moi@moi.com>";

//ident of the part of the message
$boundary = uniqid("Recommended");

//subject of the message
$subject = "Page Recommandé par Toto;


// common header of the plain and html version of the message
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"". $boundary . "\"\n\n";
//$headers .= "Content-Transfer-Encoding: \"7bit\"\n\n";

//begin of the message
$message = "This is a multipart message Text.\n\n";

// plain text version of the message
$message .= "--$boundary\n";
$message .= "Content-Type: \"text/plain\"; charset=\"iso-8859-1\"\n\n";
$body = "Test message \n\n";
$message .= $body;
$message .= "\n\n";

//html version of the message
$message .= "--$boundary\n";
$message .= "Content-Type: \"text/html\"; charset=\"iso-8859-1\"\n\n";
$body = "<html>\n";
$body .= "<head>\n";
$body .= "</head>\n";
$body .= "<body bgcolor='#CCCCCC'>\n";
$body .= "</body></html>\n";
$message .= $body;
$message .= "\n\n";
$message .= "--$boundary--\n";
$headers .= $message;



if (mail($to, $subject, '', $headers)) {
    echo "MAIL OK !";
} else {
    echo "mail failed ! ";
}

Et le resultat :




et le code de la page sous hotmail :
Code:
X-Message-Status: n:0
X-SID-PRA: www-data <www-data@arf>
X-SID-Result: TempError
X-Message-Info: 6sSXyD95QpWCIk0GgictX/+r8DfTFDC2mQyW+U8MC+s=
Received: from srv-dev-1-web-ft-1 ([195.167.197.96]) by bay0-mc7-f5.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.211);
	 Mon, 12 Dec 2005 07:32:38 -0800
Received: from www-data by srv-dev-1-web-ft-1 with local (Exim 3.35 #1 (Debian))
	id 1ElpfG-0007ru-00
	for <moi@moi.com>; Mon, 12 Dec 2005 16:32:34 +0100
To: friend <moi@moi.com>
Subject: Page Recommandé par Jeremy
From:Jeremy <moi@moi.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="Recommended439d98122f874"
Message-Id: <E1ElpfG-0007ru-00@srv-dev-1-web-ft-1>
Sender: www-data <www-data@arf>
Date: Mon, 12 Dec 2005 16:32:34 +0100
Return-Path: www-data@arf
X-OriginalArrivalTime: 12 Dec 2005 15:32:39.0290 (UTC) FILETIME=[48FC45A0]



This is a multipart message Text.

--Recommended439d98122f874
Content-Type: "text/plain"; charset="US-ASCII"

Test message 41

test message 

link html : 

Http://moi.moi.com

--Recommended439d98122f874
Content-Type: "text/html"; charset="US-ASCII"

<html>
<head>
</head>
<body bgcolor='#CCCCCC'>
Test message 41<br>
test message 

link html : 

Http://moi.moi.com
</body></html>

--Recommended439d98122f874--

Pourquoi il ne me propose pas de visualiser la partie html dans les deux cas ?
 

Objectif Lune

WRInaute discret
Salut,

Je remonte un peu le sujet car j'ai une question relative à votre discussion : est-ce que ce n'est pas dangereux d'avoir "webusers@localhost by sdxxx.sivit.org" affiché dans le header même si ce n'est pas l'email directement affiché ? C'est juste parce que je m'apprête à envoyer une première newsletter et je ne souhaite avoir du spam ou pire en retour...

D'ailleurs, quelqu'un sait-il comment faire pour avoir un "noreply@mondomaine.com" par exemple :?: Est-ce que ça évite le spam ?

Merci de votre aide, il faudrait que la newsletter parte aujourd'hui car ça fait plusieurs jours que je suis sur le problème, sans solution :roll:
 

lolo55

Nouveau WRInaute
ne marche pas !

Bonjour,

je m'adresse a yannouk, voila j'ai moi aussi ce probleme d'envoi de mailing ou mes visiteurs lors de la newsletter recoivent en courier indesirable, la majorité en hotmail (hotmail.com,etc...)

J'ai tester ton astuce qui malheureusement ne marche pas car j'ai pu tester sur une de mes adresse hotmail.com, je sais vraiment plus comment faire, mais si tu ou bien quelqu'un d'autres a une astuce pour regler ce probleme qui me tiens bcp a coeur, ca serait sympa !

J'ai mis ce code la :

$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"monsite.com\" <contact@monsite.com>\n";
$headers .= "From: \"monsite.com\"<users@mail.nomduserveur.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = "mon_adresse_de_test@hotmail.com";

$subject = "Sujet de mail";

$message_txt = "Salut Alphonse\n\n";
$message_txt .= "Ca va ?\n";
$message_txt .= "C'était juste pour savoir..\n\n";
$message_txt .= "A plus\n";
$message_txt .= "toto";

$message_html = "<html>\n";
$message_html .= "<body>\n";
$message_html .= "<b>Salut Alphonse</b><br><br>";
$message_html .= "Ca va ?<br>";
$message_html .= "<font color=\"red\">C'était juste pour savoir..</font><br><br>";
$message_html .= "A plus<br>";
$message_html .= "<u>toto</u>";
$message_html .= "</body>\n";
$message_html .= "</html>\n";

$message = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_txt;
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
$message .= $message_html;
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";

mail($destinataire, $subject, $message, $headers);


Naturellment j'ai modifier mon 'From' en mettant mon 'return path' !

Voila esperont que vous pourrez m'aider !
 

UsagiYojimbo

WRInaute accro
Je n'ai pas testé sa classe, mais a priori aucune modif depuis 2001, ca fait un peu peur... Je trouve qu'actuellement on ne fait pas mieux que phpmailer.
 

julienr

WRInaute impliqué
effectivement :)
par contre depuis 2005 la problématique à évoluer s'agit pas uniquement de bien former son mail, mais aussi de montrer patte blanche au grand FAI qui ont vite fait de te passer en spam si t'es pas copain avec eux ...
 

Discussions similaires

Haut