Wordpress кнопка отправка почты на странице. WP Mail SMTP от WPForms. Отправка писем через SMTP

Всем привет!

Плагин достаточно прост в управлении и настройке. Впрочем, и с ним возможны неполадки. Причин тому, что не работает Contact form 7 на WordPress может быть несколько. Приведем наиболее распространенные из них.

Почему не работает контактная форма WordPress?

Неподходящая тема или ошибка в теме

Частая проблема, из-за которой не работает контактная форма WordPress – неподходящая тема или же ошибки в Javascript-е темы. Для того чтобы понять, по этой ли причине у вас не работает форма обратной связи WordPress, нужно зайти в админку и выбрать вкладку «Темы». Там поменять шаблон на «тему по умолчанию» и после этого проверить работу отправки сообщений и внешний вид контактной формы. Если после этого сообщения отправляются, и почта работает – значит, нужно править ошибки в выбранной вами теме, так как из-за нее и не отправляется сообщение.

Несоответствие плагинов с Contact Form 7

Плагин для WordPress Contact Form 7 может не работать из-за того, что другие плагины на вашем сайте конфликтуют с ним, и в результате Вордпресс не отправляет почту. Чтобы исключить данную проблему – поочередно отключаем остальные плагины один за одним, каждый раз обновляя страницу обратной связи. Если после отключения одного из плагинов, контактная форма заработала, значит вы нашли корень проблемы. Ищите, чем заменить конфликтующий плагин. Если же вы отключили все плагины, а Contact Form 7 так и не работает, ищем ошибку дальше.

Письма попадают в спам

Возможен вариант, что письма попадают в спам. Если писем ежедневно приходит достаточно большое количество, спам-фильтр может начать их блокировать. Чтобы избежать этого, нужно зайти в настройки почты, которую вы используете для Вордпресс-блога, и отметить важные письма как не спам (если вы все-таки нашли их в папке со спамом). После того, почтовый сервис должен впредь их распознавать как не спамные.

Проверить работу обратной связи без плагина

Вы можете протестировать отправку почты на своем блоге без участия плагина. Вот статья о том, как это сделать – ». Это верный способ узнать, где спряталась ошибка – в самом плагине Contact Form, либо же она возникает непосредственно при отправке почты в WordPress.

Проблема вызвана хостингом

Чаще всего это выглядит так: сообщение отправляется, но не приходит на почту.

Бывает, что по какой-то причине (например, в случае атаки на сервер или же массовой рассылки писем) хостинг перестал отправлять письма. В этом случае настройка отправки почты на WordPress без участия вашего провайдера не обойдется. Необходимо связаться с технической поддержкой вашего хостинг-провайдера и выяснить причины проблемы. В данном случае вы не будете получать письма не только из контактной формы WordPress, но и сообщения о новых комментариях на блоге.

Но чаще всего подобные проблемы возникают при . В данном случае вам нужно обратить внимание на настройку почты на WordPress.

Плагин WP Mail SMTP

В Вордпресс есть встроенная функция отправки писем PHP Mail, но не на всех хостингах она работает корректно. Потому, если Вордпресс не отправляет почту, потребуется установить плагин WP Mail SMTP. Он активизирует возможность подключаться к SMTP-серверу. При этом ваш хостинг-провайдер должен допускать возможность подключения к внешним SMTP-серверам, а объем рассылок в день не должен превышать 2000 писем (ограничения Гугл и Яндекса).

Если данные условия соблюдены, переходим к WP Mail SMTP.

После того, как плагин установлен, потребуется создать почтовый ящик на Gmail, либо на Яндексе. Почту для домена на Яндексе можно создать перейдя по ссылке — .

Если вы создаете почтовый ящик блога на стороннем ресурсе, а не на хостинге, у вас появится ряд преимуществ. Вы не будете зависеть от стабильности работы хостинга, вам не придется доплачивать за увеличение объемов почты. Кроме того, работать в привычном интерфейсе почтового сервиса удобнее.

Ниже приведен образец настройки WP Mail SMTP на WordPress на примере e-mail на Yandex.ru.

Где SMTP Port – это SMTP порт сервера, на котором размещен почтовый ящик (в моем примере – SMTP порт Яндекс-почты).

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

Такой же почтовый адрес вам необходимо указать в общих параметрах блога («Параметры» — «Общие настройки»).

Именно сюда вам должно прийти тестовое письмо, если все настроено верно.

Вот видео-инструкция о том, как настроить WP Mail SMTP:

Еще один плагин почты для WordPress, который похожим образом решает вопросы отправки-получения писем — Configure SMTP. Он так же достаточно прост в установке и настройке. Выбирайте тот плагин, который вам больше по душе.

Если вы все же не хотите создавать почтовый ящик на Яндексе или Гмейле, можно попробовать решить проблему с отправкой почты на Вордпресс и непосредственно на хостинге. Для этого вам также потребуется создать почтовый ящик, но на хостинге. При этом он должен быть такого вида: (где после собачки – название вашего домена).

