Проблема №1
На почту не приходят никакие сообщения от WordPress. Ни о регистрации нового пользователя, ни пароль новому пользователю, ни "востановление" пароля. Не работает также отправка сторонними плагинами (db-backup, subscribe-to-comment).
Характеристики:
Блог – WordPress 2.3 by Maxsite.org
Хостинг – GoDaddy.com Unix
Апгрейд прошёл успешно сбоев не было. База данных работает нормально. Никаких проблем, кроме…
Когда?
Проблема появилась неизвестно когда, неизвестно откуда. Где-то между апдейтами:
2.2 Mywordpress.ru – 2.2.3 Mywordpress.ru – 2.3 Maxsite.org
Скорее всего после апдейта "с 2.2 до 2.2.3", но не уверен.
Попытки
1. Отключение всех плагинов и активация дефолтного шаблона – не помогли
2. Нет плагинов, дефолтный шаблон, активен плагин subsribe-to-comment – комменты не приходят
Вопрос
Что произошло? Кто виноват? И что делать?
Решение
Установка плагина wpPHPMailer (от Lecactusa) устранила эту проблему. Причем – активации плагина было достаточно, SMTP не включал, работает обычный sendmail().
Но почему перестал работать встроенный phmailer в wordpressе? Почему перестала ходить почта?
Проблема №2
После включения плагина wpPHPMailer, почта ходит но с "??" в полях "FROM" (от кого) и Subject (тема). Иногда в FROM не ??, а арабский и другие символы.
Попытки
Отключение всех плагинов, кроме wpPHPMailer проблему не решили.
wp_mail Cyrillic – не помогает в любой кодировке.
Novikov’s FROM Kryakozjabri Bugfix – не помогает
PL UTF-8 Notify Mail – Помогает, сообщения от WordPress-а приходят нормальные, а от subscribe-to-comments, по-старому, с кракозябрами. Важно: Но он не работает без wpPHPMailer-a — посылает сплошной BASE64 (буквочисловой код),.
Также пытался чередовать настройки этих плагинов – бесполезно.
Почта есть = кракозябры убивают
Кракозябров нет = почта умирает
ПОМОГИТЕ, пожалуйста. Пожалейте мой воспалённый мозг и красные глаза - ночи не сплю, не могу решить эту "загадку"... А уже 04:41...
А что на GoDaddy обычная mail не работает?
Как вариант сделай все то же самое на другом хостинге – если будет работать, значит проблема в godaddy.
mayuxi – http://lecactus.ru/2007/10/12/868 – в плагине wpPHPMailer надо там одну строку заменить чтобы было по русски
в файле class.phpmailer.php редактируй строку
var $CharSet = "utf-8";
Та же проблема… даже хостинг аналогичный.
Странно, при редактировании этой строки вобще ничего не меняется. Заголовок так и приходит каракозяблями %)
Хрен их знает. GoDaddy крупнейший хостер в мире, а у них mail не работает?! Очень странно. Но похоже на то. Так по чему же, когда подключаешь сторонний phpmailer всё начинает работать (хотя в принципе ничего не меняется? я же не подключаю smtp)
Lecactus, уважаемый, я и есть Мальцев Александр, с которым Вы общались в комментах. Ничего не выходит. Мне редактировать строку var $CharSet = "utf-8"; не выход. Блог у меня многоязычный, на китайском общаются люди, так если указать другую кодировку, то китайский вообще пропадёт. Настройка smtp – не помогает, либо выходит ошибка при отправке пробного коммента (по памяти: opensocket(): cannot connect to smtp.xxxxxxxxx.:25 … smtp.class.php on line 105). Пробывал разные smtp – либо ничего не приходит на почту, либо ошибка – см. выше.
Может в саппорт ГоДадди напишем? Я попробую, но у меня английский не очень 😉
А версия WP таже? Когда всё случилось? Недавно?
Да по логике все должно работать…. у меня на основном сайте, есть форма отправки мыла. Все прекрасно работает, без сбоев…
А с суппортом… напишите, они всегда отвечают. Английский у меня тоже так себе.. =) Подождем, чего ответят вас.
WP версии 2.2.3
Когда началось… раньше просто не пользовался всеми этими фичами.. а тут вот понадобилось и регистрацию сделать и подписку на коментарии… и сразу не заработало. Поэтому не могу сказать когда это началось.
Что самое интересное, админский пароль то пришел без проблем…
Так у меня изначалально было всё тихо и спокойно. Более того, письма отправляемые через cformII – приходят.
Я думаю, что нам с Вами нужно объединить усилия и написать в support. Чтобы они отреагировали. Я как вернусь домой – напишу (сегодня вечером).
Я понял:
Приходят письма только от тех плагинов, в которых уже установлен phpmailer:
email users, cformsII и др.
Там же где его нет и вообще, просто WordPress – ничего не приходит.
вот вот у меня также было. пока не поставил плагин не отправлялось мыло никому кроме админа. перепробовал на 5и блогах как чистых так и старых версий 2.2.3 и 2.3
Кстати, в Вашей сборке wpPHPMailer (1.6.1 rus, на сколько я помню) – phpmailer стоит 1.7.2, а последний стабильный релиз был уже в июле – 1.7.3. Может поменять?
Кстати, в WP2.3 всторенный PHPMailer (wp-includes/class-phpmailer.php) уже этой версии 1.7.3
Может как-нибудь объединить усилие на устранение этой распространённой ошибки (кракозябры в письмах и уведомлениях о комментах). Есть замечательные плагины:
wp_mail Cyrilliс
Novikov’s FROM Kryakozjabri Bugfix
PL UTF-8 Notify Mail
Но все они устраняют проблему на половину. Последний плагин, например, только чинит письма от WordPress-а, а от плагинов – нет.
в WP2.3 всторенный PHPMailer (wp-includes/class-phpmailer.php) уже этой версии 1.7.3
только почему же он через смтп не научился посылать…
а плагин я качал с оффсайта в тот же день что и выкладывал русский. новее не видел
Новый phpmailer можно скачать с офсайта – phpmailer.sourceforge.net
(Новый это последний, т.е. июльский стабильный релиз).
А то что WordPress не умеет посылать smtp изначально – это его создатели не "учили". Хотя Phpmailer это может (он там не урезанный, обычный.)
Была проблема с плагином Secure Form Mailer Plugin For WordPress 5.33
WordPress – UTF-8
БД – UTF-8
Часть письма отображалась нормальным русским языком, а часть кракозяблами.
Пример:
Ваше имя: ScorpAL
Ваш e-mail: scorpal@gmail.com
Тема: testing of site ????????????? ????????????? ?? ??? ??
Сообщение: test ????????????? ?? ?? ?? ???? ???
Решение проблемы:
Меняем в файле /plugins/dd-formmailer/dd-formmailer.php
$msg .= ‘Content-Type: text/plain; charset="iso-8859-1"’ . PHP_EOL; (строка #304)
на
$msg .= ‘Content-Type: text/plain; charset="utf-8"’ . PHP_EOL;
Теперь все приходит корректно.
Ну это понятно, плагин сам указывал в какой кодировке письма отправлять. Но в subscribe to comment берёт кодировку из блога:
А если ему явно укзать?
$charset = ‘utf-8’;
И вобще покрутить кодировки. Не получится?
ТОварищи, вот что писали на офф.сайте:
Чтобы пофиксить обновляемся до 2.3.1 beta (там же список остальных фиксов).
Либо делаем вот что:
добавляем в файле pluggable.php строку
перед
Тарас, сделал как написано – не помогло.
Может быть проблема в том, что у меня WP 2.2.3?
Или, видимо, всетаки гоудэди шалит %)
Что-то я в Pluggable не нашёл такую строку
Более подробно покопал ветку трэкинга.
Предложеный мною вариант по идее должен работать как раз для 2.2.х ветки, а для 2.3.x нужно перед
в том же файле добавить
Странно, но к 2.2.3 фикс они не выкладывали.
mayuxi, ну как на 2.3 заработало? С учетом фиксов, описанных выше…
У меня буквально сегодня будет русская сборка WordPress 2.3.1 beta (та которая последняя). Так что можно будет потренироваться на ней.
Да, почта о регистрации нового пользователя приходит (но с "вопросиками", как обычно).
О новых комментах – та же история (заголовок и отправитель – кракозябры и ??)
Но почта приходит и ладно, я решил временно на это забить.
Буду ждать выхода какого-нибудь вордпресса 3.0 или 7.5.9 где будет устранена, наконец, этот старейший баг…
Тот же хостинг, сцуко. После всех поправок из этой ветки пишет:
Сообщение не может быть отправлено.
Возможная причина: сервер не поддерживает функцию mail()
Надеюсь, 2.3.1 поможет.
Edit: в каком месте можно поменять сообщение об ошибке почты? Я хотя бы туда впишу свой адрес чтобы пользователи писали мне для ручной активации акаунта.
Включи wp-phpmailer и оставь в настройках "использовать встроенную функцию WP".
Тогда почта ходит но в заголовках кракозябли. Лучше уж так… чем никак
Заработало с РНРмейлером – спасибо ЛеКактусу за адаптацию. И спасибо за совет, tmc_angel. Кракозябры – частично.
Пардон – но нет времени ковырять код – остаётся один "плевок" до идеальной работы: кто-нибудь знает – где заменить заголовки писем при регистрации и восстановлении пароля? Я бы просто домен туда всунул – вполне логично и без иероглифов…
Поскольку уважаемые "мастера" адекватного ответа не дали, хотя, я думаю, что дело плёвое. Есть несколько плагинов, которые устраняют эту проблему на половину: удаляют кракозябры админских писем и кракозябры заголовков о регистрации. Я думаю, что тот, кто знает хорошо PHP (я к таким не отношусь) может легко решить эту проблему, или скопировать решение из этих плагинов (Novikov’s FROM Kryakozjabri Bugfix, PL UTF-8 Notify Mail)….
ВОТ КАК Я "РЕШИЛ" ЭТУ ПРОБЛЕМУ
— Чтобы заходила почта:
устанавливаем плагин wpPHPMailer (любую версию, можно Лекактуса).
— Чтобы пропали кракозябры из заголовков админских писем:
Берём плагин Novikov’s FROM Kryakozjabri Bugfix и выкидываем на свалку по двум причинам:
1) Не всем помогает
2) Заменяет русифицированные письма на английские.
Берём и устанавливаем плагин PL UTF-8 Notify Mail – всё, админская почта приходит без кракозябр.
— Чтобы комменты от subsribe to comments не были с кракозябрами (тема и "от кого").
Берём и чиним плагин subscribe-to-comments.php, нас интересуют строчки где есть (пишу по памяти, с собой сейчас файла нет):
#subject = ….
Меняем вызов названия блога на адрес блога:
$subject = ‘[Magazeta.com] ‘ . $subject; // естественно нужно свой блог вписывать
Меняем русификацию и вызов темы поста:
$subject = ‘Новый комментарий: %s’; ….
на New Comment:
$subject = ‘New Comment’
Ещё осталось найти поле FROM и заменить его на:
FROM: Magazeta.com <ma@magazeta.com>
———
Короче, смысл: избегать в теме и заголовке вообще русских символов до лучших времён.
Я попытался совместить плагины PL UTF-8 Notify Mail и Subscribe to Comment, просто ради эксперимента.
Добился особых результатов (НАПРИМЕР: русское название блога без кракозябр, но тема поста – сплошные вопросики). Поэтому решил:
Не можешь какать, не мучай попу.
И сделал так, как написано выше.
Так хотя бы и почта ходит и заголовки писем не позорные…
А iconv применительно к тексту сообщения не пробовали прицепить?
У меня, к сожалению, не помогло =(
Поэтому как тут верно заметили, подскажите люди добрые, в каком файлике идут стандартные заголовки уведомлений WP. Действительно, поменяю их руками.
Матрицу читаю, а PHP не умею…
Не пробывал, функции не знаю. Пробывал всякие encode/decode base64, unicode… но устал мучиться…
Короче долго я разбирался в этом баге mail() и все выяснил, кому интиресно милости прошу http://mamanov.com/yes-mail-wp/
http://lecactus.ru/2007/11/21/1021 нашел вариант решение проблемы!