2016-11-24 12 views
1

Exim 4.87を使用しているサーバーにPHPMailer 5.2.16があり、これには保護された接続用のTLS証明書も含まれています。セキュアSMTP電子メールの送信速度を上げるにはどうすればよいですか?

私のPHPはこのようです:

class MailerSMTP extends PHPMailer { 
    /*** 
    * Mailer for authenticated SMTP emails using account mail system 
    ***/ 
    public function __construct(){ 
     $this->AddReplyTo('...', '...'); 
     $this->setFrom('...', '...'); 
     $this->Host = "hostname.co.uk"; 
     $this->isSMTP(); 
     $this->Timeout = 20; 

     $this->SMTPAuth = true; 
     $this->SMTPSecure = "tls"; 
     $this->Port = "587"; 
     $this->Username = 'emailuser'; 
     $this->Password = 'emailpass'; 
    } 
} 

そして、これは明らかに、スクリプトに呼び出され、レシーバとメッセージが移入さなどSMTPSecure縦横約2秒が追加されますが

(または時々もう少し)メッセージを送信するのにかかる時間。現在のところ、この遅延は単一のメッセージ送信であり、私は希望(私はどこか読んでいると思う)は、SMTPの安全性は、受信者のX番号にメッセージのX番号を送信するために一度呼び出す必要があります。

  • 私はこの遅延を受け入れながらある程度避けられないことが、私は、このメソッドを介してセキュアなSMTPの効率を改善する方法に上のいくつかのアドバイスをご希望のでしょうか?

ボーナス質問:

  • 私は関係なく、それを介して送信されたメールの数の、このクラスをインスタンス化するときに、この遅延は一度だけ発生すると考えで正しいですか?

私はこのような何か行うことができます想像:

$sender = new MailerSMTP(); 
$sender->subject ="hello"; 
$sender->Body = "message"; 
foreach($receiver as $row){ 
    $sender->addAddress($row['email']); 
    $sender->send(); 
    $sender->clearAddresses(); 
} 

を、これはわずか2秒SMTPSecure遅れですべてのメールを送信しませんか?

答えて

1

はい、TLSは接続オーバーヘッドを追加します。 TLSなしでSMTP経由でローカルメールサーバーに送信することで回避できます。これは、スクリプトを解凍する最も速い方法です。サーバーから離れることがないため安全です。メールサーバーが安全にそこから中継されるように構成できます。

あなたは複数のメッセージのことがほぼありますが、私はPHPMailerで提供されているmailing list exampleを見ることをお勧めします。一度に複数のメッセージを送信するときに最も重要な点は、各メッセージの接続オーバーヘッドを繰り返さないようにするキープアライブを有効にすることです。

+0

同じオブジェクトの複数の郵送に関する情報をありがとうございます。これはまれに使用する形式なので、正しいアプローチであることを再確認する必要はありません。私はキープアライブの例を研究します。 – Martin

+0

私は[Host->]を使って[以前の問題](http://stackoverflow.com/questions/40616539/phpmailer-update-issue-from-5-2-9-to-5-2-16) localhost "をPHPMailersの5.2.9より上に置いていますが、(localhostであっても)ホスト名を使用するとこの問題が回避されることがわかりました。 – Martin

+0

私は、 'localhost'では動作しないので、' SMTPAuth'要因によってもかなりの遅れが生じることが分かりました。リモートホストを提供する必要があるので、サーバが遠隔から自分自身に接続しようと時間を費やしているようです。そのようにSMTP送信者を認証します。 – Martin

関連する問題