Дело в том, что WordPress в строке отправителя указывает такой адрес, а некоторые хостинги не отправляют почту, если такого е-мэйла не существует фактически.

По такому же принципу можно устранить некоторые неполадки, если не работает Contact Form 7 на WordPress. В поле From при настройке плагина на вкладке «Письмо» впишите подобный почтовый адрес с именем домена.

Надеюсь, приведенные советы помогут вам исправить неполадки при отправке почты в WordPress, а также решить проблемы с работой плагина Contact Form.

Один из важнейших вопросов работы сайта - почтовый сервер, т.е. отправка писем с сайта. Это может быть форма обратной связи, Заявка, Заказ, Обратный звонок и т.д.

Отправка писем с сайта

У многих хостингов существует свой почтовый сервер и формы с таких плагинов как Contact Form 7 будут отправляться без дополнительных настроек. Но для лучшей работы и больше надежности лучше делегировать почтовый сервер на крупные сервисы, такие как Яндекс, Google, Mail.ru. Создание почтового сервера на таких сервисах называется почтой домена . Почта домена дает возможность создания почтовых ящиков вида: [email protected]

Почта домена на Yandex

  1. Нужно войти (или завести) в учетную запись Yandex.

    Домен будет привязан к этой учётке. Если нужно отдать доступ заказчику не стоит подключать к своему аккаунту.

  2. Переходим в сервис почта домена
  3. Указываем домен, для которого нужно создать почту, нажимаем подключить домен
  4. Делегируем домен на yandex, для этого прописываем у домена dns сервера yandex
    dns1.yandex.net
    dns2.yandex.net

    Либо создаем А-запись по инструкции, без полного делегирования. Второй вариант более предпочтительный, т.к. таким образом на Яндекс мы делегируем только почту.
  5. Через некоторое время нажимаем кнопку «Проверить владение доменом» (обычно несколько часов), и когда домен делегируется можно будет создать ящик (и не один).
  6. Заходим в ящик под созданным паролем и проходим краткую регистрацию, после этого ящик начинает функционировать.

Восстановление доступа к почте домена Яндекс

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

  1. Создать новую учетку Яндекс.
  2. Написать запрос в тех.поддержку Яндекс об изменении учетной записи к которой привязан домен. В форме необходимо будет указать 3 заведенных ящика (либо все если их 3 или меньше).
  3. Скорее всего поддержка предложит переслать на указанный при регистрации домена e-mail прислать код подтверждения. Узнать какой e-mail указан в виде администраторского нужно в личном кабинете, где куплен домен. Проверить отправку письма на e-mail можно из формы .
  4. Пересылаем код подтверждения сотруднику Яндекс и он привязывает домен на указанный новый аккаунт.

Перехват владения доменом на Яндекс

Можно создать на Коннект почту домена подтвердив права на него. При этом если для этого домена уже создана почта на Яндексе, то он предложит 2 варианта: восстановить права на домен, либо создать новую почту. Если выбран второй вариант, то по старому расположению домена почты перестанут работать и расширение сайта после @ у них измениться на техническое (пример: @site-ru-88888.yaconnect.com). Если вернуть права на домен на первоначальном аккаунте, то почта вернет обычный вид и снова будет работать.

Почта домена на Google

Все что надо знать о корпоративной почте на Google — она платная.

Настройка SMTP

Для корректной работы почты домена на сайте нужно установить плагин WP Mail SMTP и настроить его так:
From Email - адрес, с которого будут отправляться письма и на который получатель отправит ответ, нажав на кнопку «Ответить» в своей почте.

From Name - имя отправителя, можно указать название сайта или свое имя и фамилию.

Mailer - отправка писем через системный транспорт (функция mail()) или через SMTP-сервер. Выбираем «Send all WordPress emails via SMTP».

SMTP Host - адрес SMTP-сервера. Можно узнать у службы поддержки или в справочном разделе. Для Яндекс Почты используйте smtp.yandex.ru, для Gmail - smtp.gmail.com.

SMTP Port - порт SMTP-сервера, зависит от типа шифрования (Encryption). Для Яндекс Почты и Gmail используйте порт 465.

Encryption - тип шифрования. Для Яндекс почты и Gmail необходимо установить «Use SSL encryption».

Authentication - требуется ли выполнять авторизацию на почтовом сервере. Устанавливаем «Yes: Use SMTP authentication».

Username - логин от почты. Как правило, полный адрес почтового ящика, должен совпадать со значением, указанным в поле From Email.

Password - пароль от почтового ящика.

После сохранения настроек можно протестировать ящик (блок Send a Test Email). Мгновенно придет отчет все ли в норме.
The result was: bool(true) — все в порядке, если bool(false) — то надо смотреть логи.

Ошибки и решения

