Wordpress не отправляет почту. Настройка e-mail и его функций в WordPress. #2. Пример использования массива для указания заголовков письма

Если вы на своём сайте активно используете email, а именно формы обратной связи, например, Contact Form 7 , форумы с рассылкой сообщений или иные социальные плагины, то наверняка часто сталкивались с такой проблемой, как пропадание писем, попадание их в спам и т.д. Как этого избежать, поговорим далее.

Почему email не доставляются и пропадают

Письма могут пропадать в силу нескольких причин. Первая и самая главная — ваш email приняли за спам. Любой серьёзный почтовый сервис имеет свой мощный антиспам-модуль c эвристическим анализом содержимого email, не говоря уже о чёрном списке адресов. Поэтому, не переусердствуйте с рассылкой, чтобы не попасть в чёрный список спамеров.
Также, в спам попадут не подписанные электронной подписью письма. То есть, любой может отправить фишинговое письмо, скажем, от имени , однако, это будет безуспешно, т.к. отправитель вряд ли сможет подтвердить, что оно было отправлено с этого адреса. Для проверки легитимности используются подписи DKIM (DomainKeys Identified Mail) и SPF (Sender Policy Framework) записи.

Что сделать, чтобы письма доходили до адресата

Не переусердствуйте с рассылкой и настройте свой SMTP-сервер, чтобы исходящие email подписывались DCIM- и SPF-подписями. Вы можете настроить свой SMTP сервер, но чтобы не заморачиваться с настройкой, можно привязать домен к Яндекс.ПДД или Google Apps for Business и отправлять email через их сервис, и тогда все нужные заголовки будут прописываться автоматом. Но тут есть 2 оговорки

  1. Ваш хостинг-провайдер должен разрешать исходящие соединения, чтобы была возможность подключиться к внешнему SMTP серверу
  2. Объём рассылки не превышает 2000 писем в день. Это лимит Google, у Yandex вряд ли больше

Если вы укладываетесь в вышеуказанные рамки, тогда вперёд, настроим подключение

Как настроить подключение SMTP

Чтобы настроить нормальную отправку писем, нужно установить плагин WP Mail SMTP . Он позволяет переконфигурировать стандартный PHP Mailer так, чтобы была возможность подключаться к SMTP серверу. Также, советую использовать его, если вы пользуетесь локальным сервером.

Настройка будет происходить под Яндекс. Гугл отметается, так как теперь там нет бесплатных тарифов

Настройка WP Mail SMTP


А вот описание опций

  • From Email — email отправителя. Вводим логин от почты полностью как на изображении вверху
  • From Name — Имя отправителя. Можете поставить сюда что хотите, например, адрес вашего сайта
  • Mailer — выбираем Send all WordPress emails via SMTP
  • Return Path — оставляем пустым
  • SMTP Host — адрес SMTP сервера. Вводим smtp.yandex.ru
  • SMTP Port — порт SMTP сервера. Вводим 465
  • Encryption — тип шифровки писем. Вводим Use SSL encryption
  • Authentication — авторизация. Выбираем Yes: Use SMTP authentication
  • Username — логин от почты. Значение должно совпадать с From Email

    Настройка Contact Form 7

    Допустим, мы зарегистрировали email и внесли его в настройки WP Mail SMTP , тогда его нужно прописать в форме Contact Form 7 в разделе Письмо в поле От кого :

    Не обращайте внимания на ошибку: Электронный адрес отправителя не принадлежит домену сайта. , email будут отправляться верно с этого адреса.

    Установка и настройка почтового сервера

    Если лимиты внешнего SMTP-сервера не устраивают, можно использовать свой серверный вариант: установить Postifx или Sendmail. Оба отвечают за работу с email, в частности, их отправку и пересылку.

    Установка происходит с помощью введения команд в . Инструменты: или putty. Если работа не под root , не забываем перед командами давать sudo

    Установка Postfix

    apt-get update && apt-get install postfix

    В процессе установки будут заданы вопросы относительно настройки. Важно выбрать тип Internet Site . Это необходимо сделать для того, чтобы Postfix сгенерировал файл main.cf и сразу начал работу. В противном случае, Вам необходимо будет настраивать его вручную.

    Установка Sendmail

    Sendmail устанавливается примерно так же

    Apt-get update && apt-get install sendmail

    Потом его сконфигурировать

    Sendmailconfig

    После всего этого перезагрузить сервер

    Что делать, если email не доходит

    1. Проверить правильность адреса, куда почта должна придти;
    2. Проверить папку Спам ;
    3. Выждать пару минут.

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

