Лечим 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 комментариев на запись “Лечим WORDPRESS от мегаглюка с неотправкой писем”
Трэкбеки и пингбеки
- mamanov · Настраиваем оповещение на email или чиним ошибку mail()
- My blog » Проблема с блогом
- Wordpress- как настроить отправку почты, email, smtp, не отправить |
- WordPress не отправляет письма | PHP Junior - статьи о PHP для начинающих
- WordPress не отправляет письма? | Еще один блог на WordPress
- WordPress не отправляет письма | PHP Junior - всё о WordPress
обновил статью. нашел причины «не работы метода» на старых моих блогах — смотрите в конце статьи
Lecactus, извини за оффтоп! С помощью какого плагина ты делаешь подсветку синтаксиса в своем блоге? У меня был один плагин, но он почему — то на твоей сборке не пашет :(
Спасибо, с вашей помощью я вылечил этот косяк на 2х блогах своих!
уважаемый Лекастус! Извините за спам, конечно, но у меня есть вопросы, на которые не могу найти ответа…. Как заставить вордпресс регистрировать блоги вот в этот вид:
мой сайт.ком/блог? (по умолчанию он пытается сделать блог.мой сайт.ком) И в чем может быть причина того, что аккаунт нового пользователя не создается? Ну, не создается, и все!
P/S Интересная фишка с флагами стран приходящих юзеров…Для этого есть специальный плагин?:-)
Эдуард,
1 я так понял речь идет про WP MU — еще при установке у вас спрашивали как вы хотите размещать блоги на под-доменах или в под-директориях.
сейчас сменить это можно в wp-config параметр VHOST поставить NO
2 про флаги — в поиск по блогу! называется ip2nation описание где оно лежит есть на странице плагина useronline
Большое спасибо!
Lecactus а скажи, пожалуйста как ты вставляешь свою фотку в коммент?
// извини — не удержался =)
это же граватар обычный . смотри ссылки под окном комментария
Добавить/изменить Аватар | Помощь
Да шучу я =) Я каменты прочитал: кто в лес, кто по дрова =)
да я почти так и понял. ну не видят наверное форму КОНТАКТЫ для вопросов не по теме постов
регистрация заработала
но:
1) в графе от кого все равно пишется wordpress, а не то что я пишу в var $From
2) восстановить пароль не удается:
E-mail не может быть отправлен. Возможная причина: сервер не поддерживает функцию mail()…
3) подобная тема обсуждалась на форуме (возможность выдачи пароля без почты) и закончилась неактивной ссылкой на какое-то решение:
http://gluek.info/wiki/WordpressPlugins … word?v=895
В общем это похоже на очередную «черную дыру» wordpress, подобную пропадающему визуальному редактору — никто не знает решения
чтобы писался обратный адрес/имя свой можно поставить плагин для этого — читать тут http://blog.portal.kharkov.ua/2007/08/23/mail_in_wordpress/#more-10
кстати у меня на одном блоге на моем сервере работает с помощью этого способа мыло всегда, на втором не работает вообще, но работает с плагином (см ссылку выше).
«черная дыра или нет» трудно сказать. все проблемы из за настройки серверов так или иначе
Тоже повесил блог на сайт и не работает отправка в вордпресс
Буду щас лечить
Все намного проще — добавить @ перед wp_mail в процедуре отправки сообщения и все будет работать.Подробнее тут
сегодня попробую на тестовом блоге :)
Поперли Варнинги:
Parse error: syntax error, unexpected ‘&’ in /www_host/hosts/***/wp-includes/pluggable.php on line 616, 617
Что посоветуете ПХП прогеры?
а откуда у вас там взялся этот знак? судя по всему там должно быть вместо & g t ; значок >
а вы по ссылке гляньте
да глядел. я про то что там запостили на страницу кривой код. если посмотреть оригинальный код из дистриба то там как раз значок > на этом месте
Все описаное выше — не дало результата!
Что и где еще можно подправить в коде или настройках?
а smtp вариант не катит тоже? кстати на одном хостинге (mchost) я клиенту ставил сайт и там на php4 мыло не уходило вообще, а когда включил принудительно php5 все заработало как часики. может все же настройки хостера кривые?
smtp — тоже! хостер —http://www.ayola.net
я бы на вашем месте давно бы сменил его, даже если бы он был сверхвыгоден
Ваше предложение? Бесплатный и под WordPress + Mail()
vagonchik.com например (вроде не было жалоб на него)
а глюк с обрезкой или с неправильными символами в уведомлениях по почте откуда может взяться? пример заголовка письма:
[имя сайта] пожалуйста, промо�криншотов на PSP»
у меня также. я не победил. это с кодировкой UTF8 так получается в теме писем.
Спасибо, пригодилось. Кстати, на ayola все работает, там просто вручную smtp надо запрашивать через админов.
Короче в чем у меня ситуация: почта для домена на котором стоит блог была перенастроена на GoogleApps и после этого все письма и уведомления с блога отлавливается только хосте, а в мой e-mail они не попадают.
И не помогает не один из описанных решений :(
Бен, это Данила. Ай ниид хелп ;)
Такой вопрос, почта уходит, все нормально. Но если в настройках WordPress выбрать «Роль нового пользователя (по умолчанию)», как Автор, то при регистрации письмо с паролем не уходит, пробовал все описанные способы, ничего не помогает. Может так все и было задумано, для того, чтобы только администратор мог назначить роль пользователю?
что то я сильно сомневаюсь. похоже это «еще один баг»
Хм, не уходит именно на почту Gmail и GoogleApps, на ящик того же хостинга, спокойно доставляется.
Сорри подписчику на Gmail тоже не доходит((((
пора бы наверно настройки поменять в новой версии уже кажысь по другому все.. а глюк остался..
«класс» в новой версии этот же, я просто взял файл из бэкапа 2.3.3 и поставил в 2.5.1
Господа, можно «лечить» на много проще!
Ошибка лишь в том, что посылаются два письма подряд (Админу, а затем пользователю) без паузы. Добавляем sleep(2) между посылками писем в файле wp-includes\pluggable.php (функция «wp_new_user_notification») и будет Вам счастье!
ну то что при восстановлении пароля админа приходит ОДНО мыло тут ничто не поможет. почему то при использовании ВНЕШНЕГО smtp сервера все работает
А ещё причиной неотправки писем может быть бан IP адреса хостера почтовыми серверами. То есть они то системой отправляются но до места назначения не доходят. Так например у меня на одном хостинге почта отправлялась и доходила отлично, а с другого хостинга с такой же версией WordPress, где все файлы один в один без изменений, почта доходила только на YahooMail и Gmail, а на Яндекс и MAIL.RU нивкакую.http://2ip.ru/spam.php (проверка долго длится) IP своего хостера и IP тот что был в письмах о неотправке (тоже хостера только немного другой) на наличие в СПАМ базах и эти IP по всем базам «Not listed». Или это не те базы или среди них просто нет базы которая стоит у моего интернет провайдера, а также наверное ещё на многих почтовых серверах.
В итоге после обращения к хостеру, прочел внимательно те письма о неотправке что приходят на почту хостера (собственно рассказ для тех кто как и я на эти письма не обращает внимания :) ), оказалось что этими почтовиками забанен IP адрес моего хостинга. В письме о неотправке от MAIL.RU даже ссылка есть для запроса на снятие бана. После моего запроса MAIL.RU снял бан буквально через час, а Яндекс, после моего письма, через три дня с ответом что IP моего хостинга удален из списка динамических сетей (как-то так было написано). С получением почты с моих сайтов на эти почтовые сервисы стало всё нормально.
Остался вопрос что делать с остальными? Например на почту моего интернет провайдера письма с моих сайтов так и не приходили. Проверил здесь
Вобщем в таком случае бан можно обойти с помощью плагина XPertMailer в котором можно настроить отправку почты через свой аккуант на Gmail. И ещё как вариант это покупка выделенного IP для хостинга :)
у меня вот тоже админу не отправляются. для версии 6.2 подходит данное лечение? или, может естьдругой метод?
@Yury: в моей сборке 2.6.2 поверпак лежит плагин wp-mail-smtp.работает
Lecactus, плагин активировал, хост, логин, пароль, настроил. включил смтп авторизацию. тестовое письмо по логу уходит, но на самом деле ничего не получаю на ящик. может у хостинга что-то не так?
@Yury: оно уже «не так» если не уходит штатным образом
Lecactus, письма стал получать :) зато теперь после одобрения коммента он не пропадает из списка неподтверждённых :) я начинаю любить wordpress
Может быть не в тему, но когда я поставил wpPHPMailer с отправкой писем проблему решил, но теперь все письма приходят такого вида:
п п п п п я ! п п п п п п !п п п п п п
Как настроить кодировку?
Пробывал ставить плагин wp_mail Cyrillic, меня кодировку отправяемых писем, но не помогает
Излечился от этой головной боли установив плагин — WP-Mail-SMTP
Не отправляется почта ни при регистрации, ни при вспоминании пароля. Пробовал править файл, как тут указано, не помогло. До того пробовал ставить wp-mail-smtp и единственное, где отсылалось — это проверка внутри настроек плагина, но все прочие реально необходимые места, где нужна отправка почты так и не заработали.
Если отключить все плагины и попробовать получить восстановление пароля, то выдается такое сообщение:
При выключении всех плагинов и включении одного только wp-mail-smtp и последующей попытке отослать восстановление, выдается то же сообщение, но тестовое письмо из настроек плагина продолжает отправляться.
Подскажите, плз, куда копать?
собственно по моему опыту этот мега глюк лечиться созданием на сервере почтового ящика вида:
webmaster@domain.ru
после этого почта начинает отправляться и ошибка перестает возникать.
(где то еще видел про создание ящика вида wordpress@domain.ru но мне не пригодилось)
А на локальном сервере будет работать отправка писем или только на удаленном сервере это возможно? И еще у меня проблема с отправкой комментариев к заметкам… Где можно про это спросить?…
Сделал, как написано. Помогло. Спасибо большое.
локальный сервер. Версия WP 2.9.2
З.Ы: сейчас бы еще понять, как сделать адрес отправителя не wordpress@domain.ru, а, на пример, admin@domain.ru
Во-во, как сделать так, что бы писмо приходило не от WordPress, а от Администрации, например?
Уже весь интернет перерыл.
Попробовал отредактировать этот файл, так же попробовал 2 указаных палгина в комментах, так ни чего и не помогло, при регистрации блога, не приходят сообщения с активацией. Сервер свой, версия wp 2.7.1 Если кто понимает в чём причина помогите, готов принять помощь за небольшое вознаграждение.. =)
Очень хорошо справляется с этим неприятным глюком WP, простой плагинConfigure SMTP . Настраивается очень легко, вопрос с неотправкой писем отпал, ковырять код нигде не надо. Плагин не «раскрученный», без наваротов, скромно делает свою работу.
А что мне делать, если я уже забыла свой пароль и не могу войти в вордпресс, хостинг оплатила после того, как забыла пароль, и в общем-то сейчас пароль не присылается??
Помогите, пожалуйста!
Поменяла код, как у тебя написано, и вот что мне выдал вордпресс:
«Сообщение не удалось отправить.
Возможная причина: сервер не поддерживает функцию mail()…»
Что делать?=(
После внесения всех правок по твоей инструкции WP продолжает отдавать мне эту же ошибку:
Сообщение не удалось отправить.
Возможная причина: сервер не поддерживает функцию mail()…
не у всех есть smtp ) но оно и не нужно, как выяснилось.
у меня почта заработала после указания несуществующей почты, но на существующем хосте. До этого молча не отправлялось.
...
public $From = 'noreply@[тут был мой сайт].ru';
...