首先,我看到了以下问题:Send mail without blocking 'execution'
但是,我需要知道为什么PHP不是多线程进程,但是如果两个人尝试同时连接就没有问题。
我实际上是通过Ajax调用来调用邮件脚本的:
$.ajax({
url: 'sendMailTemplate.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (data) {}
...
我的PHP邮件程序的问题是,当我发送电子邮件时,如果这需要10秒,那么10秒钟我将无法使用我的网站的任何功能(并且该网站对所有人来说都是10秒钟都无法使用) )。 我应该尝试使用cron作业吗?有针对PHP邮件程序+ cron作业的教程吗?除了cron作业,最好的方法是什么?
答案 0 :(得分:1)
我应该尝试使用cron作业吗?
是
是否有有关PHP Mailer + cron作业的教程?
我通过使用多重引用尝试了自己的逻辑:
下面的逻辑像队列一样执行,并根据您的cronjob和您的按小时发送邮件限制发送时间。
"temp_table"
列存储到数据库的"to,cc,bcc,suject,body"
中。"temp_tables"
接收电子邮件(将查询限制设置为不记录),然后发送给收件人。成功完全发送后,请从您数据库的"temp_table"
中删除这些邮件。 除了cron作业,最好的方法是什么?
您已与您的服务提供商联系,以提高小时邮件发送限制,提高服务器速度,php.ini:更改加载时间(此选项并非每次都有效),使用其他语言(如python)
答案 1 :(得分:0)
只需切换到 smtpd 即可将邮件放入队列并异步发送。