Лечим 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, то отправка писем с помощью моего “хака” не работает вообще. но стоит только отключить плагин как сразу почта начинает работать вся!!!
Рубрики: Wordpress Метки: Mu, Wordpress, глюки
Распечатать
Записи по теме
55 комментариев
Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии и FAQ! Прежде чем задавать глупые вопросы, прочитайте это. Научитесь ценить чужое время!


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

А ещё причиной неотправки писем может быть бан IP адреса хостера почтовыми серверами. То есть они то системой отправляются но до места назначения не доходят. Так например у меня на одном хостинге почта отправлялась и доходила отлично, а с другого хостинга с такой же версией WordPress, где все файлы один в один без изменений, почта доходила только на YahooMail и Gmail, а на Яндекс и MAIL.RU нивкакую.
В итоге после обращения к хостеру, прочел внимательно те письма о неотправке что приходят на почту хостера (собственно рассказ для тех кто как и я на эти письма не обращает внимания :) ), оказалось что этими почтовиками забанен IP адрес моего хостинга. В письме о неотправке от MAIL.RU даже ссылка есть для запроса на снятие бана. После моего запроса MAIL.RU снял бан буквально через час, а Яндекс, после моего письма, через три дня с ответом что IP моего хостинга удален из списка динамических сетей (как-то так было написано). С получением почты с моих сайтов на эти почтовые сервисы стало всё нормально.
Остался вопрос что делать с остальными? Например на почту моего интернет провайдера письма с моих сайтов так и не приходили. Проверил здесь (проверка долго длится) IP своего хостера и IP тот что был в письмах о неотправке (тоже хостера только немного другой) на наличие в СПАМ базах и эти IP по всем базам “Not listed”. Или это не те базы или среди них просто нет базы которая стоит у моего интернет провайдера, а также наверное ещё на многих почтовых серверах.
Вобщем в таком случае бан можно обойти с помощью плагина XPertMailer в котором можно настроить отправку почты через свой аккуант на Gmail. И ещё как вариант это покупка выделенного IP для хостинга :)
у меня вот тоже админу не отправляются. для версии 6.2 подходит данное лечение? или, может естьдругой метод?
16 сентября 2008 в 7:59 (GMT+6)
@Yury: в моей сборке 2.6.2 поверпак лежит плагин wp-mail-smtp.работает
Lecactus, плагин активировал, хост, логин, пароль, настроил. включил смтп авторизацию. тестовое письмо по логу уходит, но на самом деле ничего не получаю на ящик. может у хостинга что-то не так?
16 сентября 2008 в 14:28 (GMT+6)
@Yury: оно уже “не так” если не уходит штатным образом
Lecactus, письма стал получать :) зато теперь после одобрения коммента он не пропадает из списка неподтверждённых :) я начинаю любить wordpress
21 июня 2009 в 19:20 (GMT+6)
Может быть не в тему, но когда я поставил wpPHPMailer с отправкой писем проблему решил, но теперь все письма приходят такого вида:
п п п п п я ! п п п п п п !п п п п п п
Как настроить кодировку?
21 июня 2009 в 19:39 (GMT+6)
Пробывал ставить плагин wp_mail Cyrillic, меня кодировку отправяемых писем, но не помогает
16 июля 2009 в 6:39 (GMT+6)
Излечился от этой головной боли установив плагин – WP-Mail-SMTP
20 августа 2009 в 7:33 (GMT+6)
Не отправляется почта ни при регистрации, ни при вспоминании пароля. Пробовал править файл, как тут указано, не помогло. До того пробовал ставить wp-mail-smtp и единственное, где отсылалось – это проверка внутри настроек плагина, но все прочие реально необходимые места, где нужна отправка почты так и не заработали.
Если отключить все плагины и попробовать получить восстановление пароля, то выдается такое сообщение:
При выключении всех плагинов и включении одного только wp-mail-smtp и последующей попытке отослать восстановление, выдается то же сообщение, но тестовое письмо из настроек плагина продолжает отправляться.
Подскажите, плз, куда копать?
собственно по моему опыту этот мега глюк лечиться созданием на сервере почтового ящика вида:
webmaster@domain.ru
после этого почта начинает отправляться и ошибка перестает возникать.
(где то еще видел про создание ящика вида wordpress@domain.ru но мне не пригодилось)
А на локальном сервере будет работать отправка писем или только на удаленном сервере это возможно? И еще у меня проблема с отправкой комментариев к заметкам… Где можно про это спросить?…
19 марта 2010 в 13:34 (GMT+6)
Сделал, как написано. Помогло. Спасибо большое.
локальный сервер. Версия WP 2.9.2
З.Ы: сейчас бы еще понять, как сделать адрес отправителя не wordpress@domain.ru, а, на пример, admin@domain.ru
Во-во, как сделать так, что бы писмо приходило не от WordPress, а от Администрации, например?
Уже весь интернет перерыл.