2013-01-23 40 views
11

Tôi có nghi ngờ tiêu đề thư-id của email được gửi bởi php vào tài khoản gmail là những gì:vấn đề với Message-Id trong email gửi bằng php

Message-Id: <[email protected]> 

Ông có thể xin vui lòng cho nó có định dạng lạ này và những gì SMTPIN_ADDED_MISSING có nghĩa là ở đây? Ví dụ tôi thấy trên Internet có định dạng giống như chứa gửi miền này nhưng id của thông điệp của tôi không chứa nó vì một lý do:

[email protected] 

Tôi không nghĩ rằng tôi đặt tiêu đề này trong Zend_Mail. Điều gì tạo ra tiêu đề này? Bạn có thấy bất kỳ vấn đề nào với tiêu đề này không?

Trả lời

6

Google SMTP sẽ tạo nếu thiếu. Tiêu đề này phải được đặt bởi máy chủ SMTP đầu tiên. Vì vậy, bạn không tạo ra nó - google nào. Nó được sử dụng để ngăn chặn nhiều giao hàng và liên kết các tin nhắn liên quan với nhau.

Không bắt buộc phải đặt tiêu đề id tin nhắn, nhưng thực tế là tốt nhất cho hầu hết (nhưng không phải tất cả, chỉ được định cấu hình) smtp để thêm (có thể khắc phục) tiêu đề này. Vì vậy, để tránh việc tạo ra tiêu đề này bởi những người khác, bạn có thể tự tạo ra nó.

+1

Tôi có nên đặt nó từ php hay nên máy chủ máy chủ SMPT thêm chúng? Nên message_id chứa tên miền của máy chủ gửi địa chỉ một cái gì đó như thế này: [email protected]? – Oleg

+0

Bạn có nghĩa là nếu không có id tin nhắn trong email đã gửi, việc nhận email sẽ tạo ra nó và thêm vào tin nhắn? – Oleg

+0

Máy chủ SMTP tạo ra nó khi nó không tồn tại. Nó không cần thiết để tạo ra từ PHP. Nó bao gồm phần @domain. Đề xuất http://www.jwz.org/doc/mid.html – clover

13

Ứng dụng email gửi thư thích hợp phải tạo tiêu đề Message-ID khi email được gửi. Google đang "đẹp" và tạo cho bạn khi thư đi qua hệ thống email của mình, nhưng hầu hết sẽ không và hầu hết các bộ lọc spam sẽ lấy tiêu đề bị thiếu này làm dấu hiệu cho thấy thư có nhiều khả năng là spam hơn. Bất kỳ tiêu đề không đúng định dạng hoặc bị thiếu nào sẽ thêm vào "điểm spam".

Nó không phải là khó khăn để tạo ra, tất cả những gì cần thiết là nó là duy nhất cho mỗi thông điệp:

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

Hoặc

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

Cung cấp:

[email protected] 
+0

Bạn có nghĩa là sự vắng mặt của Message_Id làm tăng khả năng spam? – Oleg

+0

Message_id có thể chứa tên miền của máy chủ smpt gửi email không? – Oleg

+0

Máy chủ không tự động thêm thông báo tự động, nó sẽ được thêm vào mẫu đơn, đúng không? – Oleg

0

Tôi sử dụng cùng MessageId để theo dõi các tin nhắn được trao đổi.

tôi sửa chữa các MessageID với:

$mail->MessageID =sprintf('<%[email protected]%s>', $myMessageID, 'myserver'); 
Các vấn đề liên quan