Page 1 sur 1

SPAMASSASSIN mis sur domaine

Posté : 21 mai 2015, 15:57
par bob56@
Bonjour :D

J'ai un problème, les messages ne partent plus, il m'a été répondu qu' Actuellement SPAMASSASSIN mis en place sur domaine considère les mails envoyé depuis la fonction mail php comme étant un possible SPAM et les bloques.

il m'a été demandé de modifié le script

avec cette fonction peut être, mais j'ai essayé et quelque chose m'échappe.
$Message-Id = "<" . sha1(microtime()) . "@" . $fqdn_hostname . ">";
Merci d'avance de vos conseils.

le script de base qui devrait fonctionner. Celui-ci fonctionne bien en local sur easyPHP
<?php
$destinataire = '[email protected]'; 

$copie = 'non';

$form_action = 'contact.php';

$message_envoye = '<b><div style="color:red;">Votre message nous est bien parvenu &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></br><img src="./images/merci.gif" "merci">';
$message_non_envoye = "<b style='color: red;'>envoi du mail a &#233;chou&#233;, veuillez r&#233;essayer SVP.</b>";

$message_formulaire_invalide = "<b style='color: red;'>V&#233rifiez que tous les champs soient bien remplis et que l'email soit sans erreur (S.V.P. ne pas utiliser les &#231; &#233; &#232; &#224; etc... pour le Nom et pr&#233;nom !).</b>";

function NoSpamQuestion($mode = 'ask', $answer = 0)
{
	$array_pictures = array(); $j = 0;
	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] =   '<img src="./images/captcha/bateau.jpg" "bateau ou avion">';
	$array_pictures[$j]['answer'] = "bateau";
	$j++;
	
	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] =   '<img src="./images/captcha/avion.jpg" "bateau ou avion">';
	$array_pictures[$j]['answer'] = "avion";
	$j++;
	
	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] =   '<img src="./images/captcha/chat.jpg" "chat ou chien">';
	$array_pictures[$j]['answer'] = "chat";
	$j++;
	
	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] =   '<img src="./images/captcha/chien.jpg" "chat ou chien">';
	$array_pictures[$j]['answer'] = "chien";
	$j++;
	
	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] =   '<img src="./images/captcha/oiseau.jpg" "oiseau ou poisson">';
	$array_pictures[$j]['answer'] = "oiseau";
	$j++;
	
	$array_pictures[$j]['num'] = $j;
	$array_pictures[$j]['question'] =   '<img src="./images/captcha/poisson.jpg" "oiseau ou poisson">';
	$array_pictures[$j]['answer'] = "poisson";
	$j++;
	if ($mode != 'ans')
	{
		
		$lambda = rand(0, count($array_pictures)-1);
		return $array_pictures[$lambda];
	}
	else
	{
		
		foreach($array_pictures as $i => $array)
		{
			if ($i == $answer)
			{
				return $array;
				break;
			};
		};
	};

	
	$nospam = NoSpamQuestion();

function Rec($text)
{
	$text = htmlspecialchars(trim($text), ENT_QUOTES );
	if (1 === get_magic_quotes_gpc())
	{
		$text = stripslashes($text);
	}
	$text = nl2br($text);
	return $text;
};

function IsEmail($email)
{
	$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
	return (($value === 0) || ($value === false)) ? false : true;
}

$nom        = (isset($_POST['nom']))        ? Rec($_POST['nom'])        : '';
$prenom        = (isset($_POST['prenom']))        ? Rec($_POST['prenom'])        : '';
$email      = (isset($_POST['email']))      ? Rec($_POST['email'])      : '';
$telephone      = (isset($_POST['telephone']))      ? Rec($_POST['telephone'])      : '';
$objet      = (isset($_POST['objet']))      ? Rec($_POST['objet'])      : '';
$message    = (isset($_POST['message']))    ? Rec($_POST['message'])    : '';
$antispam_h = (isset($_POST['antispam_h'])) ? Rec($_POST['antispam_h']) : '';
$antispam_r = (isset($_POST['antispam_r'])) ? Rec($_POST['antispam_r']) : '';

