2013-01-23 25 views
11

Mam podejrzanego nagłówka Message-ID e-mail wysłany przez php do konta Gmail:jaki jest problem z Message-ID w wiadomości e-mail wysyłane przez php

Message-Id: <[email protected]> 

mógłbyś powiedzieć to ma ten dziwny format i co SMTPIN_ADDED_MISSING oznacza tutaj? Przykłady widziałem w internecie miał coś takiego formatu zawierającego domeny wysyłającego ale moja wiadomość id nie zawiera go z jakiegoś powodu:

[email protected] 

Nie sądzę ustawić ten nagłówek w Zend_Mail. Co generuje te nagłówki? Czy widzisz jakieś problemy z tym nagłówkiem?

Odpowiedz

6

Google SMTP generuje je, jeśli ich nie ma. Ten nagłówek musi być ustawiony przez pierwszy serwer SMTP. Więc nie generujesz go - Google to robi. Jest używany w celu zapobiegania wielokrotnemu dostarczaniu i łączenia powiązanych wiadomości razem.

Nie jest wymagane ustawienie nagłówka id komunikatu, ale jest to jak dobra praktyka dla większości (ale nie wszystkich, tylko skonfigurowanych) smtp do dodania (może być poprawka) tego nagłówka. Aby uniknąć generowania tego nagłówka przez innych, możesz go wygenerować samodzielnie.

+1

należy ustawić go z php lub powinny serwera SMTP server dodać je? Czy message_id powinien zawierać domenę serwera, który wysyła adres mniej więcej tak: [email protected]? – Oleg

+0

Czy masz na myśli to, że jeśli w wysyłanej wiadomości e-mail nie ma identyfikatora wiadomości, e-mail z powiadomieniem generuje go i dodaje do wiadomości? – Oleg

+0

Serwer SMTP generuje go, gdy nie istnieje. Nie jest konieczne generowanie z PHP. Musi zawierać część @domena. Zalecenia http://www.jwz.org/doc/mid.html – clover

13

Prawidłowy wychodzący klient poczty e-mail powinien generować nagłówek Message-ID po wysłaniu wiadomości e-mail. Google jest "miły" i generuje go dla Ciebie, gdy wiadomość przechodzi przez jej system poczty e-mail, ale większość nie będzie, a większość filtrów antyspamowych weźmie ten brakujący nagłówek jako wskazówkę, że wiadomość jest bardziej prawdopodobna jako spam. Wszelkie zniekształcone lub brakujące nagłówki będą dodawane do "wyniku spamu".

To nie jest trudne do wytworzenia, wszystko, co jest wymagane to, że jest wyjątkowy per-wiadomości:

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

Albo

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

Daje:

[email protected] 
+0

Czy masz na myśli to, że absencja Message_Id zwiększa szanse na spam? – Oleg

+0

Czy id_komunikatu może zawierać domenę serwera wysyłania wiadomości e-mail? – Oleg

+0

Nie wysyła wiadomości smp dodaj adres message_id, należy go dodać z aplikacji, prawda? – Oleg

0

jestem używanie tego samego MessageId do śledzenia wymienianych wiadomości.

ja naprawić komunikatu z:

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