Ошибка: extension missing openssl (Отсутствует расширение OpenSSL).
Решение: отключить тип шифрования, сделать «Без шифрования» и соответственно изменить SMTP Port.

Ошибка: Could not authenticate (Не удалось выполнить аутентификацию).
Решение: зайти на подключаемый ящик, и проверить все ли в порядке, пройдена ли регистрация ящика.

Почта домена на хостинге

Крупные хостинги предоставляют свои почтовые сервера. Надо только найти данные по настройке SMTP.

Почта домена на mail.ru

У Mail.ru почта домена называется Почта для бизнеса.

1. Подтверждаем владение доменом одним из 3-х способов.
2. Прописываем в DNS домена MX-запись
Имя поддомена: @
Тип записи: MX
Данные: emx.mail.ru.

Я уже как-то писал о том как минуя серверный sendmail . На днях, в очередной раз столкнувшись с адскими серверными лимитами виртуального хостинга Ру-центра, снова оказался в поисках обходных путей.


На сей раз шаблон по ряду причин оказался не совсем готов к работе с WP Mail SMTP о котором шла речь ранее. Поэтому, я решил пойти иным путем и попробовать рекомендуемый многими плагин Configure SMTP , который по-сути решает аналогичную задачу - отправляет всю почту из WordPress через внешний или внутренний SMTP-сервер.

Я не знаю существует ли русская локализация этого плагина, ее поисками я не занимался, т.к. не вижу острой необходимости. Внешне данный плагин никак себя не проявляет, в настройки сводятся к самому минимуму и выглядят следующим образом. Картинка кликабельна.

Как видно на скрине - ничего сложно нет. Я думаю, на английском плагин будет настроить даже проще. Ну, а кому сложно, я кратко пробегусь по всем пунктам.

  • Send e-mail via Gmail? Если вы хотите использовать SMTP-сервер Гугла, ставьте галочку, и все настройки пропишутся автоматически. Без логина и пароля, разумеется.
  • SMTP host . Собственно, адрес SMTP-сервера. Например, в Ру-центре он mail.nic.ru, в Яндексе - smtp.yandex.ru. Адрес SMTP-сервера вы должны выяснить непосредственно у своего почтового сервиса.
  • SMTP port . Порт SMTP-сервера, как правило, указывается вместе с его адресом. Обычно это 25, 587, 465, 475 или 2525-й порт.
  • Secure connection prefix . Метод подключения аналогично нужно выяснить у своего почтового сервиса. В Ру-центре, например, нет никакой безопасности, поэтому данное поле оставляем пустым. В Google ставим SSL.
  • Use SMTPAuth? Нужно поставить галочку, если ваш SMTP-сервер требует авторизацию. Она нужна практически во всех почтовых сервисах.
  • SMTP username/SMTP password . Я думаю это понятно всем - логин и пароль доступа к SMTP-серверу.
  • Wordwrap length . Установка переноса слов. Понятия не имею кому это нужно.
  • Enable debugging? Включаем или выключаем дебаггер. Обычно нужно на этапе на разработки для отлова багов.
  • Sender e-mail/Sender name . Понятно и без перевода - это имя и адрес, которые будут фигурировать в качестве отправителя письма.

После того как все настройки введены, я настоятельно рекомендую вам протестировать работу плагина, нажав на кнопку «Send test e-mail». Если все сделано верно - вам придет письмо. Если письма нет - ищите ошибку в настройках. Плагин полностью рабочий и протестирован мною на WordPress 3.7.1 и локальном SMTP-сервере Ру-центра.

Плагин WordPress Mail SMTP

Проблемы с отправкой почты вашим сайтом на WordPress? Вы не одни. Более 1 миллиона веб-сайтов используют WP Mail SMTP для исправления проблем с доставляемостью электронной почты.

WP Mail SMTP исправляет вашу отправку электронной почты, перенастраивая функцию PHP wp_mail() для использования надлежащего SMTP-провайдера.

Что такое SMTP?

SMTP (Simple Mail Transfer Protocol) является отраслевым стандартом для отправки электронных писем. SMTP помогает повысить эффективность доставки электронной почты с помощью надлежащей проверки подлинности.

Популярные почтовые клиенты, такие как Gmail, Yahoo, Outlook и т. Д., Постоянно совершенствуют свои услуги для уменьшения спама электронной почты. Одна из вещей, которую ищут спам-инструменты, — это получение электронной почты из местоположения, из которого она, по-видимому, исходит.

Если правильной проверки подлинности нет, то электронные письма либо попадают в вашу папку SPAM, либо в худшем случае не доставляются вообще.

Это проблема для многих сайтов WordPress, потому что по умолчанию WordPress использует почтовую функцию PHP для отправки электронных писем, сгенерированных WordPress, или любого плагина контактной формы, такого как WPForms .

Проблема в том, что большинство хостинговых компаний WordPress не имеют своих серверов, правильно настроенных для отправки писем PHP.