Отправляет письмо на почту. Похожа на mail() в PHP.

Имя отправителя по умолчанию: WordPress , а email по умолчанию: [email protected] . Их можно переписать изменив заголовок письма на:

From: Example User

Функция использует фильтры wp_mail_from и wp_mail_from_name , которые влияют на адрес email"a и имя отправителя, соответственно, при этом поле From (от кого) собирается заново. Если только wp_mail_from (email) возвращает значение, то имя указываться не будет вообще: (From: [email protected])

Тип письма по умолчанию text/plain , а значит в теле письма нельзя использовать html теги. Изменить тип письма можно через фильтр wp_mail_content_type или указав заголовок: content-type: text/html .

Кодировка по умолчанию соответствует кодировке блога (обычно utf-8). Кодировка устанавливается через фильтр wp_mail_charset .

Для работы этой функции сервер должен работать с SMTP и должен быть установлен smtp_port в php.ini.

Это pluggable функция - т.е. её можно заменить из плагина. Это значит, что она будет работать (подключается) только после подключения всех плагинов, а до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от неё функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init .

Замена функции (переопределение) - в плагине можно создать функцию с таким же названием, тогда она заменит текущую функцию.

Хуки из функции
Возвращает

true, если удалось отправить письмо и false, если нет.

true не означает, что письмо дошло до адресата, а означает только то, что функция проделала всю процедуру отправки письма без ошибок.

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

wp_mail($to, $subject, $message, $headers, $attachments); $to(строка/массив) (обязательный) email получателя письма. Несколько получателей указываются в массиве или через запятую в строке.
По умолчанию: нет $subject(строка) (обязательный) Тема письма (заголовок).
По умолчанию: нет $message(строка) (обязательный) Тело письма (содержание, контент).
По умолчанию: нет $headers(строка/массив)

Заголовки письма, указывающие на его атрибуты. Для продвинутого использования. Может быть:

  • from - от кого. Пр. [email protected]
  • content-type - text/html , text/plain
  • cc - [email protected] - точная копия (carbon copy) - вторичные получатели письма, которым направляется копия. Они видят и знают о наличии друг друга.
  • bcc - [email protected] - скрытая точная копия (blind carbon copy) - скрытые получатели письма, чьи адреса не показываются другим получателям.
  • reply-to - [email protected]
  • и любые другие произвольные параметры.

По умолчанию: ""

$attachments(строка/массив) Файлы, которые следует прикрепить к письму. Указываем полный путь до файла (название файла включительно). Если нужно прикрепить несколько файлов указываем их названия в массиве или в строке через перенос строки.
По умолчанию: array()

Примеры

#1. Пример отправки письма

Отправим письмо от My Name с прикрепленным файлом attach.zip:

На некоторых серверах (хостингах) в поле FROM (в части email) обязательно должен фигурировать домен сайта, иначе, например, яндекс почта не получит письмо. Проверял на хостинге Бегет.

Т.е. в этом случае лучше не указывать From: , а изменить только часть этого поля, только имя, через фильтр:

