Установка
По умолчанию Drupal использует для отправки почты возможности хостинга, но я столкнулся с такой неприятностью, что у меня не доходили письма на почтовые ящики mail.ru. А на них сидит большая половина русского человечества.
Для отправки писем я воспользовался модулем SMTP и скриптом phpMailer_v2.2.1 (именно v2.2.1 так как модуль SMTP не поддерживает версию выше).
Модуль, как обычно, копируется в /sites/all/modules
Скрипт копируется в /sites/all/modules/smtp/phpmailer
Рекомендую сразу пропатчить файл class.phpmailer.php в скрипте phpmailer
В модуле уже лежат патчи, но я прикрепил к этому посту уже пропатченный.
Далее модуль нужно включить в списке модуле Drupal.
Настройка
Заходим на страницу /admin/settings/smtp
Там:
Turn this module on or off: on
SMTP сервер: имя SMTP сервера, через который будет посходить отправка
SMTP backup server: если предыдущий не будет найден, то будет использован этот
SMTP порт: 25
Авторизация SMTP - тут я оставил пустым, но для некоторых серверов она нужна
От кого: обратный адрес
Имя отправителя: Имя отправителя
E-mail address to send a test e-mail to: Адрес, куда отправить тестовое сообщение
Оригинал тут
Вложение | Размер |
---|---|
class.phpmailer.zip | 13.24 КБ |
Комментарии
А почему друпаловская почта не доходит до mail.ru?
Я сталкивался со сходной проблемой, что часть писем теряется.
А теперь даже подозреваю какие письма ...
Но почему? Фильтры типа спамассасин фильтруют друпаловские заголовки?
У майл.ру крышу рвёт, например, недавно, майл.ру блочило стандартные письма из уберкарта, надо было текст менять.
Притом банило не за конкретный текст, а чисто за структуру письма.
у меня не работает, в нете ничего не нашел.
если на странице "admin/settings/smtp" поставить галочку "Enable debugging", то выводится следующее:
......
SMTP -> FROM SERVER:
250-by108.activeby.net Hello mysite [81.25.43.125]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "250 OK
"
SMTP -> get_lines(): $data is "250 OK
"
SMTP -> FROM SERVER:
250 OK
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "550 relay not permitted
"
SMTP -> get_lines(): $data is "550 relay not permitted
"
SMTP -> FROM SERVER:
550 relay not permitted
SMTP -> ERROR: RCPT not accepted from server: 550 relay not permitted
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "250 Reset OK
"
SMTP -> get_lines(): $data is "250 Reset OK
"
SMTP -> FROM SERVER:
250 Reset OK
.....
в чем может быть проблема?
я это видел. почему такое сообщение?
К хостеру
ясно, спасибо
еще один вопрос)
что нужно чтобы друпал отправлял писма при регистрации?
на странице "admin/user/settings" выбрал:
"Посетители могут создавать учетные записи, разрешение администратора не требуется.",
"Требуется подтверждение по электронной почте, когда посетитель создает учетную запись" - чекбокс отмечен.
при регистрации пользователя, сообщение об успехе или неудаче не выводится, письмо не отправляется, хотя пользователь создается.
может еще что надо включить?
К хостеру, не удивлюсь если оба косяка связаны
Я с хостером проблему не решал, просто отправляю письмо от другого адресата, с mail.ru.
При настройке модуля SMTP, отправляю тестовое письмо, и оно теперь отправляется нормально.
Но при регистрации пользователя письмо не отправляется, даже сообщений никаких. Мне кажется дело в друпале.
а, сайт расположен локально
Спасибо. Мне помогло. Только мучает меня один вопрос. Почему Друпал стандартными средствами не смог отправлять почту ?
Заставил хостера внести изменения на сайте: поменять строчку в заголовке (envelope-from ) - необходимо сменить указанный п/я на любой другой кроме mail.ru
А что касается кракозябр, то попробуйте убрать везде в отправителе всё кроме непосредственно ящика.
Попробуйте в /admin/settings/mimemail установить галочку Use simple address format