Сочетание двух причин, по которым ваши сообщения WordPress не доставляются.

Как работает WP Mail SMTP?

Плагин WP Mail SMTP позволяет легко перенастроить функцию wp_mail() для использования доверенного SMTP-провайдера.

Это поможет вам исправить все проблемы неотправки почты с сайта на WordPress.

Плагин WP Mail SMTP включает в себя четыре различных параметра настройки SMTP:

  1. Mailgun SMTP
  2. SendGrid SMTP
  3. Gmail SMTP
  4. Все прочие SMTP

Для всех параметров вы можете указать «from name» и «email address» для исходящих писем.

Вместо того, чтобы пользователи использовали разные плагины SMTP и рабочие процессы для разных SMTP-провайдеров, мы решили привести все это в одном. Это то, что делает WP Mail SMTP лучшим решением SMTP для WordPress.

Mailgun SMTP

Mailgun SMTP является популярным поставщиком услуг SMTP, который позволяет отправлять большое количество писем. Он позволяет отправлять ваши первые 10 000 писем бесплатно каждый месяц.

WP Mail SMTP-плагин предлагает встроенную интеграцию с MailGun. Все, что вам нужно сделать, это подключить свою учетную запись Mailgun, и вы улучшите доставляемость своей рассылки и почты.

Gmail SMTP

Часто блоггеры и владельцы малого бизнеса не хотят использовать сторонние SMTP-сервисы. Хорошо, что вы можете использовать свою учетную запись Gmail или G Suite для писем SMTP.

Это позволяет использовать профессиональный адрес электронной почты и улучшить доставляемость электронной почты.

В отличие от других плагинов Gmail SMTP, наша опция SMTP Gmail использует OAuth для аутентификации вашей учетной записи Google, сохраняя вашу регистрационную информацию на 100% в безопасности.

SendGrid SMTP

В SendGrid есть бесплатный SMTP-план, который вы можете использовать для отправки до 100 писем в день. Благодаря нашей собственной интеграции SendGrid SMTP вы можете легко и безопасно настроить SendGrid SMTP на своем сайте WordPress.

Другой SMTP

Плагин WP Mail SMTP также работает со всеми основными почтовыми службами, такими как Gmail, Yahoo, Outlook, Microsoft Live и любым другим сервисом отправки электронной почты, которая предлагает SMTP.

Можно установить следующие настройки:

  • Укажите узел SMTP.
  • Укажите SMTP-порт.
  • Выберите шифрование SSL/TLS.
  • Выберите, использовать аутентификацию SMTP, или нет.
  • Логин и пароль для SMTP.

WP Mail SMTP также дает вам возможность вставить свой пароль в файл wp-config.php, поэтому он не отображается в настройках вашего WordPress.

Чтобы увидеть рекомендуемые настройки популярных сервисов, а также советы по устранению неполадок, ознакомьтесь с нашей Документацией SMTP .

Мы надеемся, что вы найдете WP Mail SMTP плагин полезным.

Благодарности

Плагин WP Mail SMTP был первоначально создан Каллумом Макдональдом. В настоящее время он принадлежит и поддерживается командой WPForms — лучший drag & drop конструктор форм для WordPress.

Скриншоты

Установка

  1. Установите WP Mail SMTP от WPForms либо через репозиторий плагинов WordPress.org, либо путем загрузки файлов на ваш сервер. (См. инструкции как установить плагин WordPress)
  2. Активируйте WP Mail SMTP от WPForms.
  3. Перейдите в область настроек WP Mail SMTP в консоли WordPress.
  4. Выберите провайдера SMTP (SMTP Mailgun, SMTP SendGrid, Gmail SMTP или другой SMTP) и следуйте инструкциям по его настройке.
  5. Хотите поддержать нас? Попробуйте — лучший плагин форм обратной связи для WordPress!

Часто задаваемые вопросы

Могу ли я использовать этот плагин для отправки электронной почты через Gmail, G Suite, Outlook.com, Office 365, Hotmail, Yahoo или AOL SMTP?

Да! У нас есть обширная документация, которая охватывает настройку наиболее популярных почтовых служб SMTP

Отзывы

Участники и разработчики

«WP Mail SMTP от WPForms» - проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Журнал изменений

1.4.2 — 2019-03-23

  • Изменено: протестировано с WordPress 5.1.x.
  • Изменено: удалена библиотека TGMPA.

1.4.1 — 2018-12-03

  • Исправлено: правильно теперь обрабатываем обратные слеши в пароле SMTP при использовании констант.
  • Изменено: разрешить отправку тестового письма при использовании стандартного отправщика писем.

