Comment utiliser mail() sans etre considéré comme du spam ?

WRInaute impliqué
Bonjour,

Voiila un moment que je parcours différent forum et je n'ais toujours pas reussis a trouver une réponse. A chaque fois on me répond des truc hors sujet ou on m'envois ballader. Ayant parcourus pas mal le forum de WRI je trouve qu'il y a une assez bonne ambiance entre les webmasters et je me dis : "allez pourquoi pas demande leur" :)

Alors voila je vous explique le probleme :

A cause des millions et des millions de spam qui transit sur le net les fai et tout les fournisseurs d'email en général appliquent de plus en plus d'anti spam automatique. Ce qui est normal remarquez.....

Le probleme est que la fonction mail() de php deviens facilement identifiable ( souvent à tort ) comme du spam.

Apres pas mal de recherche j'ais reussit a faire des entetes qui semble fonctionner chez la plupart des boites email ( ca marche aussi chez msn ce qui est deja un bon début lol )

Les voila :

<?php

$sujet="test";
$message="blabla";

$entete="From: $email_expediteur <$email_expediteur>\n";
$entete.="Reply-to: $email_expediteur\n";

mail($email_destinataire, $sujet, $message, $entete );

?>

Alors si ca marche pourquoi je crée un post ?
Tout simplement car j'ais encore des personnes qui se plaignent de ne pas recevoir le courrier que j'envois :(

Connaissez-vous un moyen sur à 100 % pour que les mails soit correctement envoyés ET / OU non considéré comme du spam ?
Car quand j'envois un mail avec outlook ca fonctionne toujours , et c'est pas le cas de la fonction mail() :-'(

Car il n'y a pas de mystere j'envois tout mes mails de la meme facon ( c est un script qui fait une boucle et envois les emails pour une newsletter ) et pourtant de temps en temps des personnes me disent qu'elles n'ont pas recu l'email.

Est ce que quelqu'un ici qui utiliserais cette fonction mail() ( l'exemple le plus concret est une newsletters ) pourrais me dire comment il se débrouille ?

Merci d'avance et bonne année.
 
WRInaute impliqué
Tout va se jouer dans ton $entete, tu dois préciser un max de données pour ne pas etre considéré comme un spammer...

Par exemple :
$entete = From: TonServeur <newsletter@tonserveur.com>\r\nContent-type:text/html\r\nReply-To: noreply@tonserveur.com\r\nX-Mailer: PHP/" . phpversion();

Sinon utilise imap_mail_compose(), qui te permettra d'envoyer ton contenu html et text dans le meme mail, et de bien spécifier tes entetes pour pas etre spammé... exemple :

Code:
mail_html($from, $to, $subject, $msg)
{
  $msg_plain =  // ereg_replace.... ce qu'il faut pour transformer ton html en plain text

  // generation du message en multi part -- text/plain et text/html
  $envelope["from"] = $from;

  $part0["type"] = TYPEMULTIPART;
  $part0["subtype"] = "alternative";

  $part1["type"] = TYPETEXT;
  $part1["subtype"] = "plain";
  $part1["charset"] = "iso-8859-1";
  $part1["description"] = "format_text";
  $part1["contents.data"] = $msg_plain;

  $part2["type"] = TYPETEXT;
  $part2["subtype"] = "html";
  $part2["charset"] = "iso-8859-1";
  $part2["description"] = "format_html";
  $part2["contents.data"] = $msg;

  $body[1] = $part0;
  $body[2] = $part1;
  $body[3] = $part2;

  return mail($to, $subject, "", imap_mail_compose($envelope, $body));
}

J'ai volontairement viré ma fonction qui transforme le html en plain car elle a le mérite d'etre non optimisée à souhait... :oops:

Bonne chance
 
WRInaute impliqué
En passant, à noter que imap_mail_compose() ne fonctionne pas avec la toute derniere version de php... (bug)
 
WRInaute discret
moi aussi je cherche des infos 10 % des mais qui n'arrivent pas...aucune réponse fiable a 100% trouvée sur le net
 
WRInaute impliqué
Ah c'est embetant ca j'ais justement la derniere la 4.3.10 :/

Je vais quand meme regarder cette fonction merci.

En fait mes mails sont uniquement des mails texte avec des \r\n pour revenir à la ligne , enfin tout ca pour dire que c'est vraiment du mail " de base " :p
 
WRInaute impliqué
Ok merci le premier lien je connais :p

Et le second j'arrive a lire l'anglais mais quand il s'agit de lire des truc technique la c'est un peu trop chaud pour moi :( t aurais pas la meme en francais ?

Apparement il y aurais des probleme avec les @aol.com et les @tiscali.fr avec le script que j'ais mis en haut , ca craint :// J'en ais vraiment trop marre de ces histoires avec la fonction mail()
:(
 
Discussions similaires
Haut