2009-05-13 16 views
8

Ho 2 siti in cui la posta viene inviata a due account di vanity gmail. Sto usando PHP per gestire la posta, ma la posta non viene visualizzata su Gmail (non in spam/junk, semplicemente non viene visualizzata). Se cambio il PHP da inviare al mio account Hotmail personale, la posta si presenta. Lo stesso vale per un account e-mail personale tramite il mio ISP.La posta PHP non viene visualizzata su Gmail ma viene visualizzata su Hotmail e altri account di terze parti/ISP

La posta utilizzata per presentarsi a quei 2 account di vanity gmail, qualche idea sul perché si sarebbero semplicemente fermati?

+0

ho lo stesso problema. Ho anche tutte le intestazioni necessarie ma l'e-mail non viene visualizzata. –

risposta

8

Esiste la possibilità che non siano stati impostati i dati di intestazione appropriati e tali messaggi di posta elettronica siano bloccati anche prima di raggiungere la cartella spam.

Prova ad aggiungere qualcosa di simile:

$headers = 'From: [email protected]' . "\r\n" . 
'Reply-To: [email protected]'; 

Questo è il quarto parametro della funzione mail().

+0

Sono d'accordo, questo è possibile. –

+0

Quali sarebbero i dati di intestazione corretti? Non sto impostando alcuna intestazione: $ to = '[email protected]'; $ subject = 'my subject'; $ body = urlencode ($ comments); mail ($ to, $ subject, urldecode ($ body), "Da: {$ _POST ['email']}"); –

+0

E per reiterare, la posta elettronica passava attraverso entrambi gli account. Non sono state apportate modifiche al codice. –

4

Ho riscontrato problemi in passato in cui alcuni provider di posta elettronica gratuiti non riceverebbero alcuna email dai miei server.

ho scoperto che alcune cose possono essere il colpevole, in cima mettere le intestazioni corrette nel messaggio attuale:

  • Assicuratevi che il vostro server è configurato per reverse dns lookup
  • Assicurarsi che non è in esecuzione un open smtp relay
  • Assicurati che il tuo server non finire in qualsiasi email blacklists (se si ha un open relay, probabilmente ottenuto lista nera.

Le probabilità sono, PHP sta inviando l'e-mail bene, ma i server di Google stanno rifiutando tutti i messaggi provenienti dal tuo server.

È possibile verificare questo facendo una rapida:

mail -s Test [email protected] < /dev/null 

Se il server è a posto, si riceverà un messaggio in Gmail, se non lo fai, PHP non è il problema.

0

sembra più probabile che questo è un problema di configurazione del server e non un problema di PHP.

Come nota a margine, ho trovato che Gmail è più tollerante del nostro sistema locale, quindi sono stato in grado di inviare messaggi al mio account Gmail, ma non al mio account nel dominio di hosting.

Non credo che Google utilizzi liste nere di terze parti, ma si preoccupano della configurazione del server (si identifica correttamente, ha i record SPF e RDNS corrispondenti, risponde correttamente ai comandi). Potresti provare un paio di servizi di test come this o this.

0

Vedo che è troppo tardi ma ... il codice seguente sta funzionando per Gmail.

<html> 
Mail Responder:<br><br> 
<?php 
$to = $_REQUEST['MyEmail'] ; 
$subject = $_REQUEST['subject'] ; 
$greeting = $_REQUEST['greeting'] ; 
$realname = $_REQUEST['realname'] ; 
$HisEmail = $_REQUEST['HisEmail'] ; 
$message = $_REQUEST['message'] ; 
$headers = 'From: '.$HisEmail; 
//$headers = 'From: $HisEmail' . "\r\n" . 
//'Reply-To: [email protected]'; 

$send = mail($to, $subject, $greeting."\n"."\n".$realname."\n"."\n".$HisEmail."\n"."\n".$message, $headers); 
if ($send) 
$mailReturns = "Mail sent successfully."; 
else 
$mailReturns = "Mail sent failed."; 

?> 
<?php echo $mailReturns; ?> 
</html> 
+1

Che per me non ha funzionato per Gmail. Eseguire lo stesso codice esatto e inviato a un account Gmail. –

Problemi correlati