1.4.0 — 2018-11-29

  • Добавлено: новая опция: Блокирование писем — блокировка отправки всех писем с сайта.
  • Добавлено: новая опция: возможность отправки тестового письма как в HTML, так и в виде простого текстового письма.
  • Добавлено: новая опция: выбор региона для Mailgun — US или EU (US по умолчанию для сохранения совместимости).
  • Исправлено: совместимость с WordPress 3.6+.
  • Исправлено: совместимость с WordPress 5.0.
  • Исправлено: использование констант гораздо более стабильное. Должно корректно работать на мульти-сайте (применяются для всей сети).
  • Исправлено: сохраняем multipart письма при использовании SendGrid/Mailgun.
  • Исправлено: улучшение безопасности плагина.
  • Изменено: заполняем поле получателя тестового письма имейлом авторизованного пользователя.
  • Изменено: обновление библиотек и их зависимостей: google/apiclient-services, google/auth, phpseclib/phpseclib.
  • Изменено: отображаем версию cURL при ошибках отправки писем с помощью Gmail.
  • Изменено: отображаем версию OpenSSL при ошибках отправки писем сс помощью Gmail/SMTP.
  • Изменено: отображаем версию плагина в консоли при ошибках в отправке писем.
  • Изменено: не разрешать отправлять тестовые письма, если отправщик не настроен корректно.
  • Изменено: уведомляние для админов о том, что Gmail не поддерживает переопределение имени и email отправителя писем.
  • Изменено: обновлен список всех констант с их описанием в главном файле плагина: wp_mail_smtp.php.
  • Изменено: TGMPA: изменение заголовков и меню с «Обязательно» на «Рекомендовано».

1.3.3 — 2018-07-05

  • Исправлено: совместимость с другими плагинами, использующими классы Google Service или Google Client.

1.3.2 — 2018-06-29

  • Убедитесь, что другие плагины / темы не конфликтуют с нашей библиотекой TGMPA.

1.3.1 — 2018-06-29

  • Исправлено: Другие SMTP: очищаются новые отладочные сообщения о неудачной доставке письма при следующей успешной отправке письма.
  • Исправлено: Внедрение условного автозагрузчика для обхода требований Gmail PHP 5.5 и его проблем с совместимостью библиотек с минимальной жизнеспособной версией плагина PHP 5.3+.

1.3.0 — 2018-06-28

  • Добавлено: Новая опция: Принудительная перезапись значения значения электронной почты «От» независимо от текущего значения.
  • Добавлено: Новая опция: Принудительная перезапись значения поля «От кого» независимо от текущего значения.
  • Добавлено: Новая опция: удалить все данные плагина при деинсталляции плагина (когда пользователь удаляет плагин).
  • Добавлено: Уведомление администраторов сайта в области wp-admin о последней неудачной отправке письма. Очищается при успешной доставке.
  • Добавлено: Уведомление администраторов сайта в области wp-admin о возможных проблемах совместимости с другими плагинами SMTP и электронной почты.
  • Добавлено: Улучшен опыт пользовательской отладки при выполнении теста отправки почты — отображается полезное описание и шаги по устранению проблемы.
  • Добавлено: Новым пользователям: указано значение порта SMTP по умолчанию для новых пользователей на основе выбора шифрования.
  • Добавлено: Новым пользователям: уведомлять об отсутствующих настройках плагина.
  • Добавлено: Новым пользователям: Рекомендовать бесплатный плагин WPForms Lite для тех, у кого его нет.
  • Добавлено: SendGrid / Mailgun: обеспечивает поддержку multipart/alternative типов писем.
  • Добавлено: Gmail: новая кнопка для удаления подключения и связывания с новой учетной записью Google.
  • Исправлено: Поддержка установки плагина в каталог /mu-plugins/.
  • Исправлено: SendGrid: требуемый text/plain в первой части письма — исправляет письма в виде простого текста, не имеющие ссылок.
  • Исправлено: SendGrid и Mailgun: неправильная отправка текстовых сообщений в формате html.
  • Исправлено: SMTP Debug в некоторых случаях был пустым.
  • Исправлено: Совместимость с множеством других плагинов, в которых используется библиотека Google Analytics разных версий.
  • Исправлено: «client_id пустое» больше не проблема, она исправлена.
  • Изменено: для SendGrid и Mailgun разрешено использовать пользовательские имена вложений, если они есть. Возврат к имени файла.
  • Изменено: Gmail: переключиться на более широкий диапазон, чтобы предотвратить возможные проблемы в определенных обстоятельствах.
  • Изменено: удалены пробелы в начале/конце ключей, секретах и т.д.
  • Изменено: Улучшены полезные описания тестов различных опций.
  • Изменено: улучшена функциональность автозагрузки плагина.

