Рубрика: Администрирование

Публикуем в WordPress через e-mail

Наверняка все видели в административной части WordPress (Настройки — Написание) пункт настроек «Публикация через e-mail«, а многие даже пытались настроить эту функцию. Я уверен, что у многих ничего в результате не получалось: так как настройка данной функции подразумевает дополнительные шаги настроек, да и каких-либо вразумительных инструкций в интернете о ее работе просто нету. Можете сами погуглить.

Как настроить публикацию в WordPress через e-mail и зачем это нужно? Собственно, сейчас попытаюсь обо всем рассказать!

Зачем нужна публикация через e-mail в WordPress?

В одной из своих прошлых публикаций, а именно «Пишем в Вордпресс используя Андроид» я описывал одну из возможностей писать посты в WordPress — там рассказывалось, как удаленно публиковать (используя лишь голос, распознанный вашим мобильным телефоном под управлением Андроид) новые записи в своем блоге прямо с телефона! Так вот, публикация через e-mail в WordPress — еще одна дополнительная возможность удаленной публикации новых материалов на сайт, когда, скажем, нет прямого доступа к редактору и административной части сайта.

Ходят упорно слухи, что данную функцию — публикацию через e-mail в WordPress собираются выключить из ядра движка. Тем не менее, даже в новой версии 4.0 она по-прежнему присутствует практически в своем первозданном виде, поэтому давайте разбираться в тонкостях ее работы.

А работает эта функция просто! Вы пишите электронное письмо на специальный адрес электронной почты, а ваш сайт (робот) заходит на эту почту и забирает оттуда текст и публикует его на сайте! Да, все просто, но зачем это нужно и как это можно использовать на практике?

Прежде всего, вы можете опубликовать статью для своих читателей лишь отправив письмо на специальный ящик электронной почты. Это очень удобно, когда нет под рукой пароля от административной части (работа за чужим компьютером) и т.д. Но можно пойти еще дальше. Используя возможность публикации через e-mail в WordPress можно создать замечательные… самонаполняющиеся сайты! Например? Сайт знакомств, доску объявлений… все что угодно! Реализовываете на сайт/сайтах (это можно делать на посторонних ресурсах) обратную форму связи с необходимыми полями для заполнения и отправленное через нее письмо через какое-то время опубликуется на нужном вам сайте под управлением WordPress. Или другой пример: можно сделать тематические подписки на наш электронный ящик специальных рассылок (можно найти умелое применение спаму — как правило, некоторый спам нигде не публикуется открыто в интернете, а ваш сайт будет в таком случае, первоисточником такой информации, например, о тренингах, курсах, мероприятиях). В вопросах выбора применения функции публикация через e-mail в WordPress хотел бы положится на вашу фантазию — при умелом подходе, можно создать не только самонаполняющийся сайт (он не требует какого-либо внимания и затрат), но и приносящий пользу для пользователей или для владельца (монетизация сайта).

Публикация через e-mail в WordPress: настройки

Задать базовые настройки можно и нужно в административной части WordPress (Настройки — Написание — Публикация через e-mail). Их немного: Почтовый сервер, Порт, Логин, Пароль и Рубрика по умолчанию для публикации по почте, но требуют пояснений.

Почтовый сервер. У вашей почты есть POP-3 доступ, увидеть этот адрес можно либо в справочной информации по работе с вашей почтой, либо в разделе настроек вашей почты. Например, для пользователей почты Gmail, этот адрес будет выглядеть как: pop.gmail.com, у Укр.Нет — pop3.ukr.net и т.д.

Порт. Обычно 110, можно не менять это число, указанное по умолчанию, но у некоторых поставщиков почты может быть свой порт, поэтому, в случае чего, ищите такую информацию в разделе настроек на своем почтовом сервере.

Логин. Ваш почтовый адрес или исключительно логин от почтового ящика (зависит от конкретного поставщика почты и способа авторизации).

Пароль. Ваш пароль от почтового ящика.

Публикация сообщений в WordPress по email: настройки
Публикация сообщений в WordPress по email: настройки

Собственно и все настройки. Должное внимание удалим пункту — Логин. Собственно, это адрес вашей электронной почты, который вы должны зарегистрировать, на который отсылать письма и с которого они будут публиковаться на сайте. Между тем, такой адрес должен быть сложным и обязательно новым! Никому не известным и неудобочитаемым. Ведь если это будет простой электронный ящик, типа vasja2000@mail.ru, то такое имя могут подобрать злобные спам-машины и ваш сайт вскоре завалит спам-почта. Именно поэтому, WordPress в разделе настроек публикации через e-mail предупреждает:

Любое сообщение, пришедшее на этот адрес, будет опубликовано, поэтому лучше держать этот адрес в тайне. Вот, например, три произвольных имени, которые вы можете использовать: m7z0l7Tk, Kk8xcVa4, 9BrOlaHj

