Лечим 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, то отправка писем с помощью моего “хака” не работает вообще. но стоит только отключить плагин как сразу почта начинает работать вся!!!

Записи по теме

55 комментариев

Страницы: « 1 2 [3] Show All

  1. 41 CyberMax 2 июля 2008 в 5:58 (GMT+6)

    А ещё причиной неотправки писем может быть бан IP адреса хостера почтовыми серверами. То есть они то системой отправляются но до места назначения не доходят. Так например у меня на одном хостинге почта отправлялась и доходила отлично, а с другого хостинга с такой же версией WordPress, где все файлы один в один без изменений, почта доходила только на YahooMail и Gmail, а на Яндекс и MAIL.RU нивкакую.
    В итоге после обращения к хостеру, прочел внимательно те письма о неотправке что приходят на почту хостера (собственно рассказ для тех кто как и я на эти письма не обращает внимания :) ), оказалось что этими почтовиками забанен IP адрес моего хостинга. В письме о неотправке от MAIL.RU даже ссылка есть для запроса на снятие бана. После моего запроса MAIL.RU снял бан буквально через час, а Яндекс, после моего письма, через три дня с ответом что IP моего хостинга удален из списка динамических сетей (как-то так было написано). С получением почты с моих сайтов на эти почтовые сервисы стало всё нормально.
    Остался вопрос что делать с остальными? Например на почту моего интернет провайдера письма с моих сайтов так и не приходили. Проверил здесь http://2ip.ru/spam.php (проверка долго длится) IP своего хостера и IP тот что был в письмах о неотправке (тоже хостера только немного другой) на наличие в СПАМ базах и эти IP по всем базам “Not listed”. Или это не те базы или среди них просто нет базы которая стоит у моего интернет провайдера, а также наверное ещё на многих почтовых серверах.
    Вобщем в таком случае бан можно обойти с помощью плагина XPertMailer в котором можно настроить отправку почты через свой аккуант на Gmail. И ещё как вариант это покупка выделенного IP для хостинга :)


  2. 42 Yury 16 сентября 2008 в 3:09 (GMT+6)

    у меня вот тоже админу не отправляются. для версии 6.2 подходит данное лечение? или, может естьдругой метод?


  3. 43 Lecactus 16 сентября 2008 в 7:59 (GMT+6)

    @Yury: в моей сборке 2.6.2 поверпак лежит плагин wp-mail-smtp.работает


  4. 44 Yury 16 сентября 2008 в 13:48 (GMT+6)

    Lecactus, плагин активировал, хост, логин, пароль, настроил. включил смтп авторизацию. тестовое письмо по логу уходит, но на самом деле ничего не получаю на ящик. может у хостинга что-то не так?


  5. 45 Lecactus 16 сентября 2008 в 14:28 (GMT+6)

    @Yury: оно уже “не так” если не уходит штатным образом


  6. 46 Yury 17 сентября 2008 в 3:41 (GMT+6)

    Lecactus, письма стал получать :) зато теперь после одобрения коммента он не пропадает из списка неподтверждённых :) я начинаю любить wordpress


  7. 47 Fil 21 июня 2009 в 19:20 (GMT+6)

    Может быть не в тему, но когда я поставил wpPHPMailer с отправкой писем проблему решил, но теперь все письма приходят такого вида:
    п п п п п я ! п п п п п п !п п п п п п
    Как настроить кодировку?


  8. 48 Fil 21 июня 2009 в 19:39 (GMT+6)

    Пробывал ставить плагин wp_mail Cyrillic, меня кодировку отправяемых писем, но не помогает


  9. 49 all4life 16 июля 2009 в 6:39 (GMT+6)

    Излечился от этой головной боли установив плагин – WP-Mail-SMTP


  10. 50 ZradeG 20 августа 2009 в 7:33 (GMT+6)

    Не отправляется почта ни при регистрации, ни при вспоминании пароля. Пробовал править файл, как тут указано, не помогло. До того пробовал ставить wp-mail-smtp и единственное, где отсылалось – это проверка внутри настроек плагина, но все прочие реально необходимые места, где нужна отправка почты так и не заработали.
    Если отключить все плагины и попробовать получить восстановление пароля, то выдается такое сообщение:

    Письмо не может быть отправлено.
    Возможная причина: сервер не поддерживает функцию mail()… Обратитесь к техподдержке вашего хостинга

    При выключении всех плагинов и включении одного только wp-mail-smtp и последующей попытке отослать восстановление, выдается то же сообщение, но тестовое письмо из настроек плагина продолжает отправляться.
    Подскажите, плз, куда копать?


  11. 51 БезМозгоFF 9 октября 2009 в 18:14 (GMT+6)

    собственно по моему опыту этот мега глюк лечиться созданием на сервере почтового ящика вида:

    webmaster@domain.ru

    после этого почта начинает отправляться и ошибка перестает возникать.

    (где то еще видел про создание ящика вида wordpress@domain.ru но мне не пригодилось)


  12. 52 Сергей 4 марта 2010 в 11:04 (GMT+6)

    А на локальном сервере будет работать отправка писем или только на удаленном сервере это возможно? И еще у меня проблема с отправкой комментариев к заметкам… Где можно про это спросить?…


  13. 53 flat4er 19 марта 2010 в 13:34 (GMT+6)

    Сделал, как написано. Помогло. Спасибо большое.

    локальный сервер. Версия WP 2.9.2

    З.Ы: сейчас бы еще понять, как сделать адрес отправителя не wordpress@domain.ru, а, на пример, admin@domain.ru


  14. 54 Damian 14 апреля 2010 в 17:49 (GMT+6)

    Во-во, как сделать так, что бы писмо приходило не от WordPress, а от Администрации, например?


  15. 55 Damian 14 апреля 2010 в 17:50 (GMT+6)

    Уже весь интернет перерыл.


Страницы: « 1 2 [3] Show All

Комментарии не по теме удаляются! Читайте реадми дистрибутива, комментарии и FAQ! Прежде чем задавать глупые вопросы, прочитайте это. Научитесь ценить чужое время!

 Имя (обязательно)  EMAIL (обязательно)  АДРЕС ЛИЧНОГО БЛОГА

Вы соглашаетесь с правилами


При добавлении HTML|CSS|JS|PHP кода в комментарий, оформляйте его через кнопку КОД

 

Получать комментарии по RSS Адрес трэкбека