1.2.5 — 2017-02-05

  • Исправлено: Return path иногда не выключалось.
  • Исправлено: Authentication иногда не выключалось.
  • Исправлено: Auto TLS иногда не выключалось.
  • Исправлено: Поддержка BCC для Gmail была нарушена.
  • Исправлено: Улучшена отладка для обработки SELinux и grsecurity.
  • Исправлено: Открывающие слэши из настроек плагина (полезно для опции From Name).
  • Исправлено: Изменен способ обработки для предотвращения случайного удаления полезных данных.
  • Исправлено: Активация плагина не перезаписывает настройки по умолчанию.
  • Исправлено: Правильно устанавливается опция Auto TLS при активации плагина.
  • Исправлено: Улучшена автозагрузка провайдера для определенных установок Windows.
  • Исправлено: Использован правильный путь для загрузки переводов из каталога /languages плагина.
  • Изменено: Не использовать автозагрузку плагина при каждом запросе к странице настроек плагина из таблицы параметров WordPress.
  • Изменено: не использовать автозагрузку классов Pepipost, если последний не сохранен в качестве активного мейлера в настройках.

1.2.4 — 2017-01-28

  • Исправлено: Улучшено экранирование в отчетах отладки.

1.2.3 — 2017-01-22

  • Исправлено: Токены Gmail сбрасывались после нажатия кнопки «Сохранить настройки».
  • Исправлено: Небольшая опечатка в успешном сообщении Gmail.

1.2.2 — 2017-12-27

  • Исправлено: Правильно обрабатываемое отладочное сообщение Mailgun про неправильный ключ API.
  • Исправлено: Неустранимая ошибка для почтовых программ Gmail и SMTP с веб-сервером Nginx (без Apache вообще).
  • Изменено: Обновлен заголовок письма X-Mailer, чтобы показать настоящего отправителя с версией почтовой программы и плагина.

1.2.1 — 2017-12-21

  • Исправлено: Неудачные соединения SMTP генерировали фатальные ошибки.

1.2.0 — 2017-12-21

  • Исправлено: Уменьшена фактическая минимальная версия WordPress с 3,9 до 3,6.
  • Изменено: Улучшен вывод отладки для всех почтовых провайдеров.

1.1.0 — 2017-12-18

  • Добавлено: Новая опция «Auto TLS» для почтовой программы SMTP. По умолчанию включено. Процедура миграции для всех сайтов.
  • Изменено: Улучшен вывод отладки — четкие стили и контекстно-зависимый контент.
  • Изменено: Улучшена обработка исключений для процесса аутентификации Google.
  • Изменено: Не санитизируются пароли, ключи api и т.д., так как они могут содержать специальные символы в определенном порядке, а санитизация нарушит эти значения.
  • Изменено: Улучшена формулировка некоторых полезных текстов внутри области администрирования плагина.
  • Исправлено: Не включает определенные файлы в библиотеки зависимостей, которые не используются почтовой программой Google. Это должно прекратить помечать плагин в Wordfence и VaultPress.
  • Исправлено: Использование констант теперь работает, например, для определения пароля SMTP.
  • Исправлено: Уведомление для почтовой программы по умолчанию.

1.0.2 — 2017-12-12

  • Исправлено: PHPMailer с использованием некорректного значения SMTPSecure.

1.0.1 — 2017-12-12

  • Исправлено: Глобальный конфликт обработки POST.

1.0.0 — 2017-12-12

  • Добавлено: Инструмент автоматической миграции для переноса параметров из старого формата хранения в новый.
  • Добавлено: Добавлена интеграция провайдера почты Gmail & G Suite — без вашей электронной почты и пароля.
  • Добавлено: Добавлена интеграция поставщика электронной почты SendGrid — только с использованием ключа API.
  • Добавлено: Добавлена интеграция поставщика электронной почты Mailgun — только с использованием ключа API и настроенного домена.
  • Добавлено: Новый режим совместимости — для PHP 5.2 старый плагин будет загружен, для PHP 5.3 и выше — новая версия области администрирования и новые функции.
  • Изменено: Новый вид области администрирования.
  • Изменено: Поле пароля SMTP теперь имеет тип «пароль».
  • Изменено: Поле пароля SMTP вообще не отображает реальный пароль при использовании констант в wp-config.php для его определения.
  • Правильный вывод всех переводов
  • Изменено: более полезный тестовый контент электронной почты (с именем почтовой программы).

0.11.2 — 2017-11-28

  • Добавлено: Настройка для скрытия фида объявлений.
  • Изменено: Данные фида объявлений.

0.11.1 — 2017-10-30

  • Исправлено: Старое исправление совместимости с PHP.

0.11 — 2017-10-30

  • Добавлено: Описание помощника для параметра «Обратный путь».
  • Добавлено: Фильтрация wp_mail_smtp_admin_test_email_smtp_debug , для увеличения информативности сообщений отладки.
  • Добавлено: Уведомление PHP 5.2.
  • Добавлено: Фид объявлений
  • Изменено: Исправления локализации, правильное название локали.
  • Изменено: Улучшения кода стилей и оптимизации для HTML и PHP.
  • Изменено: Входы для писем теперь имеют правильный тип email , вместо общего text .
  • Изменено: Отключать $phpmailer->SMTPAutoTLS , если параметр No encryption установлен для предотвращения ошибки при отправке писем.
  • Изменено: Скрывать Pepipost для тех, кто его не использует.
  • Изменено: Улучшена поддержка WP CLI.

