Enviar email de forma assíncrona via PhpMailer
Estou usando o PHPMailer para enviar e-mail, o que funciona muito bem. O problema, porém, é que, como ele envia o email de forma síncrona, o carregamento da página subsequente leva muito tempo.
Estou usando o PhpMailer, como mostrado neste exemplohttps://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps
Gostaria de saber se existe uma maneira de tornar a entrega de email assíncrona. Eu pesquisei isso e descobri que o sendmail tem uma opção para definir o DeliveryMode como "modo de segundo plano" - fontehttp://php.net/manual/en/function.mail.php
mail($to, $subject, $message, $headers, 'O DeliveryMode=b');
Quero saber se algo semelhante pode ser feito no PhpMailer? alguém teve algum sucesso com isso?
EDIT: - (Informações adicionais) Parece que o PhpMailer pode ser configurado para usar o sendmail -https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php Portanto, eu me pergunto se isso pode ser de alguma forma aproveitado para permitir a entrega em segundo plano.
/**
* 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';
}
Além disso - aparentemente, há uma maneira de definir opções do sendmail via php.inihttp://blog.oneiroi.co.uk/linux/php/php-mail-making-it-not-suck-using-sendmail/
Eu preferiria fazer isso como um argumento embutido para a chamada da API vs php.ini, para que não seja uma mudança global. alguem ja tentou isso?