我编写了这个脚本,向客户发送他们的订单收据,但它有一个问题:
它不会等待 PDF 脚本。
所以它只需要 PDF 脚本,并在 PDF 脚本仍在处理 PDF 时开始执行它并发送邮件。我确信有一种方法可以延迟电子邮件脚本,但会使事情变得更复杂:
整个 order.php 使用 jquery ajax 调用执行,脚本将等待 php 完成,然后报告浏览器请求成功。所以它可能会等待超过五分钟,而客户会想知道为什么要花这么长时间。
所以我需要它等待 PDF 被创建然后发送邮件,但它不应该让客户等待。
这是我的代码:
<?php
$addid = "orderid.txt";
$current = file_get_contents($addid) + 1;
echo $current;
file_put_contents($addid, $current);
?>
<?php
// Lue tilauksen ID sähköpostia varten
$orderid = "orderid.txt";
$ordernumber = file_get_contents($orderid);
// Kirjoita kuitti
require('receipt.php');
?>
<?php
//Lähetä tilausvahvistus
require_once('mail/class.phpmailer.php');
$path = "kuitit/kuitti".$orderid.".pdf";
$bodytext = '
Olemme vastaanottaneet tilauksenne '. $ordernumber .'.
Tilaamanne tuotteet löytyvät liitteestä.'
;
$email = new PHPMailer();
$email->From = 'no-reply@coverlinefilms.fi';
$email->FromName = 'no-reply@coverlinefilms.fi';
$email->Subject = 'Olemme vastaanottaneet tilauksenne ' . $ordernumber;
$email->Body = $bodytext;
$email->AddAddress('christian.nikkanen@gmail.com');
$email->AddAttachment($path, 'kuitti777.pdf');
return $email->Send();
?>