0.10.1

0.10.0

  • Добавление Pepipost и очистка страницы администрирования.

0.9.6

  • Незначительные исправления безопасности,санитизация тестового адреса электронной почты.

0.9.5

  • Незначительное исправление безопасности, спасибо JD Grimes.

0.9.4

  • Улучшение функции тестового письма, обновление с очень низким приоритетом.

0.9.3

  • Исправлена ошибка с отправкой по ссылке. реквизит Адам Конвей

0.9.2

  • Удаление уведомления об устаревании.

0.9.1

  • $phpmailer->language стал защищенным в WP 3.2, больше не отключается при отладочном выводе.

0.9.0

  • Опечатки в описании From email.
  • Удален changelog из файла плагина, нет необходимости его дублировать.
  • По желанию $phpmailer->Sender from из письма, помогает с sendmail/mail().

0.8.7

  • Исправлена ошибка, которая вызвала ошибку при активации плагина.

0.8.6

  • Ссылка на настройки действительно работает в этот раз, обещаю. Извините за ненужные обновления.

0.8.5

  • Багфикс, ссылка настроек на странице плагина была неработоспособной в версии 0.8.4.

0.8.4

  • Незначительное исправление, удалено использование esc_html(), для улучшения обратной совместимости.
  • Убрано страница вторых опций меню, реквизит ovidiu.

0.8.3

  • Исправление, возвращает WPMS_MAIL_FROM_NAME, предложено nacin.
  • Добавлена ссылка настроек, реквизит Майка Чаллиса https://profiles.wordpress.org/MikeChallis/

0.8.2

  • Исправление, корректный вызов phpmailer_init_smtp(), собственность Sinklar.

0.8.1

  • Улучшение интернационализации.

0.8

  • Добавлены порт, SSL/TLS, опция «белый список», validate_email() и константные параметры.

0.7

  • Добавлены проверки только для переопределения значения по умолчанию из имени / электронной почты

0.6

  • Добавлен дополнительный отладочный вывод SMTP

0.5.2

  • Исправлена ошибка пре-2.3 с почтой

0.5.1

  • Добавлена проверка для отображения предупреждения о версиях до 2.3

0.5.0

  • Обновлен в соответствии с 2.3 фильтрами, которые добавляют второй фильтр для имени

0.4.2

  • Исправлена ошибка в 0.4.1 и добавлен дополнительный вывод отладки

0.4.1

  • Добавлена переменная $phpmailer->ErroInfoдля вывода тестовой почты

0.4

  • Добавлена функция тестового письма и вычищены некоторые другие фрагменты

0.3.2

  • Изменено использование register_activation_hook для большей совместимости

0.3.1

  • Добавлено readme для совместимости WP-Plugins.org

0.3

  • Различные исправления и добавления опций формы

0.2

  • Пересмотренный подход, предложенный westi, добавлена страница параметров

0.1

  • Исходный подход, копирование функции wp_mail и её замена

Один из основных «компонентов» любого веб-приложения – это возможность посылать почтовые сообщения — е-мейл.

Однако это не означает, что каждое приложение использует свой собственный почтовый клиент. (Хотя люди, конечно, создают свои).

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

Понятие E-mail

Перед тем, как мы углубимся в то, что WordPress API может предложить для отсылки писем, редактирования их настроек и подобных вещей, важно знать пару важных моментов об e-mail.
А именно, важно понять, как работают компоненты, которые создают само письмо, а это нечто большее, чем только адрес, тема и содержание. Существуют некоторые технические нюансы, которые следует уяснить, прежде чем приступать к созданию собственных писем.

«Шапка» электронного письма содержит минимум информации: от кого и кому письмо было отправлено. Также можно встретить и другие сведения. Например, время, когда письмо было послано или получено.

Когда мы работаем с программой WordPress, отправитель письма назначается по умолчанию. Если он не указан, то адрес отправителя принимает вид «wordpress@domain . com »

Если вы хотите установить другой адрес «ответа», например «[email protected] », то такая возможность доступна в настройках.

Лучше всего работать с оглавлениями, используя массивы.

Тип MIME

Когда придет время указывать формат отправки письма, вы, вероятно, увидите два альтернативных формата:

  • Plain text

Вы привыкли видеть HTML в большинстве современных e-mail клиентов, однако, если у вас упрощенный клиент, или он настроен на отображение только обычного текста, или вы читаете письмо на дисплее старого телефона, то содержимое будет отображаться в Plain text.

Программа WordPress соответственно позволяет отправлять письма как в формате HTML, так и в формате Plain Text.

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

Вложения (Attachments)

