用Perl发送SMTP电子邮件的更快方法



我们使用SMTP从我的网站发送电子邮件。使用电子邮件::MIME,然后邮件::发件人::传输::SMTP将其传递到我们的SMTP服务器以发送:

my $transport = Email::Sender::Transport::SMTP->new({
host => 'smtp.gmail.com',
port => 465,
ssl => 1,
sasl_username => 'hello@foo.com',
sasl_password => 'xxxx'
});
sendmail($email,{ to  => ['andy@foo.com'] });

我的问题是它太慢了!(每封电子邮件至少需要4-5秒,如果你向客户发送一封电子邮件+向我们(管理员(发送一封邮件,则需要10秒。我们一直让人们认为网站坏了,因为它似乎挂着

因此,我的问题是,如何在不挂起Perl脚本的情况下发送SMTP电子邮件?我真的不在乎错误捕捉。主要问题是尽快将电子邮件发送出去

感谢

显而易见的方法是不从web应用程序实际发送电子邮件。相反,将有关电子邮件的信息写入作业队列,然后让另一个作业(可能从cron运行(查看队列并发送任何需要发送的电子邮件。这样,网页会立即返回,用户会在几分钟内收到邮件。

上次我尝试这样的方法时,The Schwartz是最受推荐的工作队列管理者之一。人们现在可能会推荐一些东西。

最新更新