我正在使用PHPMailer发送电子邮件,效果很好。然而问题在于,由于它同步发送电子邮件,所以后续页面加载需要很长时间。
我正在使用PhpMailer,如此示例所示 https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps 我想知道是否有一种方法可以使电子邮件传递异步化。我进行了研究,并发现sendmail有一个选项可以将DeliveryMode设置为“后台模式” - 来源 http://php.net/manual/en/function.mail.php
我想知道是否可以在PhpMailer中实现类似的功能?有人成功过吗?
编辑:(附加信息)似乎可以配置PhpMailer使用sendmail-https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php因此,我想知道这是否可以在后台进行交付。
我正在使用PhpMailer,如此示例所示 https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps 我想知道是否有一种方法可以使电子邮件传递异步化。我进行了研究,并发现sendmail有一个选项可以将DeliveryMode设置为“后台模式” - 来源 http://php.net/manual/en/function.mail.php
mail($to, $subject, $message, $headers, 'O DeliveryMode=b');
我想知道是否可以在PhpMailer中实现类似的功能?有人成功过吗?
编辑:(附加信息)似乎可以配置PhpMailer使用sendmail-https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php因此,我想知道这是否可以在后台进行交付。
/**
* Which method to use to send mail.
* Options: "mail", "sendmail", or "smtp".
* @type string
*/
public $Mailer = 'mail';
/**
* The path to the sendmail program.
* @type string
*/
public $Sendmail = '/usr/sbin/sendmail';
/**
* Whether mail() uses a fully sendmail-compatible MTA.
* One which supports sendmail's "-oi -f" options.
* @type boolean
*/
public $UseSendmailOptions = true;
/**
* Send messages using $Sendmail.
* @return void
*/
public function isSendmail()
{
$ini_sendmail_path = ini_get('sendmail_path');
if (!stristr($ini_sendmail_path, 'sendmail')) {
$this->Sendmail = '/usr/sbin/sendmail';
} else {
$this->Sendmail = $ini_sendmail_path;
}
$this->Mailer = 'sendmail';
}
此外,显然有一种方法可以通过php.ini设置sendmail选项。 http://blog.oneiroi.co.uk/linux/php/php-mail-making-it-not-suck-using-sendmail/
我更喜欢将其作为api调用的内联参数而不是php.ini中的全局更改。有人试过这个吗?