Spedire una mail in HTML con php


I filtri antispam permettono di evitare di scaricare le mail che sono etichettate come spam, ma come fanno ad etichettarle come spam?

Utilizzano un meccanismo di controllo sugli header.
Tanto più una mail è completa negli heaqder tanto più la mail non verrà etichettata
come spam.
Per chi ha una newsletter è importante che la mail venga recapitata nel modo più giusto
possibile.

Con PHP con la funzione mail() (manuale ufficiale da php.net
della fuinzione mail() per
riferimenti sul suo utilizzo)
è possibile spedire mail, ma farlo nel modo giusto è un’altra cosa :-).

Per spedire una mail semplice in php basterebbe uno script così:

<?php
mail("pippo@example.com", "Oggetto", "Linea 1
Linea
2
Linea 3");
?>

Verrà spedita una mail in simple text a pippo@example.com. Purtroppo questo
script purtroppo però verrà bloccato dal 90% dei filtri antispam… per ovviare
al
problema
basta
aggiungere
degli
header
validi
per
i mail relay.
A tal proposito ho ideato questo script pescando informazioni di qua e di la
tra i vari esempi in giro per la rete, ho voluto però aggiungere il supporto
HTML per formattare per benino la mail:

<?

$org_var="Enrico – noreply";
$mail="noreply@etechs.it";
$emailto="pippo@example.com";
$content=" testo formnattato in HTML standard<br>&nbsp;&nbsp;&nbsp; prova prova
ah ah ah<br><br> larsen<br>";

$content = STR_REPLACE("<PRE>","<p>",$content);
$content = STR_REPLACE("</PRE>","</p>",$content);
$content = STR_REPLACE("<XMP>","",$content);
$content = STR_REPLACE("</XMP>","",$content);
$content = stripslashes($content);
$content = STR_REPLACE("’","&#146",$content);

$body = "<html><body>
".$content."
</body></html>";

$header = "MIME-Version: 1.0
";
$header .= "Content-type: text/html; charset=iso-8859-1
";
$header .= "Organization: ".$org_var."
";
$header .= "Content-Transfer-encoding: 8bit
";
$header .= "To: ".$emailto."
";
$header .= "From: ".$org_var." <".$mail.">
";
$header .= "Reply-To: ".$org_var." <".$mail.">
";
$header .= "Message-ID: <".md5(uniqid(time()))."@{$_SERVER[‘SERVER_NAME’]}>
";
$header .= "Return-Path: ".$mail."
";
$header .= "X-Priority: 1
";
$header .= "X-MSmail-Priority: High
";
$header .= "X-Mailer: Microsoft Office Outlook, Build 11.0.5510
";
//hotmail and others dont like PHP mailer.
$header .= "X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
";
$header .= "X-Sender: ".$mail."
";
$header .= "X-AntiAbuse: This is a solicited email for – ".$org_var." mailing
list.
";
$header .= "X-AntiAbuse: Servername – {$_SERVER[‘SERVER_NAME’]}
";
$header .= "X-AntiAbuse: User – ".$mail."
";
$bodyToSend=$body;
?>

A questo punto basta lanciare la funzione mail ed il gioco è fatto.

<?
mail (”,$oggetto,$bodyToSend,$header);
?>

LE informazioni aggiunte sono molte ma le più importanti sono Message-ID,
X-AntiAbuse, X-Sender, X-Mime il resto sono tutti di corollario.

Spedire una mail in HTML con php ultima modifica: 2004-12-21T00:00:00+00:00 da Enrico

Related Posts

1 Comments.

  1. Hi there,
    http://www.etechs.it – da best. Keep it going!

    Have a nice day
    Elcoj