Newsgroup: it.comp.www.php
Titolo: Email vista come SPAM

Ciao a tutti ho copiato uno script da una rivista (non libro, pagato una 
cifra!!!) per inviare una email con allegato.
Non funziona!!!
Allora ho cercato e trovato lo script seguente, che funziona, ma quando 
ricevo l'email come oggetto risulta ***SPAM*** è l'antispam del server.
come posso fare? qualche errore nell'intestazione?
Grazie molte David
$mess="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<HTML><HEAD>
<META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">
<STYLE>
H5 {text-align: justify; text-decoration: none; color: #333333; font-size: 
12px; font-family: Arial}
A:link, A:visited, A:hover { color: #FFcc00 }
</STYLE>
</HEAD>
<BODY bgColor=#ffffff link=#333333 alink=#333333 vlink=#333333>
<DIV><h5>BLA BLA BLA BLA. Questo è il corpo dell'email; si possono usare 
tutti i tag html, come se si trattasse di una pagina internet.</h5>
</BODY></HTML>
";
/*Nella variabile $mess va inserito tutto il codice html che comporrà il 
corpo dell'email che si vuole inviare. Come nell'esempio si possono 
utilizzare anche i fogli di stile.*/
$e="
destin...@email.it
"; /*Inserire l'indirizzo email a cui si vuole 
spedire l'email*/
$ogg="Oggetto dell'email"; /*Inserire l'oggetto dell'email da spedire*/
$mittente="
miae...@email.com
"; /*Inserire l'indirizzo email che verrà 
visulaizzato come mittente dell'email*/
$reply="
miae...@email.com
"; /*Inserire l'indirizzo email a cui verranno 
inviate le risposte all'email inviata*/
$titolo="allegato.pdf"; /*Inserire il nome che si vuole dare all'allegato*/
$f="file.pdf"; /*Inserire l'indirizzo del file che si vuole inviare come 
allegato*/
$filetype="application/pdf"; /*Inserire il formato MIME del file da 
allegare*/
/*Non modificare nulla al di sotto di questa linea*/
$intestazioni = "From: $mittente\nReply-To: $reply\nX-Mailer: Sismail Web 
Email Interface\nMIME-version: 1.0\nContent-type: multipart/mixed;\n 
boundary=\"Message-Boundary\"\nContent-transfer-encoding: 
7BIT\nX-attachments: $titolo";
$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/html; charset=iso-8859-1\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail message body\n\n";
$msg_body = $body_top . $mess;
$filez = fopen($f, "r");
$contents = fread($filez, filesize($f));
$encoded_attach = chunk_split(base64_encode($contents));
fclose($filez);
$msg_body .= "\n\n--Message-Boundary\n";
$msg_body .= "Content-type: $filetype; name=\"$titolo\"\n";
$msg_body .= "Content-Transfer-Encoding: BASE64\n";
$msg_body .= "Content-disposition: attachment; filename=\"$titolo\"\n\n";
$msg_body .= "$encoded_attach\n";
$msg_body .= "--Message-Boundary--\n";
if(!(@mail($e,$ogg,$msg_body, $intestazioni))){
print "<H5>Invio della email fallito.</H5>";} 

come posso fare? qualche errore nell'intestazione?
No, e' che quello script lo usa parecchia gente per mandare spam, e si
vede che l'antispam del server lo riconosce.
Prova a vedere se nel log dell'antispam ti dice esattamente su cosa si
basa il giudizio (che so: NUMERIC_URL_IP, SISMAIL_SIGNATURE, ...). Poi
vedi se puoi cambiare quelle cose.
Leonardo
-- 
 What do you make, so fair and bright;
 What do you build with sails for flight;
 What do you weave with wool so white?


Grazie dell'idea, ma ho cercato un log e non sono riuscito a trovarlo.
Drovò contattare il gestore del server.
Ti confermo che è Spamassassin che crea il problema.
Grazie David 

Ti confermo che č Spamassassin che crea il problema.
Allora, SpamAssassin dovrebbe scriverlo negli header, il perche' ritiene
quella mail spam.


>Ti confermo che è Spamassassin che crea il problema.


 2.5 DNS_FROM_RFC_DSN       RBL: Envelope sender in 
dsn.rfc-ignorant.org
Allora: ti sei beccato 6.3 punti spam, e devi scendere ad almeno 4.9 o lo
SpamAssassin ti assassina.
Un sistema semplice (si fa per dire) e' spedire l'email da un computer di
cui RFC-Ignorant non dica "Bogus MX" (da dove la spedisci, ora?). Questo,
di per se', ti toglie di dosso il 73% dei punti-merda associati alla mail
facendoti scendere a 1.7.
L'altra cosa su cui puoi lavorare e' quel MIME_HTML_ONLY.
Potresti pensare di aggiungere una sezione MIME text/plain, che ti toglie
1.7 punti-merda e ti fa arrivare a 4.6; che e' altino ma sopportabile.
Praticamente cosi':
$intestazioni = "From: $mittente\nReply-To: $reply\nX-Mailer: Sismail Web 
Email Interface\nMIME-version: 1.0\nContent-type: multipart/mixed;\n 
boundary=\"Message-Boundary\"\nContent-transfer-encoding: 
7BIT\nX-attachments: $titolo";
$body_top = "--Message-Boundary\n";
// Inizio aggiunta
$body_top .= "Content-type: text/plain; charset=iso-8859-1\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= strip_tags($mess);
$body_top = "--Message-Boundary\n";
// Fine aggiunta
$body_top .= "Content-type: text/html; charset=iso-8859-1\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
... bla bla bla
Se riesci a fare entrambe le cose arrivi a 0.0, "pure ham" :-D


Vorrei ringraziarti molto perchč ho imparato a leggere il report e anche 
l'idea che mi hai suggerito č molto buona.
Hp preso una decisione radicale, abbandonato il mail() di PHP e usato la 
classe PHPMailer, naturalmete con il esempi del tutorial non sono riuscito, 
allora cercando ho trovato una funzionante.
Ma soprattutto ho capito che "From: address is in the auto white-list" 
voleva dire che se cambiavo indirizzo From non dava piů SPAM!
adesso non so come togliere l'indirizzo da questa white-list, ma non 
importa.
uso un webserver in locale per testare e quando uso l'indrizzo della 
white-list mi scrive anche
 2.1 DNS_FROM_RFC_BOGUSMX   RBL: Envelope sender in 
bogusmx.rfc-ignorant.org
 2.5 DNS_FROM_RFC_DSN       RBL: Envelope sender in 
dsn.rfc-ignorant.org
require_once("class.phpmailer.php");
$oggetto = "Lettera presentazione";
$bodytxt = "Spett.le Azienda,Come da accordi ...";
$mail = new PHPMailer();
$mail->From = "
mitt...@dominio.it
";
$mail->FromName = "Nome Mittente";
$mail->AddAddress("
destin...@dominio.it
");
$mail->Subject = $oggetto;
$mail->Body = $bodytxt;
$mail->AddAttachment("./Lettera_Presentazione.pdf");
if(!$mail->Send()){
echo "Si ? verificato un errore nell'invio della mail";
}else{
echo "Mail inviata con successo";
}
Sembra funzionare benissimo.
Grazie ancora David
