Отправка email с вложениями при помощи PHPMailer в WordPress. Отправка писем wordpress
Проблема с отправкой писем из WordPress на хостинге Ру-Центра
19 апреля 2015
Ру-Центр — в целом прекрасный хостинг с массой возможностей. Вдвойне комфортнее работать когда твой хостер является еще и крупнейшим регистратором доменных имен.
Единственная проблема с которой мне приходится постоянно сталкиваться на бюджетных тарифах — это ограничение на работу функции mail() в PHP. Проще говоря, в WordPress не работают формы обратной связи, формы заказов и весь функционал, в котором так или иначе задействована электронная почта. Саппорт хостинга утверждает, это связано с нехваткой оперативной памяти. Действительно, после перезагрузки сервера почта некоторое время уходит, но потом снова перестает. Самое печальное то, что подобная картина наблюдается на сайтах с нулевой посещаемостью. То есть без нагрузки как таковой.
Сегодня я расскажу как обойти это ограничение Ру-центра. Смысл решения заключается в использовании SMTP-сервера вместо стандартной функции mail().
Для этого нам понадобятся:
- Почтовый ящик. Конечно, это может быть любой почтовый ящик с доступом к SMTP-серверу на любом бесплатном почтовом сервисе. Например, Gmail.com, Mail.ru, Yandex.ru и т.д. Но я все же рекомендовал бы использовать локальную почту Ру-центра. Именно на ее примере и будет рассмотрено данное решение.
- Плагин WP-SMTP.
1. Заводим почтовый ящик в Ру-центре
Делается это очень просто. Авторизуемся в панели управления хостингом и переходим в раздел «Почтовый сервер». Выбираем домен и создаем новый ящик.
Выглядит это примерно так:
2. Устанавливаем и настраиваем плагин WP-SMTP
Плагин WP-SMTP устанавливается и активизируется стандартным образом. Настраивается он так же очень просто, но я все таки остановлюсь на его настройке подробнее.
Ключевые настройки:
- From — адрес электронной почты, который вы завели в первом пункте;
- From Name — имя, которое будет отображаться у получателя;
- SMTP Host — адрес SMTP-сервера, в случае Ру-центра — это mail.nic.ru;
- SMTP Secure — для Ру-центра пока не нужен;
- SMTP Port — для Ру-центра 587 порт;
- SMTP Authentication — обязательно аутентификация на SMTP-сервере;
- Username — для Ру-центра указываем полный адрес электронной почты;
- Password — пароль вашего почтового ящика.
Проверка связи
Правильность ввода настроек вы можете проверить там же в настройках. Чуть ниже есть три поля To, Subject, Message и кнопка Send Test. Заполните их и нажмите кнопку Send Test. Если письмо пришло, значит настройки правильные и теперь вся ваша почта из WordPress будет уходить минуя функцию PHP mail() через SMTP-сервер Ру-центра.
Успехов!
Всё самое новое и интересное я публикую в своём Телеграм-канале. Подписывайтесь!
danilin.biz
Как в WordPress решить проблему неотправления писем
Один из самых часто задаваемых мне вопросов – это решение проблемы отправки писем, т.е. когда по какой-либо причине с сайта не отправляются письма и что нужно делать в таком случае.
Например, у новичков часто возникают проблемы с Gravity Forms или они не видят никаких уведомлений с WordPress.
В этой статье я расскажу о том, как решить проблему неотправления писем.
Почему не приходят письма с сайта на WordPress
Наиболее распространенная причина – у WordPress-хостинга не настроена функция PHP mail().
Другая причина в том, что многие почтовые серверы используют самые разнообразные инструменты по уменьшению количества спама. Казалось бы – это так хорошо, что они борются с мусором, но проблема в том, что эти инструменты зачастую определяют, отправлено ли письмо с того адреса, который указан в заголовке или нет. А WordPress иногда сам отправляет письма, но при этом указывается почта хостера. Такие письма помечаются как спам, и именно поэтому я бы настоятельно не рекомендовал отправлять новостные письма с WP.
Отправка писем с помощью Mandrill
Mandrill – это замечательный сервис доставки писем, разработанный ребятами из широко популярного почтового сервиса MailChimp. Mandrill – это специализированный, и я бы даже сказал, дотошный в хорошем смысле этого слова, провайдер почтового сервиса. Можете быть уверены – ваши письма дойдут до адресата, т.к. сервис очень много тратит денег и времени на то, что бы ни одно письмо не пропало. Сервисы компании расположены по всему миру.
Использование сервиса бесплатно, если в месяц вы отправляете не более 12 000. Цифра, я вам скажу, более чем достаточна для начинающего и блогера средней руки. Впрочем, даже если у вас больше писем – можете не беспокоиться, т.к. цены достаточно демократичные, например, они начинаются с 0,2$ за каждую тысячу.
Настройка сервиса для WordPress очень проста. Для начала вам, конечно, необходимо установить и активировать плагин wpMandrill. После активации зайдите в Настройки » Mandrill и введите ваш Mandrill API Key.
Для того, чтобы получить этот ключ зайдите на сайт Mandrill и зарегистрируйте себе бесплатный аккаунт. Зайдите в Настройки в панели управления Mandrill и щелкните по кнопке «+Add API Key».
Сервис создаст для вас ключ, скопируйте его и вставьте его на страничке настройки плагина в админке WordPress.
После введения ключа, вам необходимо будет указать имя отправителя и его активный почтовый ящик. Сохраните изменения.
Вот и все! Вы настроили на Mandrill на WordPress.
Отправка писем с помощью сервиса Gmail SMTP Servers
Если по каким-либо причинам вышеуказанный сервис не подходит, то вы можете настроить на свой сайт Gmail SMTP. Для этого вам понадобится любой стандартный Gmail аккаунт. Учтите, что доставка писем будет намного безопаснее, если для своего домена вы будете использовать Google Apps.
Это связано с тем, что большинство почтовых провайдеров в целях борьбы со спамом определяют отправлено ли письмо с того адреса, что указан в заголовке или нет. При использовании обычного аккаунта эти письма не будут отправляться непосредственно с сервисов gmail, что повысит их шансы попасть в спам, а при использовании Google Apps они будут отправляться с сервисов.
Как настроить Gmail SMTP на WordPress? Все очень просто! Установите и активируйте плагин WP Mail SMTP. После этого зайдите в Настройки » Email.
В появившемся окне введите имя и электронный адрес отправителя. Почто должна быть действующей и настроенной на использование Google Apps. Проверьте, что вы поставили галочку напротив опции «Send all WordPress emails via SMTP» (Отправлять все письма с WP через SMTP). Укажите также свой адрес Gmail SMTP, порт и данные для входа.
Вот и все! Сохраните все изменения и проверьте, как все работает. Это можно сделать с помощью формы, которая представлена внизу страницы настроек.
Надеюсь. Эта статья вам помогла и у вас никогда не возникнет проблемы отправки писем с WP, а если и появятся какие-либо сложности, то вы будете знать, как их разрешить.
Если вам понравилась эта статья, то подписывайтесь на мой канал YouTube, находите меня Вконтакте и твиттере.
smarticle.ru
Проблемы с WordPress. Отправка сообщений подписки на комментарии.
Привет, всем читателям – Sozdaiblog.ru!
В предыдущей статье я рассказывал, как организовать подписку на комментарии в WordPress. В ней я разложил весь процесс полочкам.
Но, случилось то, чего я и сам не ожидал. Мне стали приходить сообщения от моих подписчиков, в которых они говорили, что им не приходят уведомления о новых комментариях.
Сначала, я не мог в это поверить, ведь подписку я сделал почти сразу, как создал блог. Но, увы, после нескольких тестов это оказалось правдой.
Вот это было разочарование. Представьте, сколько можно потерять посетителей из-за этой проблемы. Человек приходит, задаёт вопрос, Вы ему отвечаете, а он не получает уведомления и больше не возвращается. Сейчас, когда посещаемость не большая и каждый человек на счету, это огромный минус.
Долго ломая голову и задавая вопросы поисковику, я смог понять, что не так и найти решение данной проблемы.
Оказывается, во всём виновата, сама система отправки писем WordPress. Разработчики движка, что-то там нахимичили, толи криво сделали эту функцию, толи вообще убрали (точно сказать затрудняюсь), но факт в том, что она не работает. Конечно, если у Вас всё работает, то я рад за Вас, но мне повезло меньше.
В решении данной проблемы с WordPress, помог плагин — Configure SMTP.
Вы спросите – «Как плагин помог справиться с этой бедой, что он делает?».
Сейчас, объясню по простому.
Этот плагин, может работать со сторонними почтовыми клиентами, такими, как – Gmail, Yandex-почта и Mail.ru. Он через них обрабатывает и отправляет уведомления всем подписчикам на комментарии блога, при поступлении новых сообщений. Отличное решение, почтовых проблем с WordPress.
Установка и настройка плагина — Configure SMTP.
Для начала, скачиваем плагин по ссылке. Затем, производим стандартный процесс установки и активации плагина (как установить плагин WordPress). После этого, нужно выполнить ряд настроек.
Вам нужно зайти в админку WordPress => Параметры => SMTR:
Перед Вами откроется меню настроек плагина.
Если Вы, пожелаете использовать почту — «Gmail», то Вам, нужно поставить галочку в самом первом чекбоксе (маленький белый квадратик):
Тем, кто будет использовать другого клиента, галочку ставить не надо.
Далее, нужно указать хост и порт Вашего постового клиента (для пользователей — «Gmail», автоматически). Порт и хост можно узнать на сервисе почтового клиента, либо в службе поддержки:
Спустившись ниже, можно указать отправителя данного письма (по умолчанию – это WordPress) и редактировать отправляемые уведомления. После всех манипуляций, опускаемся в самый низ и сохраняемся, нажав на кнопку – Save Changes:
Вот и всё. Теперь проблемы WordPress почты решены.
Если Вы, только в начале развития Вашего ресурса, то обязательно начните изучение следующего материала:
Всем, кому понравилась данная статья, предлагаю подписаться на обновление блога, чтобы получать уведомления о выходе новых статей на электронную почту.
У кого возникнут вопросы, не стесняемся и задаём в комментариях.
С уважением, Денис Черников!
Интересное по теме:
Сделайте, пожалуйста, доброе дело, расскажите о блоге своим друзьям:
sozdaiblog.ru
Отправка письма с вложением на WordPress
Блог / WordPress / Отправка email с вложениями при помощи PHPMailer в WordPressТеперь разберёмся с отправкой письма с вложением (вложениями) средствами WordPress.
PHPMailer
PHPMailer — это такой класс, который позволяет очень удобно (на мой взгляд) отправлять емайлы. Подробное описание класса не было целью этого поста, поэтому я лишь покажу, как нужно приклеплять вложения посредством кода PHP и приведу подробный пример.
Итак, чтобы добавить вложение к письму, используйте этот паттерн:
$phpmailer->AddAttachment('абсолютный путь к файлу на хостинге', 'название файла'); |
На примере плагинов:
1 2 3 | $plugin_name = 'true-instagram-widget'; $phpmailer->AddAttachment(getcwd() . '/plugins/' . $plugin_name . '.zip', $plugin_name . '.zip'); // я добавил только одно вложение, но вы можете добавить и больше, продублировав вторую строку |
И теперь, чтобы уже всё было понятно окончательно, вот вам полный пример отправки письма:
global $phpmailer; if ( !is_object( $phpmailer ) || !is_a( $phpmailer, 'PHPMailer' ) ) { // проверяем, существует ли объект $phpmailer и принадлежит ли он классу PHPMailer // если нет, то подключаем необходимые файлы с классами и создаём новый объект require_once ABSPATH . WPINC . '/class-phpmailer.php'; require_once ABSPATH . WPINC . '/class-smtp.php'; $phpmailer = new PHPMailer( true ); } $phpmailer->ClearAttachments(); // если в объекте уже содержатся вложения, очищаем их $phpmailer->ClearCustomHeaders(); // то же самое касается заголовков письма $phpmailer->ClearReplyTos(); $phpmailer->From = '[email protected]'; // от кого, Email $phpmailer->FromName = 'Миша Рудрастых'; // от кого, Имя $phpmailer->Subject = 'Плагин: ' . $plugin_display_name; // тема $phpmailer->SingleTo = true; // это означает, что если получателей несколько, то отображаться будет всё равно только один (если непонятно, спросите, я вам подробно объясню в комментариях) $phpmailer->ContentType = 'text/html'; // тип содержимого письма $phpmailer->IsHTML( true ); $phpmailer->CharSet = 'utf-8'; // кодировка письма $phpmailer->ClearAllRecipients(); // очищаем всех получателей $phpmailer->AddAddress( $_POST['email'] ); // добавляем новый адрес получателя $phpmailer->Body = '<p>Благодарю вас за покупку плагина (архив приложен к письму).</p><p>Если у вас возникнут какие-либо вопросы, <a href="https://misha.blog/contacts">свяжитесь со мной</a> любым удобным вам способом.</p>'; $phpmailer->AddAttachment(getcwd() . '/plugins/' . $plugin_name . '.zip', $plugin_name . '.zip'); // добавляем вложение $phpmailer->Send(); // отправка письма |
Смотрите также
misha.blog
Сайт на WordPress'е не отправляет почту. Что делать?
Прежде чем воспользоваться этим методом, рекомендую прочесть пост по ссылке. Возможно, ваша проблема решается за минуту. Там же описано, как быстро и просто протестировать функцию mail().Все мы (кроме отдельных личностей) против спама. Он раздражает, отнимает время, а пользы не приносит. Потому, со спамом борются. Как и в любой борьбе, здесь тоже есть жертвы. В т.ч. жертвы случайные. Как например владельцы сайтов, которые к спаму никакого отношения не имеют.
На днях очередной заказчик попросил разобраться, почему с его сайта на WordPress’е не уходит почта. Проблема типовая и уже надоела.
Конечно, вначале проверил все ли в порядке с хостингом. Оказалось, там заканчивается место. Посоветовались, сменили тариф.
С этим все, теперь решаем проблему с отправкой почты с сайта на WordPress’е. Но сначала коротко о причине.
Почему с сайта на WordPress’е не уходит почта?
Дело в том, что самый простой способ нарассылать спама, это написать приблуду на PHP, закинуть на какой-нибудь хостинг и дело в шляпе.
Хостеру подобное грозит занесением его отдельных IP или подсетей в черные списки. Т.е. потом проблемы с доставкой почты могут случиться уже у других клиентов хостера. Это оборачивается волной ненависти, шквалом звонков и заявок в техподдержку, а затем оттоком народа (читай денег).
Поэтому, некоторые хостеры не заморачиваются и отключают для PHP (на своих серверах) функцию mail().
Способ топорный, но работает. Вот только почта сайтов ходить перестает.
Как решить проблему отправки почты для сайта на WordPress’е?
Решение простое и не займет много времени.
1. Заводим транзитный почтовый ящик на gmail.com
Почему именно там? Исключительно из за простоты дальнейших действий.
Транзитный (технический) ящик, это самый обычный почтовый акаунт. Никакой разницы с любым другим у него нет. Просто писать вам с него будет сайт.
Единственное неудобство, при регистрации вам придется указать номер мобильного телефона и подтвердить его кодом из SMS. В остальном, элементарно.
2. Заходим в админку сайта и устанавливаем плагин Configure SMTP
Как это делать рассказывать не буду. Если не умеете устанавливать плагины, лучше обратиться к тому, кто умеет, или научиться, прежде чем продолжать.
3. Настраиваем плагин Configure SMTP
Для этого в левом вертикальном меню идем в настройки и выбираем пункт SMTP.
Далее, ставим галочку напротив опции «Send e-mail via GMail?», и половина настроек заполняется автоматически.
Нам остается указать нашему транзитному ящику логин, пароль, а затем указать как будет выглядеть обратный адрес (обычно это no-replay@ВАШ_ДОМЕН) для писем сайта и имя отправителя, затем нажать кнопку «Save Changes».
Отправим тестовое письмо, нажав кнопку «Send test e-mail». Оно придет на почтовый ящик администратора сайта (указывается в настройках пользователя).
Если дошло, значит, по идее, все работает как положено.
Во всяком случае, обычно эту проблему решаю именно так.
А это все на сегодня. С вами был Доктор Лексиум.Всего хорошего и до новых постов.
www.lexium.ru