私は素晴らしい動作する電子メールを送信するためにPHPMailerを使用しています。ただし、電子メールを同期的に送信するため、後続のページの読み込みに時間がかかります。電子メールをPhpMailer経由で非同期で送信
この例ではhttps://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail.phps
を示したように、私はメール配信の非同期を作るための方法があるかどうか、私は疑問に思うphpmailerのを使用しています。私はこれを調査し、sendmailは、「バックグラウンドモード」に配信モードを設定するオプションを持っていることが判明 - ソースhttp://php.net/manual/en/function.mail.php
mail($to, $subject, $message, $headers, 'O DeliveryMode=b');
私は似た何かがphpmailerの中で行うことができるかどうかを知りたいですか?誰もがこれでどんな成功を収めましたか?
EDIT: - (追加情報) 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の対API呼び出しにインライン引数としてこれを行うことを好むだろうphp.iniの http://blog.oneiroi.co.uk/linux/php/php-mail-making-it-not-suck-using-sendmail/
経由でsendmailのオプションを設定する方法があるようにありえない世界を変化する。誰もこれを試しましたか?
素晴らしい返答です。詳細な説明をありがとう。とても有難い!!この主題になると、私は多少の悩みを抱えています。メールサーバーを選択してインストールするための推奨事項はありますか?私は共有ホスティングプランに入っています。私のウェブホストがカスタムのものをインストールできるかどうかはわかりません。 – rogerb
ほとんどのLinuxディストリビューションはpostfixを使用しています。しかし、他にもたくさんあります。あなたのISPがインストールを許可しない場合、おそらくすでに何かを提供しているか、近くのスマートホストを提供しているでしょう。彼らのドキュメントをチェックし、サポートチケットを開きます。もしそうでなければ、私は新しいサービスプロバイダをインストールすることをお勧めします... – Synchro
ありがとう@シンクロ。私はホスティングプロバイダが提供するデフォルトのメールサーバを使用して終了し、電子メールごとにおよそ2秒かかると(タイムスタンプ付きで)気づいた。だから私は私のウェブホストに電話をかけた。彼らは共有ホスティングプランに入って以来、遅れが予想された(明らかに彼らのメールサーバーは送信前に待ち行列に入れられたプロキシに送信する)。最後に、私は "-O DeliveryMode = b"をphp.ini(http://blog.oneiroi.co.uk/linux/php/php-mail-making-it-not-suck-using-sendmail/)に設定しました。大きな違いを作りました。メールはバックグラウンドモードで送信され、スクリプトは** 0.16秒で返されます!** – rogerb