Таким образом, предпочтительно создавать почтовые ящики по рекомендации WordPress как: m7z0l7Tk@gmail.com, Kk8xcVa4@gmail.com или 9BrOlaHj@gmail.com. Такой адрес служит своеобразным паролем, его должны знать только вы (или другие редакторы вашего сайта), чтобы на сайт случайно не попала чья-либо посторонняя почта.

После внесения данных настроек, сохраняем их и переходим к тестированию работы скрипта.

Публикация через e-mail в WordPress: тестирование и отладка

Итак, почтовый ящик создан, настройки внесены в WordPress, приступаем к первому тестированию всего в 2 шага:

  1. Отправляем на зарегистрированный нами адрес электронной почты тестовое письмо.
  2. Секунд 10 ждем и открываем в браузере ссылку http://мой_сайт_ру/wp-mail.php

По этой ссылке мы увидим сообщение, типа:

«POP3 connect: Error [0] [php_network_getaddresses: getaddrinfo failed: Name or service not known] (невозможность подключиться к вашему серверу — проверьте обязательно настройки: Настройки — Написание — пункт Публикация через e-mail»)

«Притормози, ковбой! Не нужно проверять почту так часто» (слишком частое обращение — повторная попытка к странице возможна через 5 минут)

Похоже, новых писем нет (это значит, что робот успешно авторизовался на вашей почте, но новых писем для публикации не обнаружил — новых писем нет).

Автор: 1. Заголовок: тема письма. Миссия выполнена. Сообщение 1 удалено. (это свидетельство того, что на почте было письмо, робот обработал его и отправил на сайт на публикацию.

По результатам сообщения на странице http://мой_сайт_ру/wp-mail.php мы можем отследить работу скрипта и в случае чего внести необходимые коррективы в его работу. Это можно сделать в файле wp-mail.php, он находится в корне вашего сайта. Открываем файл текстовым редактором и вносим изменения в строчки (по необходимости для точной отладки):

define(‘WP_MAIL_INTERVAL’, 300); Допустимый интервал просмотра новых писем на почте в секундах. По умолчанию 300 секунд — 5 минут. Желательно не уменьшать эту цифру, а наоборот сделать больше в разы.

$post_author = 1; id пользователя сайта, от имени которого будет опубликована статья. По умолчанию id=1 (это администратор), можно указать id любого редактора, если в этом есть необходимость.

$post_status = ‘pending’; Статус новой публикации — по умолчанию — pending (на утверждении — не публикуется сразу на сайте, а отправляется администратору на модерацию). Если поставить статус — publish, то статья опубликуется на сайте сразу же, автоматически.

$charset = »; Кодировка письма. По умолчанию тут пусто и письма обрабатываются как UTF-8. Для некоторых почтовых серверов тут можно задать свою кодировку если письма публикуются на сайте в нечитабельном виде.

Если вы настроили публикацию статей через e-mail правильно, то после каждого отправленного письма на ваш секретный адрес электронной почты, его содержание должно появиться на вашем сайте как новая запись (на модерации или сразу опубликованная — в зависимости от настроек, о которых я только что упомянул.

Идем дальше…

Публикация через e-mail в WordPress: автоматизация работы

Настройки внесены (Настройки — Написание — Публикация через e-mail), работа скрипта проверена и отлажена (в корневом файле wp-mail.php). Теперь же осталось автоматизировать работу скрипта.

Как я уже упомянул, запускается скрипт вызовом в браузере страницы http://мой_сайт_ру/wp-mail.php Совершенно верно, он не работает автоматически, как это могло показаться вначале, поэтому многие недоумевают: в админке сайта настройки внесены, а функция публикации через e-mail в WordPress не работает — письма не публикуются :(

Чтобы функция работала и скрипт проверял вашу почту автоматически, потребуется запускать скрипт по таймеру. Для этого в панели управления хостингом нам нужно найти такой пункт как Cron.

Cron — это планировщик задач, использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются специальными инструкциями. Подробнее https://ru.wikipedia.org/wiki/Cron

Нашли в панели управления хостингом Cron? Там нам предложат записать инструкцию посредством подсказок: нам нужно указать когда (Минуты, Часы, Число, Месяц, День недели) и что (Команда) мы будет периодически запускать.

cron: выглядит это так
Приблизительно cron в панели управления хостингом выглядит именно так

Универсальной инструкции по написанию cron не существует, но в справочной информации к своему тарифному плану вы обязательно найдете подсказки по правильному запуску Cron. А еще лучше написать в поддержку, мол, я чайник, пожалуйста, поставьте запуск скрипта http://мой_сайт_ру/wp-mail.php по расписанию (cron), с периодом 2 раза в сутки (зачем же проверять его каждую минуту?)! Уверен, не откажут!

Собственно и все мытарства с публикацией через e-mail в WordPress! Буду рад услышать в комментариях: каким образом эта информация стала для вас полезной и какие сайты вам удалось реализовать посредством описанной функции.