2013-01-23 13 views
11

ho sospetti intestazione Message-ID di e-mail inviate da PHP per account Gmail:qual è il problema con Message-Id in e-mail inviata da php

Message-Id: <[email protected]> 

La prego di dire ce l'ha questo strano formato e cosa SMTPIN_ADDED_MISSING significa qui? Gli esempi che ho visto in internet avevano formato di qualcosa di simile contenente dominio di invio ma il mio ID messaggio non contiene che per qualche motivo:

[email protected] 

Non credo che ho impostato questa intestazione in Zend_Mail. Cosa genera queste intestazioni? Vedi qualche problema con questa intestazione?

risposta

6

Google SMTP lo genera se mancante. Questa intestazione deve essere impostata dal primo server SMTP. Quindi non lo generi - google fa. Viene utilizzato per impedire la consegna multipla e per collegare i messaggi correlati insieme.

Non è necessario impostare l'intestazione ID messaggio, ma è come una buona pratica per la maggior parte (ma non tutti, solo configurati) smtp per aggiungere (potrebbe essere risolto) questa intestazione. Quindi per evitare la generazione di questa intestazione da parte di altri, puoi generarla da solo.

+1

Devo impostare da PHP o dovrebbe Server SMPT server li aggiungere? Se message_id deve contenere il dominio del server che invia l'indirizzo qualcosa come questo: [email protected]? – Oleg

+0

Intendi dire che se non c'è un ID messaggio nell'e-mail inviata, l'e-mail in arrivo lo genera e lo aggiunge al messaggio? – Oleg

+0

Il server SMTP lo genera quando non esiste. Non è necessario generare da PHP. Mente include la parte @domain. Raccomandazioni http://www.jwz.org/doc/mid.html – clover

13

Un vero client di posta elettronica in uscita dovrebbe generare l'intestazione Message-ID quando viene inviata l'e-mail. Google è "bello" e lo genera per te quando il messaggio passa attraverso il suo sistema di posta elettronica, ma la maggior parte non lo fa, e la maggior parte dei filtri spam prenderà questa intestazione mancante come un'indicazione che il messaggio è più probabile che sia spam. Eventuali intestazioni malformate o mancanti si aggiungeranno al "punteggio spam".

Non è difficile da generare, tutto ciò che è necessario è che è unico nel suo genere per-messaggio:

$message-id = time() .'-' . md5($sender . $recipient) . '@' $_SERVER['SERVER_NAME']; 

O

$message-id = time() .'-' . md5($sender . $recipient) . '@yourdomain.com'; 

Dà:

[email protected] 
+0

Vuoi dire che l'assenza di Message_Id aumenta le possibilità di andare allo spam? – Oleg

+0

Potrebbe message_id contenere il dominio del server smpt che invia email? – Oleg

+0

Non smpt server aggiungi message_id automaticamente, dovrebbe essere aggiunto dall'applicazione, giusto? – Oleg

0

Sono utilizzando lo stesso MessageId per tracciare i messaggi scambiati.

ho fissare il MessageId con:

$mail->MessageID =sprintf('<%[email protected]%s>', $myMessageID, 'myserver');