【问题标题】:Too Much time taken by phpmailer libraryphpmailer 库花费了太多时间
【发布时间】:2020-07-23 02:25:40
【问题描述】:

我正在创建一个脚本,每天将 10 个文件发送给不同的收件人。这些文件的大小可达 15 MB。 phpmailer 需要花费 10 到 15 分钟的大量时间。所以它对我来说变得无法使用。我正在使用 gmail smtp。

//Server settings
//$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
$mail->SMTPDebug = 0; //Alternative to above constant
$mail->isSMTP();                                            // Send using SMTP
$mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
$mail->SMTPAuth   = true;                                   // Enable SMTP authentication
$mail->Username   = 'rmudelhi@gmail.com';                     // SMTP username
$mail->Password   = 'rainfall2016';                               // SMTP password
//$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
$mail->SMTPSecure= 'tls';
$mail->Port       = 587;   

有人可以帮我改进吗?

【问题讨论】:

  • 能否请您发布发送电子邮件的代码?

标签: performance email gmail phpmailer attachment


【解决方案1】:

并不是说 PHPMailer 很慢,而是你试图在页面加载期间执行一个固有的缓慢操作; 每个收件人传输了大约 150 兆字节,这永远不会很快发生。

不要在页面加载期间发送电子邮件 - 将您需要发送的事实保存在数据库或队列中,并异步处理发送。

执行此操作的最简单方法是使用 cron 作业来获取发送任务并运行它们。

或者,不要通过电子邮件发送文件,而是发送包含指向它们的链接的消息,以便收件人可以通过 HTTP 更有效地下载它们。电子邮件根本不是发送大文件的有效方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-15
    • 2013-07-11
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多