2012-02-18 41 views
9

Có thể gửi email không đồng bộ bằng phpmailer không?Gửi email không đồng bộ với phpmailer

thường xuyên gửi mail đoạn mã như sau:

$mail->Send();

PHP chờ Send() để trả về kết quả trước khi chuyển. Có thể có phpmailer để trả lại kết quả ngay lập tức mà không phải chờ email thực gửi thường xuyên để hoàn thành.

Trả lời

8

Cập nhật tháng năm 2016

Như đã đề cập bởi người dùng @Sinak Salek PHP không hỗ trợ đa luồng. Có sẵn bằng cách sử dụng tiện ích mở rộng pthreads.

gốc

PHP không hỗ trợ đa luồng natively (mà bạn cần phải làm điều này đẹp). Bạn có thể làm điều đó mặc dù bằng cách lưu các email trong cơ sở dữ liệu và sau đó xử lý chúng sau này bằng cách sử dụng một tập lệnh khác (ví dụ: sử dụng một công việc cron). Bằng cách này, bạn không phải đợi khung email cơ bản.

Một điều nữa, nếu phpmailer chậm thì có thể do chương trình thư bên dưới (sendmail, postfix, vv) được thiết lập không chính xác.

+1

Cảm ơn bạn. Trong trường hợp của chúng tôi, chúng tôi đã thực hiện yêu cầu async curl sau đây cho một tập lệnh php có nhiệm vụ duy nhất là gửi email. http://stackoverflow.com/questions/962915/how-do-i-make-an-asynchronous-get-request-in-php – Haluk

+0

Chào mừng bạn. Cảm ơn bạn đã liên kết đến giải pháp của bạn, đó là cách gọn gàng để giải quyết nó :) – CodeTower

+1

PHP hỗ trợ đa luồng và cũng xử lý đa qua các tiện ích mở rộng nổi tiếng. Tôi cho rằng đó là những gì bạn có nghĩa là tự nhiên, nếu đó là như vậy sau đó kết nối với cơ sở dữ liệu cũng cần mở rộng thích hợp và nhiều thứ khác. Lưu ý rằng phần mở rộng pthreads thực sự nổi tiếng và rất thẳng về phía trước để sử dụng –

0

Nếu bạn đang sử dụng Linux, bạn có thể đặt tập lệnh php của mình trong lệnh exec và khởi chạy trong nền (đặt & ở cuối lệnh) và chế độ im lặng (2> & 1>/dev/null)

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