php mail настройка wordpress
wp_mail() WP 1.2.1
Отправляет письмо на почту. Похожа на mail() в PHP.
Функция использует фильтры wp_mail_from и wp_mail_from_name, которые влияют на адрес email’a и имя отправителя, соответственно, при этом поле From (от кого) собирается заново. Если только wp_mail_from (email) возвращает значение, то имя указываться не будет вообще: (From: email@example.com)
Кодировка по умолчанию соответствует кодировке блога (обычно utf-8). Кодировка устанавливается через фильтр wp_mail_charset.
Для работы этой функции сервер должен работать с SMTP и должен быть установлен smtp_port в php.ini.
Это pluggable функция — т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена. Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.
Замена функции (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.
Хуки из функции
Возвращает
true не означает, что письмо дошло до адресата, а означает только то, что функция проделала всю процедуру отправки письма без ошибок.
Использование
Заголовки письма, указывающие на его атрибуты. Для продвинутого использования. Может быть:
$attachments(строка/массив) Файлы, которые следует прикрепить к письму. Указываем полный путь до файла (название файла включительно). Если нужно прикрепить несколько файлов указываем их названия в массиве или в строке через перенос строки.
По умолчанию: array()
Примеры
#1. Пример отправки письма
Отправим письмо от My Name с прикрепленным файлом attach.zip :
На некоторых серверах (хостингах) в поле FROM (в части email) обязательно должен фигурировать домен сайта, иначе, например, яндекс почта не получит письмо. Проверял на хостинге Бегет.
Настроить отправку email писем в WordPress
Если вы на своём сайте активно используете email, а именно формы обратной связи, например, Contact Form 7, форумы с рассылкой сообщений или иные социальные плагины, то наверняка часто сталкивались с такой проблемой, как пропадание писем, попадание их в спам и т.д. Как этого избежать, поговорим далее.
Почему email не доставляются и пропадают
Письма могут пропадать в силу нескольких причин. Первая и самая главная — ваш email приняли за спам. Любой серьёзный почтовый сервис имеет свой мощный антиспам-модуль c эвристическим анализом содержимого email, не говоря уже о чёрном списке адресов. Поэтому, не переусердствуйте с рассылкой, чтобы не попасть в чёрный список спамеров.
Также, в спам попадут не подписанные электронной подписью письма. То есть, любой может отправить фишинговое письмо, скажем, от имени [email protected], однако, это будет безуспешно, т.к. отправитель вряд ли сможет подтвердить, что оно было отправлено с этого адреса. Для проверки легитимности используются подписи DKIM (DomainKeys Identified Mail) и SPF (Sender Policy Framework) записи.
Что сделать, чтобы письма доходили до адресата
Не переусердствуйте с рассылкой и настройте свой SMTP-сервер, чтобы исходящие email подписывались DCIM- и SPF-подписями. Вы можете настроить свой SMTP сервер, но чтобы не заморачиваться с настройкой, можно привязать домен к Яндекс.ПДД или Google Apps for Business и отправлять email через их сервис, и тогда все нужные заголовки будут прописываться автоматом. Но тут есть 2 оговорки
Если вы укладываетесь в вышеуказанные рамки, тогда вперёд, настроим подключение
Как настроить подключение SMTP
Чтобы настроить нормальную отправку писем, нужно установить плагин WP Mail SMTP. Он позволяет переконфигурировать стандартный PHP Mailer так, чтобы была возможность подключаться к SMTP серверу. Также, советую использовать его, если вы пользуетесь локальным сервером.
Настройка будет происходить под Яндекс. Гугл отметается, так как теперь там нет бесплатных тарифов
Настройка WP Mail SMTP
А вот описание опций
Когда всё настроите, можете проверить, как получилось. Для этого введите в разделе ниже Send a Test Email ваш email, отправьте тестовое письмо и проверьте почту. Если всё в порядке, оно должно находиться там.
Настройка Contact Form 7
Не обращайте внимания на ошибку: Электронный адрес отправителя не принадлежит домену сайта., email будут отправляться верно с этого адреса.
Установка и настройка почтового сервера
Если лимиты внешнего SMTP-сервера не устраивают, можно использовать свой серверный вариант: установить Postifx или Sendmail. Оба отвечают за работу с email, в частности, их отправку и пересылку.
Установка Postfix
В процессе установки будут заданы вопросы относительно настройки. Важно выбрать тип Internet Site. Это необходимо сделать для того, чтобы Postfix сгенерировал файл main.cf и сразу начал работу. В противном случае, Вам необходимо будет настраивать его вручную.
Установка Sendmail
Sendmail устанавливается примерно так же
Потом его сконфигурировать
После всего этого перезагрузить сервер
Что делать, если email не доходит
Если по истечению времени письмо таки не дошло в почтовый ящик, хотя плагин просигнализировал об успешной отправке сообщения, возможно, хостинг не настроен должным образом.
Возможно, php просто не может отправлять письма.
Как проверить отправку email в PHP
3 команды, которые нужно ввести в консоль SSH последовательно:
[email protected] — это адрес, куда надо доставить тестовое письмо.
Если PHP не настроен на работу в консоли, можно попробовать следующее:
Если на данном этапе возникает ошибка, попробуйте переустановить и правильно сконфигурировать Postfix или Sendmail.
В заключение
Отправка писем с помощью SMTP-сервера — это правильный подход к делу. Всегда используйте его, дабы это возможно практически на любом хостинге, и пусть ваши email доходят до адресата.
Если у вас возникли вопросы, что-то не получилось или не работает, пишите в комментариях, решим проблему.
Как установить и настроить SMTP в WordPress
По умолчанию WordPress использует PHP-функцию mail() для отправки электронных писем. Но многие серверы не поддерживают ее. Эту проблему можно решить, установив и настроив SMTP-сервер на собственном сайте.
Установка и настройка SMTP в WordPress
Если вы используете один из встроенных SMTP-серверов, ваши письма будут отправляться с использованием API. Поэтому даже если веб-хост блокирует порт SMTP, электронные письма все равно будут доставлены.
Давайте посмотрим, как использовать этот плагин. Но перед этим вам необходимо создать учетную запись на почтовом сервисе хостинге.
Шаг 1: Настройка учетной записи почты на хостинге
Войдите в cPanel и перейдите в раздел Mail>Email Accounts > Create new.
После этого заполните регистрационную форму.
После этого вы сможете использовать ее для отправки электронных писем. Для этого потребуется следующая информация:
Чтобы получить эту информацию, свяжитесь со службой поддержки хостинга.
Шаг 2: Настройка плагина WP Mail SMTP
После установки и активации плагина в панели администрирования WordPress перейдите в раздел WP Mail SMTP. Затем войдите в пункт Settings > General. Затем укажите адрес электронной почты, который вы только что создали. А также логин, который будет отображаться в поле «Отправитель».
Прокрутив страницу вниз, вы получите доступ к остальным настройкам SMTP.
Для SMTP обычно используется 465 порт. Затем установите протокол шифрование.
Затем перейдите на вкладку аутентификации и введите логин пользователя и пароль от SMTP-сервера. В качестве логина можно использовать созданный на хостинге адрес электронной почты. После этого нажмите кнопку «Save settings»
Шаг 3: Проверка настроек SMTP
Теперь проверим, все ли работает нормально. Это можно сделать на вкладке Email test, которая располагается рядом с вкладкой General.
Введите адрес электронной почты, на который вы хотите получать тестовые письма. Затем нажмите на кнопку отправки. После чего плагин отправит вам электронное письмо с использованием только что заданных настроек SMTP. Как только письмо будет отправлено, на экране появится сообщение об успешном завершении теста.
Теперь у вас не возникнет проблем с доставкой или получением электронных писем.
Пожалуйста, опубликуйте ваши отзывы по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, лайки, подписки, дизлайки, отклики!
Настройка отправки почты через SMTP на WordPress
SMTP – простой протокол передачи почты в сетях TCP/IP. Однако в большинстве CMS на PHP отправка почты через SMTP невозможна, так как штатная функция «mail» его не поддерживает. Выход — подключить SMTP как дополнительный инструмент.
В этой статье рассмотрим как делается настройка почты через протокол SMTP на сайте с CMS WordPress, размещенном на виртуальном хостинге.
Перед тем как перейти к настройке SMTP в самой CMS, нужно создать почтовый ящик. Сделать это можно несколькими основными способами — непосредственно на виртуальном хостинге в настройках панели ISPmanager или на внешних сервисах — Yandex, Google, Mail.ru.
Необходимые настройки CMS
Строку «От кого (Имя)» пользователь может заполнить по своему усмотрению. Остальные настройки будут зависеть от выбранного сервера, где будет размещена почта. Поэтому для дальнейшей настройки почты, нужно выполнить ряд дополнительных действий:
Какая информация нужна:
Если будет использоваться SSL-порт, то в настройках почтового домена нужно сделать ряд дополнительных действий:
Эта инструкция по настройке отправки почты через SMTP подходит как для веб-хостинга, так и для виртуального сервера. Единственное отличие — в параметрах настроек SMTP-сервера. Для сайта на VPS следует брать из настроек собственного почтового домена, а не данные сервера Eternalhost (пункт 8A).
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Postman SMTP — как отправлять Email с WordPress с помощью протокола SMTP
Знаете, что раздражает? Когда письмо, отправленное по email с вашего сайта, попадает пользователю в спам. Вы отправляете нужное письмо с нужной информацией без рекламы и т.д., но по какой-то причине пользователь его не получает, потому что оно автоматически было помечено как спам.
Эта ситуация очень типична для пользователей Contact Form 7, которые получают уведомления на почту Gmail. Да и вообще, такое часто происходит и с другими письмами, которые отправляются через сайт на WordPress.
Все дело в том, что WordPress по-умолчанию использует функцию PHP mail для отправки email. И это часто может привести к тому, что важные письма, вроде уведомлений сайта, данных о регистрации, подтверждение сброса пароля и т.д. — все это может попадать в спам.
В этом уроке мы расскажем, как можно исправить эту ситуацию и повысить шанс успешно доставленных писем с помощью протокола SMTP на wordpress.
В чем проблема с WordPress PHP Mail?
Если вам повезло, то никакой проблемы нет. PHP mail работает в большинстве случаев. Стандартные уведомления, которые рассылает сам WordPress практически всегда успешно доставляются во Входящие. Проблемы могут начаться, когда уведомления рассылают установленные плагины.
Также ограничивать работу PHP mail могут некоторые хостинг сервисы. А еще конфликт может возникнуть при работе определенных security-плагинов.
В любом случае, если у вас хоть раз были проблемы с недоставкой email писем со своего WordPress сайта, есть повод задуматься и попробовать перейти на SMTP отправку.
Что такое SMTP?
SMTP (Simple Mail Transfer Protocol) — это стандартный почтовый протокол для передачи электронных писем, который уже очень давно и успешно используется.
Главное преимущество, которое вы получите при использовании SMTP — это практически 100% гарантия того, что письмо будет доставлено по адресу, и почтовые службы вроде Gmail не пометят его как спам, в отличие от писем, отправленных через PHP mail.
Все потому, что почта, отправленная через SMTP, подвергается определенной аутентификации, в отличие от PHP mail.
Еще одно преимущество SMTP на WordPress — это более персонализированная и брендовая почта.
Как отправлять WordPress почту через SMTP
Так что, мы считаем Postman SMTP более толковым и безопасным вариантом, чем WP Mail SMTP.
Шаг 1. Установите и активируйте Postman SMTP
Вы можете скачать бесплатно плагин Postman SMTP с официального каталога плагинов WordPress:
Шаг 2. Настройка параметров SMTP
У Postman SMTP есть удобный мастер по конфигурации, о чем мы уже упоминали. Просто нажмите на кнопку и выполните все шаги по очереди.
Мы покажем, как все сделать для настройки SMTP вашего сервера. Но вы также можете использовать сторонние SMTP службы, например Gmail или SendGrid.
В первую очередь вы должны указать email адрес, с которого будет происходить отправка, этот же email будет автоматически указываться в поле «From:»
Затем укажите hostname сервера для исходящей почты:
Чтобы найти outgoing hostname, вы можете зайти в cPanel вашего хостинга. В разделе Email Accounts найдите ваш email, который вы хотите использовать, и выберите Set Up Mail Client. Если вы еще не создали свой почтовый аккаунт, вы можете сделать это тут же в cPanel:
Затем опуститесь ниже к разделу Manual Settings и найдите блок настроек Secure SSL/TLS Settings. Ваш hostname исходящей почты будет указан как URL для Outgoing Server:
Как только вы укажете outgoing hostname, плагин выполнит дальнейшую конфигурацию и выдаст вам список доступных вариантов для выбора Socket:
Убедитесь, что вы выбрали вариант с правильным номером порта. Номер порта можно посмотреть там же в cPanel.
На следующем шаге вам нужно указать username и пароль. Опять таки, вся эта информация берется из cPanel в разделе настроек почтового аккаунта. По умолчанию, в качестве username выступает сам email.
На этом все, вы настроили Postman SMTP!
Шаг 3. Отправка тестового Email
Чтобы убедиться, что все настройки сделаны правильно, вы можете отправить тестовое письмо из админки Postman SMTP:
И если все прошло удачно, вы получите email на адрес, который вы указали. Если вы получили письмо, значит SMTP настроен и работает!
Postman SMTP и сторонние Email службы
Как мы сказали ранее, можно использовать Postman SMTP вместе со сторонними Email службами, например Gmail. Вы сможете использовать Gmail и отправлять до 500 писем в сутки, для этого только потребуется создать API ключ.
Мастер настройки Postman SMTP поможет вам настроить оба эти варианта.
Не используйте для почтовых рассылок!
Хотя SMTP протокол отлично подходит для отсылки почты со своего сайта на WordPress, не стоит использовать его для массовой почтовой рассылки. С этим у вас могут возникнуть проблемы.
Для почтовых рассылок лучше использовать сторонние сервисы, например MailChimp.
Итоги
Если вы единственный пользователь своего сайта на WordPress, и никогда не испытывали проблем с отправкой почты с сайта, пожалуй, лучше все оставить как есть.
Но если на сайте много пользователей, и к тому же вы используете плагины, которые рассылают почтовые уведомления, переход на SMTP может улучшить стабильность отправки и доставки ваших писем, потому как отправка через PHP Mail частенько может закончиться попаданием в Спам.