$email = (IsEmail($email)) ? $email : ''; 
$err_formulaire = false; 
if (isset($_POST['envoi']))
{
	
	$verif_nospam = NoSpamQuestion('ans', $antispam_r);
	if (strtolower($antispam_h) != strtolower($verif_nospam['answer']))
	{
		
		echo '<b style="color: red;">Vous n\'avez pas r&#233;pondu correctement &#224; la question Antispam ...</b>';
	}
	else
	{
		if (($nom != '') &&($prenom != '') && ($telephone != '') && ($email != '') && ($objet != '') && ($message != ''))
		{
			
			$headers  = 'From:'.$nom.'  '.$prenom.'  '.$telephone.' <'.$email.'>' . "\r\n";
			
			$headers.="Content-type: text/html; charset=\"UTF-8\" \r\n";
			
			
			
			
			
			if ($copie == 'non')
			{
				$cible = $destinataire.','.$email;
			}
			else
			{
				$cible = $destinataire;
			};
			
			$message = str_replace("'","'",$message);
			$message = str_replace("&#8217;","'",$message);
			$message = str_replace(""",'"',$message);
			$message = str_replace('<br>','',$message);
			$message = str_replace('<br />','',$message);
			$message = str_replace("<","<",$message);
			$message = str_replace(">",">",$message);
			$message = str_replace("&","&",$message);
			
			if (mail($cible, $objet, $message, $headers))
			{
				echo '<p>'.$message_envoye.'</p>';
			}
			else
			{
				echo '<p>'.$message_non_envoye.'</p>';
			};
		}
		else
		{
			
			echo '<p>'.$message_formulaire_invalide.'</p>';
			$err_formulaire = true;
		};
	};
}; 
if (($err_formulaire) || (!isset($_POST['envoi'])))
{
	
	echo '
	<form id="contact-form" method="post" enctpe="multipart/form-data" >
	<fieldset><legend><b style="color: black;">Vos coordonn&#233;es</b></legend><br/>
		<p><label for="nom">Nom :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p> <br/>
		<p><label for="prenom">Pr&#233;nom :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="text" id="prenom" name="prenom" value="'.stripslashes($prenom).'" tabindex="2" /></p> <br/>
	    <p><label for="telephone">T&#233;lephone :&nbsp;&nbsp;&nbsp;</label><input type="text" id="telephone" name="telephone" value="'.stripslashes($telephone).'" tabindex="3" /></p><br/>
		<p><label for="email">Email :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="4" /></p><br/>
		
		
	</fieldset><br/>
	<fieldset><legend><b style="color: black;">Votre message </b></legend><br/>
		<p><label for="objet">Objet du message :&nbsp;</label><input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="5" /></p><br/>
		<p><label for="message">Texte de votre Message :<br/><br/></label><textarea id="message" name="message" tabindex="6" cols="30" rows="8">'.stripslashes($message).'</textarea></p><br/>
	</fieldset>  <br/>
	<fieldset><legend><b style="color: black;">Anti-spam captcha</b></legend><br/>
		<p><label for="antispam_h">'.$nospam['question'].'  <div style="color:#FF0000;">R&#233;pondre &#224; la question</div></label><input type="text" name="antispam_h" id="antispam_h" /><input type="hidden" name="antispam_r" value="'.$nospam['num'].'" /></p><br/>
	</fieldset> 
	<form id="contact-form" method="post" enctype="multipart/form-data"></br>
	
<div style="text-align:center;"><input type="submit" name="envoi" value="ENVOYER LE FORMULAIRE" />
     
	</form>';
};
?>

Re: SPAMASSASSIN mis sur domaine

Posté : 21 mai 2015, 21:43
par @rthur
Bonjour,

A priori si tu dois mettre un Message-id c'est dans les headers de ton mail :
$headers  = 'From:'.$nom.'  '.$prenom.'  '.$telephone.' <'.$email.'>' . "\r\n";
$headers.="Content-type: text/html; charset=\"UTF-8\" \r\n";
$headers.="Message-Id: <" . sha1(microtime()) . "@" . $fqdn_hostname . ">\r\n";
Maide je doute fortement que ça soit cela qui bloque les mails dans spam assassin.
Qui t'as dit que ça venait de là ?
Quel est le message de log exact de spam-assassin ?

Re: SPAMASSASSIN mis sur domaine

Posté : 21 mai 2015, 22:19
par bob56@
merci de ta réponse @arthur

j'ai fait comme tu m'as dit mais le problème est le même. Bientôt trois ans que çà roule comme çà sans soucis!

voilà le message:
D&#65533;tails de l'analyse du message: (8.5 points, 8.0 requis)
0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/Dns ... nsbl-block for more information. [URIs: oh-green.eu]
0.4 HTML_IMAGE_RATIO_02 BODY: HTML Faible ratio de texte par rapport aux images
4.0 BAYES_50 BODY: L'algorithme Bay&#65533;sien a &#65533;valu&#65533; la probabilit&#65533; de spam entre 40 et 60% [score: 0.5000]
1.0 MIME_HTML_ONLY BODY: Le message poss&#65533;de uniquement des parties MIME text/html
1.2 HTML_IMAGE_ONLY_04 BODY: HTML contient images avec 200 &#65533; 400 octets de texte
0.4 HTML_MIME_NO_HTML_TAG Message en HTML seul, mais sans tags HTML
0.5 MISSING_MID Missing Message-Id: header 1.0 BODY_URI_ONLY Message body is only a URI in one line of text or for an image
0.0 T_REMOTE_IMAGE Message contains an external image

Re: SPAMASSASSIN mis sur domaine

Posté : 21 mai 2015, 23:16
par bob56@
je rajoute que c'est le technicien de l'hébergeur qui m'a dit çà, suite à mon problème:

il y a des messages qui sont considérés comme spam ?

D�but de Rapport SpamAssassin --------------------- Ce message est probablement du SPAM (message non sollicit� envoy� en masse, publicit�, escroquerie...). Cette notice a �t� ajout�e par le syst�me d'analyse "SpamAssassin" sur votre serveur de courrier "mailler27.lws-hosting.com", pour vous aider � identifier ce type de messages. Le syst�me SpamAssassin ajoute un en-t�te "X-Spam-Flag: YES" aux messages qu'il consid�re comme �tant probablement du Spam. Vous pouvez si vous le souhaitez utiliser cette caract�ristique pour r�gler un filtre dans votre logiciel de lecture de courrier, afin de d�truire ou de classer � part ce type de message. Si ce robot a classifi� incorrectement un message qui vous �tait destin�, ou pour toute question, veuillez contacter l'administrateur du syst�me par e-mail � the administrator of that system

Re: SPAMASSASSIN mis sur domaine

Posté : 21 mai 2015, 23:28
par bob56@
d'après ce que j'ai cru comprendre c'est parce que mes messages n'étaient pas en texte brut suite à mes essais ?

LPB-SPAM : L'envoi d'email depuis votre hébergement mutualisé est bloqué pendant 24h.
50 Spams ont été envoyés depuis votre hébergement mutualisé lors des dernières 24 heures

donc j'espère que çà va revenir à la normal !

Re: SPAMASSASSIN mis sur domaine

Posté : 22 mai 2015, 00:04
par @rthur
Le message de log de spam-assassin est assez explicite, le mail que tu essayes d'envoyer à une probabilité de 8.5 d'être un spam et le serveur les bloques quand la probabilité est supérieure à 8.

Ensuite, il te donne la liste des filtres qui ont calculé cette probabilité avec la valeur attribuée pour chacun en début de ligne :

Code : Tout sélectionner

4.0 BAYES_50 BODY: L'algorithme Bayésien a évalué la probabilité de spam entre 40 et 60% [score: 0.5000] 1.2 HTML_IMAGE_ONLY_04 BODY: HTML contient images avec 200 / 400 octets de texte 1.0 MIME_HTML_ONLY BODY: Le message possède uniquement des parties MIME text/html 0.5 MISSING_MID Missing Message-Id: header 1.0 BODY_URI_ONLY Message body is only a URI in one line of text or for an image 0.4 HTML_MIME_NO_HTML_TAG Message en HTML seul, mais sans tags HTML 0.4 HTML_IMAGE_RATIO_02 BODY: HTML Faible ratio de texte par rapport aux images
Donc effectivement, le fait de mettre le message-id peut aider (car c'est pondéré à 0.5) mais ça ne suffira pas.
Si tu veux t'assurer qu'il ne passe pas en spam, il faut soit supprimer les images ou tout du moins en diminuer le nombre et prévoir une version text en + de la version HTML : https://gist.github.com/IngmarBoddingto ... 9f84e905f4

Re: SPAMASSASSIN mis sur domaine

Posté : 22 mai 2015, 07:30
par bob56@
Merci @rthur, j'ai compris

Maintenant tout est en ordre sur le site. Je vais revoir mes essais en fonction des messages log de spam-assassin :D

je ne vois pas le bouton [ résolu ] ?

Re: SPAMASSASSIN mis sur domaine

Posté : 22 mai 2015, 08:42
par @rthur
je ne vois pas le bouton [ résolu ] ?
Tout en haut à gauche, sous le titre du sujet ;)

Re: SPAMASSASSIN mis sur domaine

Posté : 22 mai 2015, 20:32
par bob56@
ce bouton est invisible avec le navigateur Opéra ?

Image

Re: [RESOLU] SPAMASSASSIN mis sur domaine

Posté : 22 mai 2015, 23:31
par @rthur
C'est corrigé normalement, petit problème de mime-type géré bizarrement par Opéra :)