phpmailer занимает 5 секунд .. пока php mail () занимает меньше 1

0

Я пытаюсь отправить массовые сообщения электронной почты, и я использую класс phpmailer для отправки электронных писем, и они отправляют 5,2 секунды для отправки! Вот мой код, любая идея, почему его так долго?

<?php

//============

        require '../includes/PHPMailer-master/PHPMailerAutoload.php';

        $time_start = microtime(true);


//Create a new PHPMailer instance
$mail = new PHPMailer;
//Set who the message is to be sent from
$mail->setFrom('[email protected]', 'site');
$mail->CharSet = 'UTF-8';
//Set an alternative reply-to address
$mail->addReplyTo('[email protected]', 'site');
//Set who the message is to be sent to
$mail->addAddress('[email protected]', 'Name');
//Set the subject line
$mail->Subject = 'subject ';
$mail->msgHTML('test');
//send the message, check for errors
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}





            $time_end = microtime(true);
    $time = $time_end - $time_start;
    echo "Process Time 3: {$time} <br/>";
    // Process Time: 1.0000340938568



?>
Теги:
phpmailer

2 ответа

0
$mail->IsSMTP();

измените его на:

$mail->IsMail();  // set mailer to use Mail
0

Чтобы получить более точное представление о том, что происходит, используйте профайлер - он сразу же станет очевидным, где время идет. Я рекомендую xdebug с qcachegrind или PHPStorm.

Вы часто обнаружите, что SMTP для localhost быстрее, чем вы ожидаете - при вызове sendmail с postfix двоичный код sendmail делает SMTP-подключение к localhost в любом случае, поэтому вы можете уменьшить накладные расходы, используя SMTP напрямую. Подробнее см. В документах postfix.

msgHTML() выполняет различные действия, которые вам могут не понадобиться - настройка Body и AltBody будет осуществляться быстрее.

Как отмечали другие, если вы хотите отправить количество, большая часть накладных расходов может (и должна) быть перемещена за пределы цикла отправки, и вы можете получить прибыль от таких вещей, как keepalive.

Убедитесь, что вы используете последний PHPMailer - в недавних версиях, особенно в SMTP, были некоторые довольно большие ускорения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню