Лечим WORDPRESS от мегаглюка с неотправкой писем
Сегодня копался в коде и решил поэкспериментировать. в итоге покопался в коде файла
wp-includes/class-phpmailer.php и немного подправил код. везде вместо mail и sendmail написал smtp и задал настройки смтп провайдера. тут приведены только измененные строки (— значит пропуск кода)
var $From = "тут вписал свое мыло";
---
/**
* Method to send mail: ("mail", "sendmail", or "smtp").
* @var string
*/
var $Mailer = "smtp";
---
/////////////////////////////////////////////////
// SMTP VARIABLES
/////////////////////////////////////////////////
/**
* Sets the SMTP hosts. All hosts must be separated by a
* semicolon. You can also specify a different port
* for each host by using this format: [hostname:port]
* (e.g. "smtp1.example.com:25;smtp2.example.com").
* Hosts will be tried in order.
* @var string
*/
var $Host = "smtp.sibmail.ru";
---
/**
* Sets Mailer to send message using SMTP.
* @return void
*/
function IsSMTP() {
$this->Mailer = "smtp";
}
/**
* Sets Mailer to send message using PHP mail() function.
* @return void
*/
function IsMail() {
$this->Mailer = "smtp";
}
/**
* Sets Mailer to send message using the $Sendmail program.
* @return void
*/
function IsSendmail() {
$this->Mailer = "smtp";
}
/**
* Sets Mailer to send message using the qmail MTA.
* @return void
*/
function IsQmail() {
$this->Sendmail = "/var/qmail/bin/sendmail";
$this->Mailer = "smtp";
}
Желаю удачи! Мне помогло. отправка мыла при регистрации и вспоминании паролей, а также о новых комментариях стало чуть дольше, но работает!
Проверил работу на (оригинальном английском, моей сборки русской и русской от maxsite.org) wordpress 2.3 / 2.3.1, а также на wordpress mu 1.3
на новых базах все работает, а на моих двух основных (этот сайт и сайт кота) не хочет упорно, только с плагином wpphpmailer все работает. видно где то в базе что то не нравится, т.к. блоги я там обновлял начиная с 2.0.4 перебрал все версии и что то осталось видно :(
UPD проверил на “блоге кота” – экспортировал все записи в XML , залил в новую базу. теперь почта через SMTP ходит нормально. осталось найти разницу в базе…
UPD2 методом нескольких бэкапов и тестов с отключением плагинов был выявлен нарушитель работы: если включен плагин wp_mail_cyr, то отправка писем с помощью моего “хака” не работает вообще. но стоит только отключить плагин как сразу почта начинает работать вся!!!
Связанные записи
65 комментариев
Страницы: « 1 2 [3] 4 » Show All
Трэкбеки и пингбеки
Страницы: « 1 2 [3] 4 » Show All
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии выше и FAQ! Прежде чем задавать вопрос, прочитайте это. Научитесь ценить чужое время!


(голосов: 8, средний: 3.75 из 5)

17 января 2008 в 15:14 (GMT+6)
я бы на вашем месте давно бы сменил его, даже если бы он был сверхвыгоден
17 января 2008 в 17:29 (GMT+6)
Ваше предложение? Бесплатный и под WordPress + Mail()
17 января 2008 в 17:53 (GMT+6)
vagonchik.com например (вроде не было жалоб на него)
22 февраля 2008 в 23:20 (GMT+6)
а глюк с обрезкой или с неправильными символами в уведомлениях по почте откуда может взяться? пример заголовка письма:
[имя сайта] пожалуйста, промо�криншотов на PSP”
22 февраля 2008 в 23:23 (GMT+6)
у меня также. я не победил. это с кодировкой UTF8 так получается в теме писем.
1 марта 2008 в 2:31 (GMT+6)
Спасибо, пригодилось. Кстати, на ayola все работает, там просто вручную smtp надо запрашивать через админов.
22 марта 2008 в 1:38 (GMT+6)
Короче в чем у меня ситуация: почта для домена на котором стоит блог была перенастроена на GoogleApps и после этого все письма и уведомления с блога отлавливается только хосте, а в мой e-mail они не попадают.
И не помогает не один из описанных решений :(
Бен, это Данила. Ай ниид хелп ;)
25 марта 2008 в 18:59 (GMT+6)
Такой вопрос, почта уходит, все нормально. Но если в настройках WordPress выбрать “Роль нового пользователя (по умолчанию)”, как Автор, то при регистрации письмо с паролем не уходит, пробовал все описанные способы, ничего не помогает. Может так все и было задумано, для того, чтобы только администратор мог назначить роль пользователю?
25 марта 2008 в 19:11 (GMT+6)
что то я сильно сомневаюсь. похоже это “еще один баг”
25 марта 2008 в 19:22 (GMT+6)
Хм, не уходит именно на почту Gmail и GoogleApps, на ящик того же хостинга, спокойно доставляется.
Сорри подписчику на Gmail тоже не доходит((((
13 мая 2008 в 0:38 (GMT+6)
пора бы наверно настройки поменять в новой версии уже кажысь по другому все.. а глюк остался..
13 мая 2008 в 0:40 (GMT+6)
“класс” в новой версии этот же, я просто взял файл из бэкапа 2.3.3 и поставил в 2.5.1
26 июня 2008 в 22:51 (GMT+6)
Господа, можно “лечить” на много проще!
Ошибка лишь в том, что посылаются два письма подряд (Админу, а затем пользователю) без паузы. Добавляем sleep(2) между посылками писем в файле wp-includes\pluggable.php (функция “wp_new_user_notification”) и будет Вам счастье!
26 июня 2008 в 23:30 (GMT+6)
ну то что при восстановлении пароля админа приходит ОДНО мыло тут ничто не поможет. почему то при использовании ВНЕШНЕГО smtp сервера все работает
2 июля 2008 в 5:58 (GMT+6)
А ещё причиной неотправки писем может быть бан IP адреса хостера почтовыми серверами. То есть они то системой отправляются но до места назначения не доходят. Так например у меня на одном хостинге почта отправлялась и доходила отлично, а с другого хостинга с такой же версией WordPress, где все файлы один в один без изменений, почта доходила только на YahooMail и Gmail, а на Яндекс и MAIL.RU нивкакую.
В итоге после обращения к хостеру, прочел внимательно те письма о неотправке что приходят на почту хостера (собственно рассказ для тех кто как и я на эти письма не обращает внимания :) ), оказалось что этими почтовиками забанен IP адрес моего хостинга. В письме о неотправке от MAIL.RU даже ссылка есть для запроса на снятие бана. После моего запроса MAIL.RU снял бан буквально через час, а Яндекс, после моего письма, через три дня с ответом что IP моего хостинга удален из списка динамических сетей (как-то так было написано). С получением почты с моих сайтов на эти почтовые сервисы стало всё нормально.
Остался вопрос что делать с остальными? Например на почту моего интернет провайдера письма с моих сайтов так и не приходили. Проверил здесь (проверка долго длится) IP своего хостера и IP тот что был в письмах о неотправке (тоже хостера только немного другой) на наличие в СПАМ базах и эти IP по всем базам “Not listed”. Или это не те базы или среди них просто нет базы которая стоит у моего интернет провайдера, а также наверное ещё на многих почтовых серверах.
Вобщем в таком случае бан можно обойти с помощью плагина XPertMailer в котором можно настроить отправку почты через свой аккуант на Gmail. И ещё как вариант это покупка выделенного IP для хостинга :)
16 сентября 2008 в 3:09 (GMT+6)
у меня вот тоже админу не отправляются. для версии 6.2 подходит данное лечение? или, может естьдругой метод?
16 сентября 2008 в 7:59 (GMT+6)
@Yury: в моей сборке 2.6.2 поверпак лежит плагин wp-mail-smtp.работает
16 сентября 2008 в 13:48 (GMT+6)
Lecactus, плагин активировал, хост, логин, пароль, настроил. включил смтп авторизацию. тестовое письмо по логу уходит, но на самом деле ничего не получаю на ящик. может у хостинга что-то не так?
16 сентября 2008 в 14:28 (GMT+6)
@Yury: оно уже “не так” если не уходит штатным образом