Не приходит письмо с активацией/регистрацией

Пишите о найденных ошибках в эту тему

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Не приходит письмо с активацией/регистрацией

Сообщение Regarer » 27 май 2014, 10:54

Ребят, а почему когда просто регистрируешся, письмо c активацией доходит, а когда через создание нового объявления - нет? (почта в обоих случаях mail.ru)
Regarer
Незнакомец
 
Сообщения: 7
Зарегистрирован: 23 май 2014, 12:28
Очки репутации: 0

Re: Не приходит письмо с активацией/регистрацией

Сообщение andipas » 27 май 2014, 11:39

в файле \protected\modules\guestad\controllers\MainController.php

заменить код:

$notifier->raiseEvent('onNewUser', $user, $user->id);

на:

$notifier->raiseEvent('onNewUser', $user, array('forceEmail'=>$user->email));
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Не приходит письмо с активацией/регистрацией

Сообщение Regarer » 27 май 2014, 11:51

Спасибо!
и еще вопрос по ходу ... можно добавить поля для фото при создании объявления quest'om?
или это уже платный модуль?
Regarer
Незнакомец
 
Сообщения: 7
Зарегистрирован: 23 май 2014, 12:28
Очки репутации: 0

Re: Не приходит письмо с активацией/регистрацией

Сообщение Regarer » 27 май 2014, 11:57

и было бы здорово, если после тыка на ссылку активациии человек попадал сразу в свой личный кабинет. Разумно?
Regarer
Незнакомец
 
Сообщения: 7
Зарегистрирован: 23 май 2014, 12:28
Очки репутации: 0

Re: Не приходит письмо с активацией/регистрацией

Сообщение userpic » 28 май 2014, 18:48

andipas писал(а):в файле \protected\modules\guestad\controllers\MainController.php

заменить код:

$notifier->raiseEvent('onNewUser', $user, $user->id);

на:

$notifier->raiseEvent('onNewUser', $user, array('forceEmail'=>$user->email));


Замена данного кода не исправляет ошибку и не восстанавливает работоспособность отправки почты.
Создав условие отправки почты при любых условиях вы игнорируете ошибку формирования письма когда не указан адресат и его нет в базе!!!!!!!! Вы сначала отправляете письмо, а потом записываете данные пользователя в БД.
В итоге: адрес не записан в БД >>> скрипт отправляет письмо >>> ошибка.

Такая ошибка в бесплатной (читайте - пробной) версии увы портит все впечатление...
userpic
Незнакомец
 
Сообщения: 5
Зарегистрирован: 28 май 2014, 18:34
Очки репутации: 0

Re: Не приходит письмо с активацией/регистрацией

Сообщение Vlad » 28 май 2014, 23:56

userpic, сейчас у себя попробовал.
Не регистрируясь, нажал "Добавить объявление", заполнил поля на продажу дома, имя, ящик и отправил.
Письмо пришло на этот ящик с паролем и ссылкой на активацию.
И пришло письмо админу о новой регистрации.
Зашел в админку, а там есть и новый пользователь и его объявление.
Т. е., как бы всё работает правильно.

Строку заменил как советовали выше.
Vlad
Прохожий
 
Сообщения: 26
Зарегистрирован: 26 май 2014, 21:29
Очки репутации: 3

Re: Не приходит письмо с активацией/регистрацией

Сообщение userpic » 29 май 2014, 07:19

Vlad писал(а):userpic
Строку заменил как советовали выше.

Отлично что работает у вас. С почтой GMAIL ? Попробуйте с почтой домена. инфо@вашсайт.ру
Cлучай же не работоспособности не единичный.
Суть реально существующей проблемы и механизм ее возникновения я описал выше. Странно что ее не спешат устранять.
userpic
Незнакомец
 
Сообщения: 5
Зарегистрирован: 28 май 2014, 18:34
Очки репутации: 0

Re: Не приходит письмо с активацией/регистрацией

Сообщение Vlad » 29 май 2014, 11:50

userpic, мне тож хотелось бы разобраться в этом.
Да, тестирую скрипт свеже-скачанный. Вы свою копию давно скачали?

Сейчас попробовал вернуть старую строку и добавить объявление с регистрацией.
Если не заполнить какие-нибудь поля, то система предупреждает и, естественно, письмо не отправляет.
Когда всё заполнил, то система выдала сообщение:
Ошибка 503
Письмо не было отправлено ErrorInfo: You must provide at least one recipient email address.
Опять вернул правильную строку в коде - и стало работать.

Кстати, проверяю только отправку писем, а не получение.
Но если
С почтой GMAIL ? Попробуйте с почтой домена. инфо@вашсайт.ру
на одни ящики приходят письма, а на другие нет, то скорей всего дело в настройках ящиков-получателей.

Повторюсь. Хотелось бы выяснить. Может ещё кто-нибудь потестирует?
Vlad
Прохожий
 
Сообщения: 26
Зарегистрирован: 26 май 2014, 21:29
Очки репутации: 3

Re: Не приходит письмо с активацией/регистрацией

Сообщение andipas » 29 май 2014, 12:01

userpic писал(а):
andipas писал(а):в файле \protected\modules\guestad\controllers\MainController.php

заменить код:

$notifier->raiseEvent('onNewUser', $user, $user->id);

на:

$notifier->raiseEvent('onNewUser', $user, array('forceEmail'=>$user->email));


Замена данного кода не исправляет ошибку и не восстанавливает работоспособность отправки почты.
Создав условие отправки почты при любых условиях вы игнорируете ошибку формирования письма когда не указан адресат и его нет в базе!!!!!!!! Вы сначала отправляете письмо, а потом записываете данные пользователя в БД.
В итоге: адрес не записан в БД >>> скрипт отправляет письмо >>> ошибка.

Такая ошибка в бесплатной (читайте - пробной) версии увы портит все впечатление...


С чего Вы взяли, что "Вы сначала отправляете письмо, а потом записываете данные пользователя в БД"?

Если посмотреть код, то четко видно, что сначала создается пользователь в БД, а потом, если он успешно создан идет отправка письма:

Код: Выделить всё

                        $userData 
User::createUser($user->attributes);

                        if (
$userData) {
                            
$user $userData['userModel'];

                            
$user->password $userData['password'];
                            
$user->activatekey $userData['activatekey'];
                            
$user->activateLink $userData['activateLink'];

                            
$notifier = new Notifier;
                            
$notifier->raiseEvent('onNewUser'$user, array('forceEmail'=>$user->email));
                        }
 
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Не приходит письмо с активацией/регистрацией

Сообщение userpic » 29 май 2014, 12:31

Сделал как предложено с заменой кода
почта вида инфо@мойсайт.ру
результат
Код: Выделить всё
CDbException

CDbCommand не удалось исполнить SQL
-запросSQLSTATE[HY000]: General error2006 MySQL server has gone away

Если это возможно, проверьте пожалуйста еще раз
userpic
Незнакомец
 
Сообщения: 5
Зарегистрирован: 28 май 2014, 18:34
Очки репутации: 0

След.

Вернуться в Ошибки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2