Т.е. иногда будущий пользователь спотыкается об ошибку 503, генерируемую в самом конце Notifier.php
При этом на том же хостинге имеется самописный сайт, который годами без сбоев отправляет почту через mail().
После некоторого гугления нашел вот это:
Обратите внимание на то, что особенность отправки почты с панелей такова, что письма можно отправлять не чаще, чем 1 раз в 0,3с. Если отправлять письма скриптом, то они отправляются сразу пачкой и не проходят в этот интервал. Легче всего этого избежать, добавив в скрипты sleep(1); после mail(), и тогда письма будут отправляться нормально.
Ага. А у нас как раз при регистрации отправка двух писем подряд: первое - админу, второе - пользователю.
И правда, первое письмо приходит всегда, второе - не всегда.
Что делать? Последуем совету и вставим sleep(1); в \protected\modules\notifier\components\Notifier.php
- Код: Выделить всё
if($userId)
$user = User::model()->findByPk($userId);
else
$user = Yii::app()->user;
if(isset($this->_userRules[$eventName]) && $user){
$active = isset($this->_userRules[$eventName]['active']) ? $this->_userRules[$eventName]['active'] : 0;
if($active){
sleep(1); //<------- вот сюда
$this->_processEvent($this->_userRules[$eventName], $model, $user, false, $forceEmail);
}
}
Пока полет нормальный...