8791 sujets

Développement web côté serveur, CMS

Salut à tous,

Je viens de faire un script de newsletter qui fonctionnait très bien mais tombait dans les spam sous hotmail. Du coup j'ai récupéré une liste d'entête sur le net et même si les mails se mettent très bien en forme et ne tombent plus en spam, les liens ne sont plus cliquables.

Sur hotmail si j'ouvre le dom je vois que ma balise est transformée de

<a href='http://www.google.fr'>
en
<a target='_blank'>


Quand à Outlook lui me dit que le lien est suspicieux et enlève le "h" de "http" (marrant ca).

Voici les headers (c'est assez long)


$adresse = substr($_SERVER["HTTP_REFERER"],0,strrpos($_SERVER["HTTP_REFERER"],"/"))."/Validation-1-".$mail.".html";
$boundary = "-----=" . md5( uniqid ( rand() ) );
$headers = "Reply-to: \"Webmaster \" <webmaster@mondomaine.com>\n"; 
$headers .= "From: \"Webmaster \"<webmaster@mondomaine.com>\n";
		
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

$destinataire = $mail;

$subject = "Validation de votre inscription à la newsletter";

$message_txt  = "Bonjour,\n\n";
$message_txt .= "Vous recevez ce message car vous avez demand&eacute; &agrave; &ecirc;tre inscrit &agrave; la newsletter de XX\n";
$message_txt .= "Merci de valider votre inscription en copiant ce lien dans votre navigateur : ".$adresse."\n\n";
$message_txt .= "A bient&ocirc;t pour des news posts-apocalyptiques !\n";

$message_html  = "<html>\n";
$message_html .= "<body>\n";
$message_html = "Bonjour,<br /><br />Vous recevez ce message car vous avez demand&eacute; &agrave; &ecirc;tre inscrit &agrave; la newsletter deXXy<br />";
$message_html .= "<a href='".$adresse."'>Merci de valider votre inscription en cliquant sur ce lien</a><br />";
$message_html .= "Si le lien ne fonctionne pas, copier celui ci dans votre navigateur : ".$adresse."<br />";
$message_html .= "<br />A bient&ocirc;t pour des news posts-apocalyptiques !";
$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);


Et bien sur comme on est Vendredÿ... j'ai pas gardé l'ancienne version.
Modifié par ffwrude (02 Nov 2012 - 16:34)
Salut !

Peut tu mettre la source de mail généré (depuis Hotmail par exemple) pour avoir les headers complets (reçu par Hotmail).

Est-ce que tout simplement, comme ton site était source de spam, le lien vers ton site est blacklisté.
A mon avis, c'est une connerie, ça doit pas être bien méchant.
Modifié par CVS (09 Nov 2012 - 19:41)
Salut,

Aucune idée du coup j'ai fait autre chose. (plus simple)

$destinataire = $mail;
		$subject = "Validation de votre inscription à la newsletter";
		$message_html  = "<html>\n";
		$message_html .= "<body>\n";
		$message_html = "Bonjour,<br /><br />Vous recevez ce message car vous avez demand&eacute; &agrave; &ecirc;tre inscrit &agrave; la newsletter de ....<br />";
		$message_html .= "<a href='".$adresse."'>Merci de valider votre inscription en cliquant sur ce lien</a><br />";
		$message_html .= "Si le lien ne fonctionne pas, copier celui ci dans votre navigateur : ".$adresse."<br />";
		$message_html .= "<br />A bient&ocirc;t pour des news posts-apocalyptiques !";
		$message_html .= "</body>\n";
		$message_html .= "</html>\n";
		// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
		 $headers  = 'MIME-Version: 1.0' . "\r\n";
		 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

		 // En-têtes additionnels
		 $headers .= 'To: <'.$destinataire.'>' . "\r\n";
		 $headers .= 'From: Webmaster - <webmaster@.com>' . "\r\n";
		if(!mail($destinataire,$subject,$message_html,$headers)){
			echo "ERREUR !";
		}


Ca a l'air de marcher mais je ne sais pas si ca SPAM toujours autant vu que j'ai ouvert mes filtres Smiley decu
A mon avis le Spam ne vient pas de ton code mais de ton hébergeur. Essai de changer le titre de ton message pour voir, c'est peu être là que tu te fais allumer en Spam.