我们使用SMTP从我的网站发送电子邮件。使用Email :: MIME,然后使用Email :: Sender :: Transport :: SMTP构建,将其传递到我们的SMTP服务器进行发送:
my $transport = Email::Sender::Transport::SMTP->new({
host => 'smtp.gmail.com',
port => 465,
ssl => 1,
sasl_username => '[email protected]',
sasl_password => 'xxxx'
});
sendmail($email,{ to => ['[email protected]'] });
我的问题是它的血腥速度太慢了!(每封电子邮件至少需要4-5秒,如果您向客户端发送一封电子邮件+向我们(管理员)发送一封电子邮件,那就是10秒钟。我们不断使人们认为该网站似乎挂起了,因此已损坏
所以我的问题-如何在不挂起Perl脚本的情况下发送SMTP电子邮件?我不太在乎错误捕获。主要问题是尽可能快地发送电子邮件
谢谢
显而易见的方法是不实际从Web应用程序发送电子邮件。而是将有关电子邮件的信息写入作业队列,并让另一个作业(可能从运行cron
)开始查看该队列并发送所有需要发送的电子邮件。这样,网页将立即返回,用户将在几分钟之内收到他们的邮件。
上一次我尝试这样的事情时,施瓦茨是最推荐的工作队列管理器之一。人们现在可能会推荐一些东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句