Плагин Configure SMTP — решение проблем с отправкой писем в WordPress
Не часто пишу о WordPress, так как про него пишут практически все и много, видимо так действует этот движок на народ, сродни эпидемии. Вот и меня зацепила зараза, и все из за возникшей проблемы с доставкой писем через WP. Как оказалось существует этот неприятный глюк давно и периодически дает о себе знать многим кто работает с WordPress. Вообще этот движок не дает расслабиться и постоянно приходится орудовать лопатой разгребая кучу проблем возникающих в процессе ведения блога.
Накатил косяк с не отправкой писем, после переезда на новый хостинг и обновления движка . Тихо-мирно, после обновы, решил проверить форму обратной связи, а так же отправить бекап базы данных к себе на почту. Письма вроде бы и уходили, а в почтовом ящике тишина и спокойствие. Конечно я воспринял все это без истерики, уже привык к выкидонам движка. Перекурив и собравшись с мыслями стал искать решение и способ устранения неполадок.
Первым делом пробил свой хостинг на наличие поддержки функции mail (), все в порядке оказалось. Cтал искать способ для отправки писем через SMTP.
Решений как оказалось предлагают много, например Lecactus предложил немного подправить код в файле wp-includes/class-phpmailer.php. Вариант по исполнению отличный, но мне не помог.
Тут «понеслась душа в рай», в ход пошли один плагин за другим, ставил разные и много, но по тем или иным причинам отказывался от их использования.
Создание e-mail вида wordpress@имя_домена, по ряду причин тоже не принесло положительных результатов.
Когда стал закипать мозг и сходиться глаза в кучу, натолкнулся на неприметный такой плагинчик Configure SMTP. У нас описание этого плагина встретил лишь один раз и то поверхностное, может просто плохо искал. Решительно зашел к автору на сайт, почитал в меру своих знаний буржуинского и решил попробовать до кучи еще и этот способ. Поставил плагин к себе на блог и несмотря на всю невзрачность и легковесность, помог «буржуинский бродяга» измученному Российскому пользователю, пошли письма на почту, и самое главное стали доходить до адресата.
И так давайте подробно рассмотрим работу плагина для настройки SMTP рассылки в WordPress:
Configure SMTP
Плагин Configure SMTP используется для настройки SMTP рассылки в WordPress, в том числе поддержки отправки электронной почты через SSL/TLS (например, Gmail). Практически заставляет WordPress отправлять почту не через php-функцию mail()
, через sendmail хостингового сервера, а через smtp какого-либо другого сервера.
Для начала работы следует скачать плагин с авторской площадки Configure SMTP. Затем по накатанной, установить плагин к себе на блог в папку с плагинами …wp-content/plugins, смело активировать его через «меню администратора Плагины» в WordPress и перейти к не хитрым настройкам, через админ панель SMTP, которая появится в админке после активации.
Настроек плагин содержит не очень много и вы без труда сможете со всем разобраться, для большей наглядности можете посмотреть скриншот панели управления6
Теперь давайте разберем по пунктам, что да как настраивать.
Send e-mail via GMail ? — Если желаете использовать службу Gmail для отправки почты, отмечаете галочкой и параметры Gmail выставятся автоматом, вам останется только ввести свое имя пользователя и пароль. В случае же использования другого сервера, прописываем параметры smtp своего почтового сервера и соответственно отмечать первый пункт не надо.
SMTP host — По умолчанию стоит «localhost» , если у вас не работает следовательно прописываете свой, например для Yandex — почты это будет smtp.yandex.ru
SMTP port — Номер порта, как правило это 25
Secure connection prefix — Выбор префикса для безопасных соединений SMTP через SSL или TLS
Use SMTPAuth? — Если Аутентификация установлена то необходимо предоставить имя пользователя SMTP и пароль, что и следует сделать в следующих пунктах.
SMTP username — Имя пользователя SMTP ( ваш почтовый ящик )
SMTP password — Просто пароль к вашей почте и все.
Wordwrap length — Задаете, если уж больно приспичит, число символов сообщения при переносе слов.
Следующие два пункта можно оставить как есть, тогда будут использованы настройки по умолчанию или же прописать свои данные:
Sender e-mail — Наборы адресов электронной почты для всех исходящих сообщений. Оставьте пустым, чтобы использовать по умолчанию WordPress.
Sender name — Имя или список имен, от кого будут отправлены сообщения. Оставьте пустым, чтобы использовать по умолчанию WordPress.
Все, больше никаких настроек у плагина нет, он полностью готов к работе, осталось только сохранить все изменения, с уверенным видом нажав на кнопку «Save Changes»
В плагине присутствует очень полезная фишка, сразу после настройки, вам предоставляется возможность протестировать отправку электронной почты и удостовериться в правильности настроек вашего блога на работу с почтой. Для этого, в самом низу панели управления плагином, легким нажатием на кнопку «Send test e-mail» отправляется тестовое сообщение на ваш e-mail.
Проверяете почтовый ящик и любуетесь доставленной корреспонденцией в полном объеме.
Разработчики плагина нестоят на месте и оперативно выпустили в свет обновленную версию своего детища, это конечно радует. Для меня остается загадкой одно, почему сам обновленный движок WP 3.0.1 упорно продолжает игнорировать досадный глюк с отправкой писем.
Автор: Скотт Райли
Версия: 3.0.1
Последнее обновление: 2010-09-29
Совместимость: WP 2.8 — 3.0.1
Скачать обновленную версию: [ ZIP ]
В свое время, чисто для себя сделал перевод плагина configure-smtp 2.7, переводить там в принципе особенно и нечего, все интуитивно понятно и так, но хочется все же читать на родном языке о том, что делаешь в плане настроек. Так что кого заинтересует можете скачать и протестировать русскоязычный плагин Configure SMTP версии 2.7:
Скачать русскую версию плагина: [ ZIP ]
Воспользовался плагином, действительно помогло, в связке с формой обратной связи так же все работает. Спасибо.
НУ ПОЧЕМУ МНЕ НЕ ПОМОГЛО???? Все установила, gmail проще простого настроить, сверила с аутлюк экспресс, все совпадает, логин и пароль по тыще раз на дню ввожу, не ошибусь И ВОТ ИТОГ-
An error was encountered while trying to send the test e-mail.
SMTP Error: Could not connect to SMTP host.Почему не мог? Все ж правильно ввела. И wordpress@mysite.ru не могу создать, бесплатный тариф не позволяет. HELP!!!!
Gmail настраивается автоматом, то есть host и port по умолчанию, вам нужно только выставить галочку подтверждения аутонтификации и ввести свои данные — почтовый ящик gmail и пароль. Работало даже на самом затрапезном из всех бесплатных хостингов.
у меня тоже не заработало. Причем ни с одного плагина. И с родной вордовской авторизацией тоже. Скорее всего я пропустил где то какие установки. Что мне надо проверить в первую очередь, на зосте, в самом ворде ??
mikesoup
На хосте проверить стоит поддержку функции mail ()… Ну а через Gmail должно все работать замечательно, так как плагин и создан для того чтобы заставить WordPress отправлять почту не через php-функцию mail (), фактически через sendmail хостингового сервера, а через smtp какого-либо другого сервера.
В посте я все предельно доходчиво и внятно расписал, повторяться нет смысла, ставите галочку напротив Gmail, вводите свои данные и тестируете отправку письма.
У меня на этом блоге работает именно этот плагин, проще и стабильнее его я пока не встречал…
На другом хосте работает…
А как сделать чтобы плагин появлялся на странице или виджете ?
Я так понял вам нужно поставить контактную форму на страницу контактов на вашем блоге «Новости Культуры»?
Для этого нужен другой плагин, можете поставить Contact Form 7, отлично работает в связке с нашим плагином, легко настраивается, как внешний вид формы так и место где эта форма будет выводиться.
Спасибо за этот плагинчик.
У меня та же история, что и у автора. Переехал на американский хостинг. Перестал работать sendmail. Я об этом узнал только через три месяца после переезда. Спасибо, Wildo подсказад. С помощью этого плагина все отремонтировал.
Отлично. Удачи всем и с наступающим Рождеством и Новым годом.
Евгений, за отзыв и поздравления отдельное спасибо.
Огромное спасибо!
Все заработало с первого раза!
Очень хорошо, что у вас Владимир, стало на одну проблему меньше.
Спасибо, помогло, не пришлось перебирать плагины. Странно, что этого нет в самом wordpress, в Joomla есть настройки способа отправки почты
Рад что вам пригодилось.
Спасибо огромное!
Очень помогла Ваша статья!
Спс публикатору такое на мое усмотрение также надо познавать.
хотел поблагодарить вас за хорошие советы и подсказки, на dbmast.ru
При тестировании выдает An error was encountered while trying to send the test e-mail.
You must provide at least one recipient email address.
Не могу понять, в чем дело
Вы должны указать адрес получателя тестового письма, соответственно он должен находиться на Gmail
Вы должны указать адрес получателя тестового письма, соответственно он должен находиться на Gmail
И куда его указывать? По умолчанию она предлагает тот адрес, который прошит у меня в настройках. А на gmail-е предполагается адрес отправителя, а не получателя.
У вас такое было, или это вы посто текст ошибки попытались перевести?
land_driver, здравствуйте. А что тут пытаться переводить и так все понятно.
Gmail настраивается автоматом, то есть host и port по умолчанию, вам нужно только выставить галочку подтверждения аутонтификации и ввести свои данные — почтовый ящик gmail и пароль. Работало даже на самом затрапезном из всех бесплатных хостингов.
Если пользуете другую службу например Yandex, то убираете галочку у Send e-mail via GMail?, а у SMTP host выставляете smtp.yandex.ru и далее по пунктам. Для Mail.ru например SMTP host будет smtp.mail.ru. В статье же все черным по белому расписано )))
Удачи!
Спасибо, только вы сейчас описали функцию sender-а , а не recipient — а, в этом — то и проблема
Да почему же функцию отправителя, если SMTP host как раз и есть сетевой протокол передачи почты, для приёма почты, используются протоколы POP3 или IMAP, например для Mail.ru это pop.mail.ru. Пропишите свой, и адрес своего почтового ящика, куда будет приходить почта, порт выставьте правильно. Все-о-о!!!! ))))
Мне удалось разобраться. Проблема была в ошибке в самом коде WP. К счастью, помог провайдер. Никакими настройками ее не вылечишь. На форуме поддержки WP в разделе про плагины у меня все подробно описано, где ошибка, и как она исправляется.
Спасибо всем, кто пытался помочь!
land_driver. Очень рад за вас, нет таких проблем, которые совместно нельзя решить. Ваша информация будет полезна другим.
Доброго дня.
А возможно получить ссылку на раздел форума, где подробно описывается решение проблемы? Мне никакие плагины не помогают победить изъян с отправкой писем на WP.
На форумах всё одно и то же. Для начала поинтересуйтесь у вашего хостера, включена ли у вас такая функция
mail ()
. Убедитесь, что в вашем профиле администратора указан e-mail адрес. Ну и на конец, попробуйте создать на хостинге почту видаwordpress@ваш_домен
Ещё, как вариант, внесение некоторых изменений в файл
class-phpmailer.php
, который находится в папкеwp-includes
Вот фрагмент кода этого файла, только то что изменяем:
var $From = “сюда вписываем e-mail”;
—
/**
* 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.ваш_smtp_сервер.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”;
}
var $From = “сюда вписываем e-mail”;
—
/**
* 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.ваш_smtp_сервер.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”;
}
У данного решения один существенный минус, каждый раз после обновления движка wp, придётся вносить изменения
. На форуме поддержки WP в разделе про плагины у меня все подробно описано, где ошибка, и как она исправляется.
Нужно было продублировать ссылку сюда, а то вдруг такая проблема не только у вас 🙂
У меня вот тест не прошел. Тупо идет обращение к configure-smtp.php и застревание на этом, будто скрипт не докручивается.
нашел решение «застревания». Проверил логи ошибок HTML на хостинге и там увидел что скрипт блокируется в связи с отключенной на хостинге php функцией fsockopen (). Сейчас включил её, посмотрю что будет дальше, когда функция вступит в силу
А у меня как было SMTP Error: Could not connect to SMTP host. — так и осталось. Я же наcколько понял, что не важно какие настройки у хостера верно?.. у меня бесплатный американский хостинг — он мог запретить? и что конкретно?
В чем может быть проблема? кто подскажет?
Расскажите,пожалуйста,справились ли Вы с проблемой?У меня все галочки,буковки и т.п. на месте,а ошибка та же.
На хосте проверить стоит поддержку функции mail ()… Ну а через Gmail должно все работать замечательно, так как плагин и создан для того чтобы заставить WordPress отправлять почту не через php-функцию mail (), фактически через sendmail хостингового сервера, а через smtp какого-либо другого сервера.
alex, ставите галочку напротив Gmail, вводите свои данные и тестируете отправку письма.
спасибо большое))) выручили
Как сделать так, чтобы была форма для отправления файлов сайта.
Вот пример. Какой посоветуете плагин.
retropost.ru/postcards/send/2793.html
Функция mail () перестает работать на хостах в случае превышения лимита оперативной памяти, после пика не всегда корректно начинает работать. Перезагружаем виртуальный хостинг и работает (но это не дело (( ). Можно поставить модуль phpmailer там таких проблем нет. Так же он имеет много настроек в частности настроить письмо можно очень точно для не попадания в спам.
Подключал через данный плагин внешний смтп сервер, который покупал тут , подключил быстро, все работает! Спасибо! Теперь не болит голова о лимитах на бесплатных серверах!
После того как посещаяемость из на сайта выросла пришлось к данному плагину крутить сервис Иначе хостер ругался на активность 25 порта