2010-05-07 35 views
5

Có thể kiểm tra xem liệu php có thể lấy lại ping/cờ từ máy chủ thư trao đổi để nói "có, email đã được gửi tới người nhận" không?Xác minh thành công chức năng mail() PHP

Theo hướng dẫn sử dụng PHP, sự trở lại của mail() boolean có thể có nghĩa là; "Điều quan trọng cần lưu ý là chỉ vì thư đã được chấp nhận để giao hàng, nó không có nghĩa là thư sẽ thực sự đạt đến đích dự định."

Điều này có nghĩa là PHP có thể trả về thành công nhưng thực sự có thể có sự cố trên máy chủ thư mà php không biết về nó? và trong trường hợp này không có email nào được gửi và người dùng không phải là người khôn ngoan hơn?

TIA Jared

+0

Chính xác, thư có thể đúng và gửi thư có thể không thành công. –

+0

AFAIK, cách chính xác nhất là yêu cầu người dùng thực hiện một số hành động bên trong email đã gửi. Nếu hành động được hoàn thành, có lẽ họ đã nhận được email. – munch

Trả lời

4

Chức năng mail() sẽ chỉ cần kết nối thông qua SMTP đến máy chủ và gửi tin nhắn. Sau đó, nếu máy chủ cho biết máy chủ đã nhận được thư, thư sẽ trả về thành công.

Trong thời gian chờ đợi, mọi thứ có thể xảy ra sai. Tài khoản của người dùng có thể bị xóa, đĩa cứng trên máy chủ thư có thể gặp sự cố, máy chủ SMTP không thể tìm thấy máy chủ thư của người dùng. Máy chủ thư của người dùng có thể từ chối thư vì hộp thư của người dùng đã đầy. Nhiều, nhiều thứ có thể sai.

Đây không phải lỗi của PHP. Và không có cải tiến hợp lý nào có thể được thực hiện đối với bất kỳ API ngôn ngữ lập trình nào để đảm bảo ai đó nhận được thông báo. Nhưng một số công ty như CampaignMonitor cung cấp một dịch vụ trả phí sẽ kiểm tra số tiền trả lại và nếu mọi người mở thư để cập nhật gửi thư cho danh sách gửi thư của bạn. Sử dụng API từ các dịch vụ như vậy, bạn có thể kiểm tra sau vài ngày nếu nhận được tin nhắn thành công.

Vì vậy, các tài liệu PHP chỉ đang nói, 'Chúng tôi chỉ có thể cho bạn biết liệu máy chủ SMTP đầu tiên cho biết họ đã nhận được nó. Bất kỳ số lượng các vấn đề có thể xảy ra giữa các máy tính từ đó cho người có tài khoản email. '

+1

ok, đó là câu trả lời tôi muốn biết, cảm ơn guys :) p.s god Tôi yêu trang web này !! <3 – Jared

Các vấn đề liên quan