2011-10-09 12 views
5

Sto utilizzando il seguente per inviare le e-mail di registrazione:Come evitare che i miei messaggi inviati da PHP mail() vengano contrassegnati come spam?

$subject = 'subject is here'; 
$message_raw = 'e-mail text'; 

$message = base64_encode($message_raw); 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
$headers .= 'Content-Transfer-Encoding: base64' . "\r\n"; 
$headers .= 'From: papa.sk <[email protected]>' . "\r\n"; 

$sendit = mail($to, $subject, $message, $headers); 

Per alcune persone le e-mail vengono inseriti nella cartella spam (in Gmail troppo).

In /etc/postfix/main.cf ho questo:

myorigin = /etc/mailname 
smtpd_banner = papa1.vps.websupport.sk ESMTP 

Non è sicuro se dovrei cambiare quanto sopra.

+0

Non inviare spam. (Giusto?) Certo, sto scherzando. Il modo più efficace è che i tuoi utenti contrassegnino le tue email come NON spam. Non ci sono molte grandi soluzioni (grazie spammer). –

+0

Non ho mai inviato spam. È un nuovo server, nuovo sito. Meno di 10 mail sono usciti da quando è stato distribuito. Il server è dedicato al sito. –

+0

I messaggi codificati Base64 hanno un'alta probabilità di essere spam. –

risposta

2

La funzione php mail() non ha nulla a che fare con le e-mail contrassegnate come spam.

Che un'e-mail viene contrassegnata come spam si verifica dall'altra parte. Non è possibile influenzare molto il processo con mail(), poiché è l'altra estremità.

Ci possono essere migliaia di motivi per cui un'e-mail viene contrassegnata come spam e, finché non si conosce il motivo concreto per cui la posta elettronica viene contrassegnata come spam, non si può fare nulla contro questo.

C'è un'intera industria che si guadagna da vivere.

+0

Se fosse possibile, le grandi aziende non ti implorerebbero quando ti invierebbero un'email per "contrassegnare questo non come spam". –

+0

@RiMMER: Non capisco cosa intendi. – hakre

2

potrebbe essere necessario un record dns inverso per il server.

molti server di posta ritengono che i messaggi inviati da un host siano spam se non è possibile cercare il nome host. Questo è nslookup papa.sk dovrebbe restituire un indirizzo IP, e nslookup <ip address> dovrebbe restituire papa.sk.

+0

Posso impostare il nome host che viene segnalato in qualche modo sul mio server, o devo chiedere alla mia società di hosting di impostarlo per me, al di fuori del server? Ho un accesso root completo ad esso ... –

+1

devi prima metterlo sul tuo server (configurando un server DNS), ma anche dire alla tua società di hosting che hai bisogno di un DNS inverso. si noti che molte società di hosting fanno __not__ di fornire questo servizio. Un modo per aggirare questo problema è quello di inviare la posta tramite il relay di posta che la tua società di hosting fornisce sicuramente. –

+0

Dove posso trovare una guida per la cosa di ritrasmissione della posta? –