Add_filter("wp_mail_from_name", function($from_name){ return "Мое имя, а не WordPress"; // тут можно указать свою почту: [email protected] });

// удалим фильтры, которые могут изменять заголовок $headers // remove_all_filters("wp_mail_from"); // remove_all_filters("wp_mail_from_name"); $attachments = array(WP_CONTENT_DIR . "/uploads/attach.zip"); $headers = "From: My Name " . "\r\n"; wp_mail("[email protected]", "Тема", "Содержание", $headers, $attachments); // [email protected] - кому отправляем.

#2. Пример использования массива для указания заголовков письма:

// подразумевается что $to, $subject, $message уже определены... // удалим фильтры, которые могут изменять заголовок $headers // remove_all_filters("wp_mail_from"); // remove_all_filters("wp_mail_from_name"); $headers = array("From: Me Myself ", "content-type: text/html", "Cc: John Q Codex ", "Cc: [email protected]", // тут можно использовать только простой email адрес); wp_mail($to, $subject, $message, $headers);

#3. Отправим письмо двум пользователям сразу и зададим формат письма html:

$multiple_to_recipients = array("[email protected]", "[email protected]"); add_filter("wp_mail_content_type", "set_html_content_type"); wp_mail($multiple_to_recipients, "The subject", "

The HTML message

"); // Сбросим content-type, чтобы избежать возможного конфликта remove_filter("wp_mail_content_type", "set_html_content_type"); function set_html_content_type() { return "text/html"; }

#4. Настройка параметров отправки через фильтры

#1 Этот пример показывает как изменить тип письма на html, используя фильтр wp_mail_content_type:
add_filter("wp_mail_content_type", function($content_type){ return "text/html"; }); wp_mail("[email protected]", "The subject", "

The HTML message

");
#2 Укажем свой адрес email в заголовке письма:
add_filter("wp_mail_from", "vortal_wp_mail_from"); function vortal_wp_mail_from($email_address){ return "[email protected]"; } // получим заголовок: WordPress
#3 Укажем имя в заголовке письма:
add_filter("wp_mail_from_name", "vortal_wp_mail_from_name"); function vortal_wp_mail_from_name($email_from){ return "XXX"; } // получим заголовок: XXX

Код wp mail : wp-includes/pluggable.php WP 5.2.1

0) { $from_name = substr($content, 0, $bracket_pos - 1); $from_name = str_replace(""", "", $from_name); $from_name = trim($from_name); } $from_email = substr($content, $bracket_pos + 1); $from_email = str_replace(">", "", $from_email); $from_email = trim($from_email); // Avoid setting an empty $from_email. } elseif ("" !== trim($content)) { $from_email = trim($content); } break; case "content-type": if (strpos($content, ";") !== false) { list($type, $charset_content) = explode(";", $content); $content_type = trim($type); if (false !== stripos($charset_content, "charset=")) { $charset = trim(str_replace(array("charset=", """), "", $charset_content)); } elseif (false !== stripos($charset_content, "boundary=")) { $boundary = trim(str_replace(array("BOUNDARY=", "boundary=", """), "", $charset_content)); $charset = ""; } // Avoid setting an empty $content_type. } elseif ("" !== trim($content)) { $content_type = trim($content); } break; case "cc": $cc = array_merge((array) $cc, explode(",", $content)); break; case "bcc": $bcc = array_merge((array) $bcc, explode(",", $content)); break; case "reply-to": $reply_to = array_merge((array) $reply_to, explode(",", $content)); break; default: // Add it to our grand headers array $headers[ trim($name) ] = trim($content); break; } } } } // Empty out the values that may be set $phpmailer->clearAllRecipients(); $phpmailer->clearAttachments(); $phpmailer->clearCustomHeaders(); $phpmailer->clearReplyTos(); // From email and name // If we don"t have a name from the input headers if (! isset($from_name)) { $from_name = "WordPress"; } /* If we don"t have an email from the input headers default to wordpress@$sitename * Some hosts will block outgoing mail from this address if it doesn"t exist but * there"s no easy alternative. Defaulting to admin_email might appear to be another * option but some hosts may refuse to relay mail from an unknown domain. See * https://core.trac.wordpress.org/ticket/5007. */ if (! isset($from_email)) { // Get the site domain and get rid of www. $sitename = strtolower($_SERVER["SERVER_NAME"]); if (substr($sitename, 0, 4) == "www.") { $sitename = substr($sitename, 4); } $from_email = "wordpress@" . $sitename; } /** * Filters the email address to send from. * * @since 2.2.0 * * @param string $from_email Email address to send from. */ $from_email = apply_filters("wp_mail_from", $from_email); /** * Filters the name to associate with the "from" email address. * * @since 2.3.0 * * @param string $from_name Name associated with the "from" email address. */ $from_name = apply_filters("wp_mail_from_name", $from_name); try { $phpmailer->setFrom($from_email, $from_name, false); } catch (phpmailerException $e) { $mail_error_data = compact("to", "subject", "message", "headers", "attachments"); $mail_error_data["phpmailer_exception_code"] = $e->getCode(); /** This filter is documented in wp-includes/pluggable.php */ do_action("wp_mail_failed", new WP_Error("wp_mail_failed", $e->getMessage(), $mail_error_data)); return false; } // Set mail"s subject and body $phpmailer->Subject = $subject; $phpmailer->Body = $message; // Set destination addresses, using appropriate methods for handling addresses $address_headers = compact("to", "cc", "bcc", "reply_to"); foreach ($address_headers as $address_header => $addresses) { if (empty($addresses)) { continue; } foreach ((array) $addresses as $address) { try { // Break $recipient into name and address parts if in the format "Foo " $recipient_name = ""; if (preg_match("/(.*)<(.+)>/", $address, $matches)) { if (count($matches) == 3) { $recipient_name = $matches; $address = $matches; } } switch ($address_header) { case "to": $phpmailer->addAddress($address, $recipient_name); break; case "cc": $phpmailer->addCc($address, $recipient_name); break; case "bcc": $phpmailer->addBcc($address, $recipient_name); break; case "reply_to": $phpmailer->addReplyTo($address, $recipient_name); break; } } catch (phpmailerException $e) { continue; } } } // Set to use PHP"s mail() $phpmailer->isMail(); // Set Content-Type and charset // If we don"t have a content-type from the input headers if (! isset($content_type)) { $content_type = "text/plain"; } /** * Filters the wp_mail() content type. * * @since 2.3.0 * * @param string $content_type Default wp_mail() content type. */ $content_type = apply_filters("wp_mail_content_type", $content_type); $phpmailer->ContentType = $content_type; // Set whether it"s plaintext, depending on $content_type if ("text/html" == $content_type) { $phpmailer->isHTML(true); } // If we don"t have a charset from the input headers if (! isset($charset)) { $charset = get_bloginfo("charset"); } // Set the content-type and charset /** * Filters the default wp_mail() charset. * * @since 2.3.0 * * @param string $charset Default email charset. */ $phpmailer->CharSet = apply_filters("wp_mail_charset", $charset); // Set custom headers if (! empty($headers)) { foreach ((array) $headers as $name => $content) { $phpmailer->addCustomHeader(sprintf("%1$s: %2$s", $name, $content)); } if (false !== stripos($content_type, "multipart") && ! empty($boundary)) { $phpmailer->addCustomHeader(sprintf("Content-Type: %s;\n\t boundary=\"%s\"", $content_type, $boundary)); } } if (! empty($attachments)) { foreach ($attachments as $attachment) { try { $phpmailer->addAttachment($attachment); } catch (phpmailerException $e) { continue; } } } /** * Fires after PHPMailer is initialized. * * @since 2.2.0 * * @param PHPMailer $phpmailer The PHPMailer instance (passed by reference). */ do_action_ref_array("phpmailer_init", array(&$phpmailer)); // Send! try { return $phpmailer->send(); } catch (phpmailerException $e) { $mail_error_data = compact("to", "subject", "message", "headers", "attachments"); $mail_error_data["phpmailer_exception_code"] = $e->getCode(); /** * Fires after a phpmailerException is caught. * * @since 4.4.0 * * @param WP_Error $error A WP_Error object with the phpmailerException message, and an array * containing the mail recipient, subject, message, headers, and attachments. */ do_action("wp_mail_failed", new WP_Error("wp_mail_failed", $e->getMessage(), $mail_error_data)); return false; } }

Привет! Сегодня хочу поговорить об одной очень распространенной проблеме, с которой часто сталкиваются веб-мастера, которые используют . Это проблема с отправкой почты (а точнее ее неотправкой). Когда-то я тоже сталкивался с такой проблемой у себя на блоге (тогда мне не приходили письма с бекапами базы данных). Теперь все чаще меня просят решить эту проблему на других сайтах, поэтому в этой статье я опишу самые распространенные пути решения данной проблемы.

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

За отправку почты в WordPress отвечает php функция mail() , с работой которой на некоторых хостингах возникают проблемы. Для начала опишу несколько простейших решений проблемы:

  • Во первых, поинтересуйтесь у вашего хостера, включена ли у вас такая функция mail() .
  • Во-вторых, убедитесь, что в вашем профиле администратора указан e-mail адрес
  • И в-третьих, попробуйте создать на хостинге почту вида wordpress@ваш_домен (например wordpress@сайт ). Во всех письмах, отправляемых из worpress, в строке отправителя стоит именно этот адрес, но некоторые хостинги не дают отправить письмо с таким мылом, если фактически на сервере его нет.

Если после вышеперечисленных действий почта все еще не отправляется, тогда нужно заставить wordpress отправлять ее через smtp сервер . Для этого можно пойти двумя путями: с помощью плагина, и с помощью внесения изменений в код.

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

Как я сказал выше, если вы используете , то вам необходимо поставить галку Send e-mail via Gmail и заполнить поля SMTP username и SMTP password . Далее сохраняете настройки и нажимаете кнопку “Отправить тестовое письмо” и ждете, пока письмо придет вам на почту. Причем придти оно должно по адресу, указанному в вашем профиле администратора, а ящик, который вы указали в плагине, является как-бы транзитным, то есть используется только для реализации отправки писем через smtp.

Если вы используете почту на другом сервисе, отличном от Google, то вам, помимо логина и пароля необходимо указать и другие настройки (галку Send e-mail via Gmail уже ставить не нужно)

В полях SMTP host и SMTP port указываете соответственно сервер и порт вашего почтового сервиса. Далее по желанию можно указать следующие настройки. Wordwrap length — количество символов в письме до переноса строки. Sender e-mail и Sender name это адрес отправителя, который будет показываться в строке «От» и имя отправителя. Если же не указывать эти параметры, то они по-умолчанию будут браться из настроек вашего блога.

Если же вы не хотите нагружать свой движок дополнительными плагинами, тогда можно решить проблему, добавив изменения в код. Для этого необходимо открыть файл wp-includes/class-phpmailer.php и внести следующие изменения. (ниже представлены куски кода, в которые внесены изменения; — обозначает пропуск кода) Данный способ представил Lecactus

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: * (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"; }

После всех вышеперечисленных действий проблемы с отправкой почты в wordpress, должны исчезнуть. Не забывайте подписываться на

Стандартная отправка почты в WordPress осуществляется с помощью почтового сервера хостинг провайдера с помощью функции mail. Однако не все хостинг провайдеры включают использование этой функции.

К счастью, есть выход из этой ситуации – использование стороннего SMTP сервера.

Для того чтобы использование стороннего SMTP сервера стало возможным нужно установить соответствующий плагин.

В статьях в интернете обычно советуют использовать Configure SMTP (есть даже подробные инструкции по его использованию), но, на момент написания данной статьи, этот плагин уже 4 года не обновлялся и, следовательно, не тестировался на последней версии WordPress. Поэтому, если нет желания рисковать, тестируя плагин самостоятельно, лучше поискать альтернативу. Например, плагин Postman SMTP Mailer/Email Log

Устанавливается этот плагин самым обычным способом либо через админпанель WordPress либо путём скачивания zip-архива и его последующей распаковки в директорию wp-content/plugins.

После установки плагина появляется удобная панель управления.

Она позволяет:

  • Выполнить настройку плагина, в частности SMTP,
  • Отправить тестовое письмо по email (Send a Test Email);
  • Сбросить настройки плагина («Delete plugin settings»);
  • Проверить возможность соединения с заданным при настройке SMTP сервером («Run a Connectivity Test»);
  • Получить техническую информацию для диагностики проблем (для специалистов)(«Diagnostic info»);
  • Обратиться за поддержкой к разработчикам плагина («Online Support»);
  • Просмотреть список отправленных сообщений, если включена соответствующая опция («View the log»).

Одна из особенностей этого плагина, возможность настройки SMTP в режиме мастера (кнопка «Start the Wizard»). Это будет большим плюсом для тех, кто испытывает трудности с настройкой технической части.

На первом шаге нужно ввести email, с которого будет отправляться почта с сайта и имя отправителя.

На следующем шаге необходимо указать имя SMTP сервера, который будет использоваться. Например, smtp.mail.ru (если используете эту почту).

После этого плагин автоматически проверит доступность SMTP сервера.

И если проверка проходит успешно, можно остаётся только ввести имя пользователя и пароль.

Следует отметить, что в режиме мастера, плагин автоматически определяет порт, к которому следует подключиться и тип соединения (защищённое или нет).

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

На вкладке Account выполняется настройка SMTP. Помимо тех настроек, что были доступны в режиме мастера, также можно задать порт, тип аутентификации и даже изменить протокол. Однако последнее актуально только для пользователей почтового сервиса Gmail, так как в качестве альтернативы поддерживается только Gmail API.

На вкладке «Message» указывается адрес электронной почты, с которого будут отправляться письма и имя отправителя.

Остальные параметры не обязательны и при отсутствии необходимости их можно не указывать.

Вкладка «Logging» предназначена для настройки списка письма. Можно включить или отключить ведение списка («Enable Logging»), задать максимальное количество эле6ментов списка («Log Entries Limit», по умолчанию 10) и максимальное количество строк в описании технической информации о письме(«Transcript Size», по умолчанию 128).

Список отправленных писем (если включено его ведение)можно посмотреть перейдя по ссылке «View the log» на панели управления плагином.

Вкладка «Advanced» предназначена для настроек TCP соединения («Network Settings», лучше оставить значения по умолчанию), работы с журналом PHP («PHP Log Level», тоже лучше оставить по умолчанию) режима доставки писем («Delivery mode») и режима повышенной конфиденциальности («Stealth mode»).

Про режим доставки необходимо сказать особо. Должно быть обязательно выставлено значение «Log Email and Send». В противном случае письма просто не будут отправляться.

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

И так давайте подробно рассмотрим работу плагина для настройки SMTP рассылки в WordPress:

Configure SMTP

Плагин Configure SMTP используется для настройки SMTP рассылки в WordPress, в том числе поддержки отправки электронной почты через SSL/TLS (например, Gmail). Практически заставляет WordPress отправлять почту не через php-функцию mail() и не через sendmail хостингового сервера, а через smtp какого-либо другого сервера.

Для начала работы следует скачать плагин с авторской площадки Configure SMTP. Затем по накатанной, установить плагин к себе на блог в папку с плагинами...wp-content/plugins , активировать его через «меню администратора Плагины» в WordPress и перейти к не хитрым настройкам, через админ панель SMTP , которая появится в админке после активации.
Настроек плагин содержит не очень много и вы без труда сможете со всем разобраться
Теперь давайте разберем по пунктам, что да как настраивать.

Send e-mail via GMail ? - Если желаете использовать службу Gmail для отправки почты, отмечаете галочкой и параметры Gmail выставятся автоматом, вам останется только ввести свое имя пользователя и пароль. В случае же использования другого сервера, прописываем параметры smtp своего почтового сервера и соответственно отмечать первый пункт не надо.

SMTP host - По умолчанию стоит «localhost» , если у вас не работает следовательно прописываете свой, например для Yandex - почты это будет smtp.yandex.ru

SMTP port - Номер порта, как правило это 465

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.
Проверяете почтовый ящик и любуетесь доставленной корреспонденцией в полном объеме.