Как известно, вложением является любой файл, прикрепленный к основному письму, отправленный получателю вместе с текстом.

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

Например:

  • Некоторые клиенты не допускают отправку/получение файлов формата ZIP и EXE (т.е. архивы и исполнительные файлы)
  • Большинство сервисов имеют лимит по размеру прикрепленного файла.
  • Определенные типы писем могут быть помечены как спам автоматически (основываясь на вложениях и содержимом тексте)

Разумеется, правила изменить мы не можем. Но стоит знать ограничения тех, кому мы отправляем письма, и оставаться в установленных рамках. Но не стоит волноваться! Отправить е-мейл в соответствии с данными условиями и заданными целями в программе WordPress не составит труда!

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

«Кому», «Тема», «Сообщение»

В большинстве случаев e-mail состоит из трех основных пунктов: «кому» (адрес электронной почты получателя), «Тема» и «Сообщение» (основной текст).

В WordPress достаточно легко работать с данной информацией. Достаточно всего лишь обеспечить каждую «графу» своей строчкой.

Разумеется, если вы хотите отправить сразу несколько писем, то можно как повторять отсылку е-мейла желаемое количество раз, отправляя по одному письму каждому пользователю, так и использовать массив из адресов получателей в WordPress Mail API , тогда письмо отправиться всем, кто был включен в этот массив.

И запомните! Если вы хотите изменить стандартный reply - to (ответный) адрес на свой, загляните в «Оглавление».

Использование WordPress Email API

Мы рассмотрели все основные моменты и готовы приступить к основной части статьи, а то есть, к изучению WordPress Email API.

Если разобраться, весь функционал по этой теме сосредоточен в функции wp_mail, однако существуют еще некоторые «хуки», о которых нам тоже следует знать, если мы хотим использовать все преимущества системы.

Основные «Хуки»

  • wp _ mail _ content _ type позволяет установить тип MIME исходящего письма
  • wp _ mail _ from – это фильтр, с помощью которого можно установить электронный адрес отправителя, не прибегая к массиву $headers .
  • wp _ mail _ from _ name – фильтр с аналогичной функцией, но для указания имени отправителя (также без использования массива $headers.)
  • wp _ login – Хук, который мы будем использовать для демонстрации, посылая е-мейл человеку, когда тот авторизируется в приборной панели WordPress.

Для полноты картины, я поделюсь своим кодом ниже, и вы сможете увидеть все, что мы сейчас разобрали, в действии, тем самым изучить, как это все работает.


"; $message .= "Your account has been created. Your login information is below:"; $message .= "
"; $message .= "

    "; $message .= "
  • Username: " . $input["email-address"] . "
  • "; $message .= "
  • Password: " . $password . "
  • "; $message .= "
"; $message .= "
"; $message .= "You can login to the application here."; add_filter("wp_mail_content_type", create_function("", "return "text/html";")); add_filter("wp_mail_from", "acme_mail_from"); add_filter("wp_mail_from_name", "acme_mail_from_name"); wp_mail($input["email-address"], "Your Acme Account Has Been Created!", $message, array()); } function acme_mail_from($email) { // NOTE: replace with @. This was causing problems with the syntax highlighter. return "donotreplyacme.com"; } function acme_mail_from_name($name) { return "The Acme Company"; }

< ? php

function acme_email_individual ($ input ) {

* Note: assume that $input has keys for "email-address".

// Generate the password

$ password = wp_generate_password (12 , false ) ;

// Email the user that they"re profile was created

$ message . = "

" ;

$ message . = "Your account has been created. Your login information is below:" ;

$ message . = "
" ;

$ message . = "

    " ;

    $ message . = "

  • Username: " . $ input [ "email-address" ] . "
  • " ;

    $ message . = "

  • Password: " . $ password . "
  • " ;

    $ message . = "

" ;

$ message . = "
" ;

add_filter ("wp_mail_content_type" , create_function ("" , "return "text/html";" ) ) ;

add_filter ("wp_mail_from" , "acme_mail_from" ) ;

// Generate the password = Генерируем пароль

// Email the user that they"re profile was created = Отправляем письмо пользователю, аккаунт которого был создан

// NOTE: replace with @. This was causing problems with the syntax highlighter = Обратите внимание! Надо замените [ at ] на «@». (Это бы вызывало проблемы с выделением синтаксиса)

Разбор кода должен все прояснить. После написания основной информации мы, используя плюсы предусмотренных в программе «хуков», создаем «strings» (строки) как аргументы и, в конце концов, вызываем саму функцию wp_mail .

Однако заметьте, что мы допускаем использование пустых массивов для некоторых аргументов $headers . А все потому, что у нас есть пользовательский фильтр для указания «From Name »(Имени отправителя) и “From Address ”(Адреса отправителя)

Этот метод не является однозначно лучше, чем альтернативный. Однако теперь мы видим, что существует несколько способов осуществить поставленную задачу.

Публикации по теме