У меня есть PHPMailer 5.2.16 на сервере с использованием Exim 4.87, который также имеет сертификат TLS для защищенных соединений.Как увеличить скорость отправки сообщений Secure 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
задержки?
Благодарим за информацию о нескольких рассылках на одном и том же объекте. Это формат, который я редко использую, поэтому дважды проверял, что это правильный подход. Я буду исследовать примеры живых событий. – Martin
У меня был [предыдущий выпуск] (http://stackoverflow.com/questions/40616539/phpmailer-update-issue-from-5-2-9-to-5-2-16) с использованием 'Host->" localhost "на PHPMailers выше 5.2.9, но обнаружил, что использование имени хоста (даже если это локальный хост) обошли эту проблему. – Martin
Я обнаружил, что значительная задержка также вызвана фактором 'SMTPAuth', поскольку это не работает на' localhost'. Мне нужно предоставить удаленный хост, поэтому сервер, похоже, проводит время, пытаясь дистанционно подключиться к себе и аутентификация SMTP-отправителя таким образом. – Martin