Php mail проверка: Проверка работы исходящей почты через PHP mail | Вопросы-ответы на Wiki
Содержание
Проверка правильности email на PHP
Проверка правильного формата вводимых данных очень важна в любых информационных системах. В данной статье, мы рассмотрим возможности PHP проверить, корректно ли указан адрес электронной почты (email). Обращу внимание, что речь идет лишь о проверке корректной структуры адреса. Дело в том, что адрес, может либо быть корректным (т.е. валидным), но при этом не существовать. Например, пользователь может просто ошибиться символом при вводе. Поэтому задача данной статьи – отсеять заведомо некорректные значения для email.
Как известно email состоит из двух основных частей. Например, адрес: [email protected].
Здесь, MyEmail – это непосредственный адрес (или логин) пользователя, а myssite.ru – адрес сайта, которому соответствует электронная почта.
Следовательно, проверка адреса на валидность заключается в том, что он должен соответствовать структуре:
логин_пользователя@доменное_имя. доменная_зона
В итоге, задача сводилась к построению регулярного выражения для проверки, соответствует ли проверяемая стока допустимым символам и структуре email. Но, начиная с PHP 5.2, появилась возможность выполнить эту проверку встроенной функцией filter_var(). Пример такой проверки:
$email = ;
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo ;
}else{
echo ;
}
В первый параметр функции указывается строковое значение, которое нужно проверить. Второй параметр – это идентификатор применяемого фильтра (в данном случае для проверки email). Функция filter_var() универсальна и может быть использована для проверки различных значений – числовое значение, логическое или проверка валидности IP-адреса.
Валидация email с использованием регулярного выражения PHP
Если же либо версия PHP не позволяет вам применить описанный выше метод, либо хотите просто действовать по старинке, то можно использовать регулярные выражения:
$email = ;
if (preg_match(, $email)) {
echo ;
}else{
echo ;
}
Если используете подобное регулярное выражение, стоит быть внимательным к возможным адресам. Например, в данный код решит, что введенное значение не email, если доменная зона будет более 5 символов или если адрес будет задан кириллицей. Поэтому, применяя его, учитывайте возможные вводимые значения.
Как настроить электронную почту сайта на Joomla
Предыдущая статья закончилась тем, что о настройках почты сайта будет рассказано отдельно. В этой статье и поговорим о том, как настроить электронную почту сайта. Электронная почта сайта, в первую очередь нужна для автоматической отправки служебных сообщений посетителям и пользователям сайта на Joomla 3. Это, например сообщения администратору сайта о регистрации нового пользователя или сообщение пользователю сайта со ссылкой на восстановление пароля и т. д.
В общих настройках Joomla сайта, настройки почты находятся на вкладке «Сервер», в блоке «Настройка почты».
Отправка почты. Этим переключателем можно выключить возможность отправки почты с сайта. Причины могут быть разные: или вообще не используется почта сайта, или сайт взломан и с него осуществляется рассылка спама и т. д. По умолчанию функция почты сайта включена.
Способ отправки. Данная настройка определяет способ отправки сообщений. Существует три способа отправки сообщений с сайта: «PHP Mail», «Sendmail», «SMTP».
E-mail сайта. В это поле вводится адрес используемого ящика электронной почты.
Отправитель письма. Текст, введённый здесь, будет отображаться у получателя в поле «От». Например, можно ввести «Администрация сайта такого-то» или «Интернет магазин такой то» и т. д.
Disable Mass Mail. Название этого переключателя переводится как «Отключить массовую рассылку сообщений». Если на вашем сайте не предусмотрена регистрация пользователей или вы не собираетесь рассылать сообщения пользователям вашего сайта, то эту опцию можно отключить. Если же нет, то вы сможете отправлять сообщения зарегистрированным пользователям или группе пользователей сайта. По умолчанию возможность массовой рассылки включена.
PHP Mail
Это самый предпочтительный способ отправки почты. Есть некоторые тонкости. Они касаются хостинга.
Если сайт находится на «боевом» хостинге, то сначала на хостинге, в своём домене нужно создать почтовый ящик. Адрес этого почтового ящика надо ввести в поле «E-mail сайта». И всё! Но адрес именно почтового ящика созданного на хостинге, а не какой-нибудь произвольный.
Если сайт находится на локальном хостинге, то почти то же самое, но чуть-чуть больше. В этом цикле статей был организован локальный хостинг на XAMPP. В состав пакета XAMPP входит почтовый сервер Mercury. Он уже настроен и его осталось только включить. Сразу же можно установить запуск почтового сервера при старте XAMPP.
После старта Mercury становится доступной кнопка «Admin», которая открывает его панель управления. В панели управления почтового сервера переходим в меню «Configuration», а затем в «Manage local users…».
Видим, что на сервере есть три пользователя, которым соответствуют три почтовых ящика: два административных, они помечены звёздочками и один пользовательский. Вот его мы и будем использовать. Только перед этим немного его поправим. Выделите запись пользователя «newuser», кнопкой «Change…» откройте её для редактирования и измените следующим образом.
Обязательно укажите пароль и сохраните изменения. Закройте панель управления Mercury и ещё раз убедитесь, что почтовый сервер запущен. Теперь у вас есть почтовый ящик website@localhost. Адрес этого почтового ящика надо ввести в поле «E-mail сайта» в блоке «Настройка почты».
Для того чтобы получать сообщения через почтовый клиент (Thunderbird, The Bat!, Outlook и т. д.) в настройках, в качестве серверов входящей и исходящей почты укажите localhost.
SMTP
Этот способ отправки почты позволяет использовать для сайта произвольный, существующий почтовый ящик. Выглядит это так.
Чтобы правильно настроить способ отправки SMTP, могут потребоваться данные, которые предоставляет ваш поставщик услуг электронной почты.
Для данного способа отправки почты с сайта добавились несколько полей. Давайте разберёмся! Поле E-mail сайта вам уже знакомо – сюда вводится адрес электронной почты (почтового ящика).
Авторизация на SMTP-сервере. Подавляющее число SMTP-серверов использует авторизацию для отправки сообщений. Поэтому можно сразу включить эту опцию.
Защита SMTP. О поддержке защиты лучше узнать у поставщика услуг электронной почты. Поддерживается ли защищённая отправка сообщений, и какая технология (SSL, TLS) для этого используется.
Порт SMTP-сервера. Обязательное поле. В подавляющем большинстве случаев используется порт 25.
Имя пользователя SMTP. Для разных серверов может использоваться: или короткое имя пользователя, или полное. Короткое имя пользователя – это часть адреса электронной почты до символа «@». Полное имя пользователя совпадает с адресом электронной почты. О том, какой формат имени пользователя используется можно узнать у своего провайдера электронной почты. Чаще используется полное имя пользователя.
Пароль для SMTP. Пароль для указанного почтового ящика.
SMTP-сервер. Полное имя SMTP-сервера. Можно узнать у провайдера электронной почты.
Sendmail
Этот способ отправки почты самый экзотический из всех трёх. Он сохранился ещё с тех времен, когда на хостингах отправка сообщений осуществлялась программой Sendmail. Сейчас этот способ устарел и используется крайне редко. Поэтому мы не будем его рассматривать.
А теперь перейдём к заключительной статье об общих настройках Joomla и рассмотрим «Права и фильтры текста».
Об авторе:
Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.
Ещё статьи о Joomla 3
-
Персональные данные в Joomla! ч.1
Начиная с версии 3.9, в Joomla появился набор расширений для обеспечения конфиденциальности и соответствия таким законам, как GDPR (для Европейского Союза) и ФЗ-152 (для России). Суть этих законов в том, чтобы усилить и стандартизировать…
Joomla 3. Мультиязычность. Многоязычный сайт ч.2…
В первой части статьи мы сделали большую часть работы по созданию многоязычного сайта. Для правильной настройки мультиязычности мы использовали модуль «Multilanguage status». При последнем обращении он показал, что нужно создать по главной странице для каждого языка и опубликовать их. Продолжим и займёмся этим.
Установка Joomla 3
Вот и настал этот долгожданный момент – установка Joomla. По сравнению с предыдущими версиями, процесс установки Joomla 3 стал ещё более простым и наглядным. Собственно сама установка делается всего за три шага. Язык программы установки определяется автоматически. По окончании…
Joomla 3. Мультиязычность. Многоязычный сайт ч.1…
В этой статье я опишу включение и настройку мультиязычности на сайте под управлением Joomla 3. В итоге получится простейший многоязычный сайт. Поддержка многоязычности или по-другому мультиязычности стандартными средствами, без сторонних расширений является одним из…
Joomla 3. Общие настройки. Права и фильтры текста…
Этой статьей заканчивается описание общих настроек сайта на Joomla 3. В предыдущих статьях было дано описание настроек, расположенных на вкладках «Сайт», «Система» и «Сервер». Теперь же рассмотрим оставшиеся настройки, расположенные на вкладках «Права» и «Фильтры текста». Эти…
Установка memcached на XAMPP в Windows 7
Из статьи «Joomla 3. (часть 2)» вы узнали, что в новой версии Joomla появилась поддержка memcached, а в процессе рассмотрения статьи «Файл configuration.php» вкратце познакомились с настройками этого сервиса. В этой статье описывается установка и настройка memcached на локальном…
Фиксик — валидатор email-адресов от ДашаМейл
Кто такой Фиксик? Большой, большой секрет (с)
Фиксик — это мультипликационный персонаж, но в нашем сервисе он без устали трудится над задачей корректности email-адресов. ДашаМейл отправляет около миллиона писем в сутки, это существенный трафик и в нем содержится определенная доля «жестких возвратов» (адреса, на которые нельзя доставить письма). Такие адреса возможно фильтровать еще до отправки на них письма — с помощью ряда условий, которым должен отвечать нормальный, «живой» адрес.
Какие это условия?
- Формальное определение email-адреса. Это email-адрес или просто набор букв?
- Наличие домена в нашем словаре заведомо корректных доменов
- В случае отсутствия в словаре заведомо корректных — следует проверить наличие домена в словаре некорректных, а затем в словаре исправлений и опечаток.
- В случае отсутствия домена во всех известных словарях — проверяем MX-записи для данного домена на существование.
- Если мы не можем быстро исправить несуществующие MX-записи с помощью расстояния Левенштейна, то вынуждены признать, что домен заведомо некорректный
Ценность сервиса исправлений — в актуальных словарях:
- заведомо корректных доменов
- адресов на которые нельзя доставить (bounced)
- заведомо некорректных доменов
- исправлений и опечаток
Наши базы и словари пополняются ежедневно и регулярно проходят актуализацию (домен мог стать корректным или, наоборот, прекратил свое существование через пару месяцев после окончания срока делегирования).
Почему Даша.Фиксик — самый быстрый способ проверки email-адреса?
Нам не надо каждый раз проверять mx-записи домена (это достаточно долгая процедура), т.к. мы знаем много заведомо корректных или некорректных доменов, а также у нас есть словари исправлений, которые позволяют делать это за доли секунды.
Разработано в Даша.Лаборатория во имя добра и справедливости. Все права защищены. © 2016-2018
Mail.ru Group выпустила бесплатный онлайн-редактор кода для совместной работы Статьи редакции
Регистрация не нужна, а код можно писать на Python 3.8, Java 11, C++ 17, PHP 7.4 и ещё пяти языках.
- В онлайн-редакторе на базе своей платформы All Cups можно писать код одному или с командой, а также запускать его, чтобы исправить ошибки, сообщили vc. ru в Mail.ru Group.
- Сервис поддерживает Python 3.8, Java 11, C++ 17, PHP 7.4, Node JS 14, Go 1.15, Erlang OTP 23, Rust 1.51 и Swift 5.3.3. В компании обещают расширить список языков. У онлайн-редактора есть десктопная и мобильная версии.
- Чтобы запустить редактор, не нужна регистрация: нужно зайти по ссылке interview.cups.online. Сервис автоматически создаст комнату, ссылку на которую можно отправить другим, чтобы писать код вместе. Действия пользователей синхронизируются автоматически – они смогут увидеть, что делает каждый.
- Новый инструмент рассчитан на программистов и распределенных команд разработчиков, а также для ИТ-рекрутеров и руководителей — они при найме могут попросить кандидатов написать код в качестве тестового задания.
- Редактор работает на платформе для разработчиков All Cups: на ней можно принимать участие в ИТ-чемпионатах и общаться с коллегами. На сайте говорится, что в сообществе более 150 тысяч человек.
22 053
просмотров
{
«author_name»: «Рая Хачатрян»,
«author_type»: «self»,
«tags»: [«\u043d\u043e\u0432\u043e\u0441\u0442\u044c»,»\u043d\u043e\u0432\u043e\u0441\u0442\u0438″,»mailrugroup»],
«comments»: 158,
«likes»: 152,
«favorites»: 194,
«is_advertisement»: false,
«subsite_label»: «dev»,
«id»: 231145,
«is_wide»: true,
«is_ugc»: true,
«date»: «Thu, 08 Apr 2021 09:39:34 +0300»,
«is_special»: false }
{«id»:594603,»url»:»https:\/\/vc. ru\/u\/594603-raya-hachatryan»,»name»:»\u0420\u0430\u044f \u0425\u0430\u0447\u0430\u0442\u0440\u044f\u043d»,»avatar»:»243c85f4-90b6-04a3-4d82-4527c9670a8b»,»karma»:19916,»description»:»\u041e\u0448\u0438\u0431\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442!»,»isMe»:false,»isPlus»:true,»isVerified»:false,»isSubscribed»:false,»isNotificationsEnabled»:false,»isShowMessengerButton»:false}
{«url»:»https:\/\/booster.osnova.io\/a\/relevant?site=vc»,»place»:»entry»,»site»:»vc»,»settings»:{«modes»:{«externalLink»:{«buttonLabels»:[«\u0423\u0437\u043d\u0430\u0442\u044c»,»\u0427\u0438\u0442\u0430\u0442\u044c»,»\u041d\u0430\u0447\u0430\u0442\u044c»,»\u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c»,»\u041a\u0443\u043f\u0438\u0442\u044c»,»\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c»,»\u0421\u043a\u0430\u0447\u0430\u0442\u044c»,»\u041f\u0435\u0440\u0435\u0439\u0442\u0438″]}},»deviceList»:{«desktop»:»\u0414\u0435\u0441\u043a\u0442\u043e\u043f»,»smartphone»:»\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b»,»tablet»:»\u041f\u043b\u0430\u043d\u0448\u0435\u0442\u044b»}},»isModerator»:false}
php — Специальная проверка поля электронной почты в Laravel
В моем приложении есть простой раздел настроек, где люди могут изменять различные настройки учетной записи, включая электронную почту. После того, как они разместили форму, я использую FormRequest
, чтобы легко проверить все поля по некоторым правилам. Но как мне проверить поле электронной почты? вот что я имею в виду. Если пользователь хочет обновить электронное письмо, нам нужно убедиться, что его не забрал кто-то другой. Но мы не можем определять правила как
'email' => 'email|unique:users',
Потому что, если они не хотят обновлять электронную почту, они никогда не смогут отправить форму (по умолчанию, когда страница загружается, я показываю текущий адрес электронной почты, предварительно заполненный в поле). Итак, нам нужно, чтобы это электронное письмо было уникальным для таблицы, за исключением электронной почты текущего пользователя. как правильно проверить поле электронной почты?
0
Almazik G
20 Июл 2015 в 06:21
2 ответа
Лучший ответ
Это просто, вам нужно просто указать, какой адрес электронной почты пользователя игнорировать. Да, вы можете игнорировать несколько адресов электронной почты при проверке.
Например, рассмотрим экран «обновить профиль», который включает имя пользователя, адрес электронной почты и местонахождение. Конечно, вы захотите убедиться, что адрес электронной почты уникален. Однако, если пользователь изменяет только поле имени, а не поле электронной почты, вы не хотите, чтобы возникла ошибка проверки, потому что пользователь уже является владельцем адреса электронной почты. Вы хотите выдать ошибку проверки только в том случае, если пользователь предоставляет адрес электронной почты, который уже используется другим пользователем. Чтобы уникальное правило игнорировало ID пользователя, вы можете передать ID в качестве третьего параметра:
'email' => 'unique:users,email_address,current_user_id'
Сформируйте более подробную информацию здесь.
1
Jigs Virani
20 Июл 2015 в 05:09
Вы близки, вам просто нужно добавить дополнительные переменные в свои правила, как показано ниже:
'unique:users,email,'. |:)([0-9a-fA-F]{0,4})){1,8}$/i", $text)) {
echo 'yes';
} else {
echo 'no';
}
Устранение неполадок с почтой PHP () — База знаний DreamHost
Политика домена отправителя
Если вы создали почтовую форму PHP и обнаружили, что она не отправляет электронную почту, то чаще всего это связано с адресом ОТ, который форма использует в своих заголовках.
Простой способ проверить, так ли это:
- Войдите на свой веб-сервер через FTP или SSH.
- Перейдите в папку / Maildir / new, которая находится в каталоге вашего пользователя:
/ home / имя пользователя / Maildir / новый
- В этом каталоге вы увидите сообщения электронной почты, которые не удалось отправить.
- Откройте электронные письма в текстовом редакторе.
- Вы можете увидеть следующую ошибку:
Домен отправителя не разрешен. Прочтите: http://dhurl. org/20b (в ответ на конец команды DATA))
Почему это происходит?
Это происходит по следующим причинам:
- Действующие политики предотвращения исходящего спама, как подробно описано здесь.
- Адрес ОТ, который вы используете, не является адресом электронной почты в домене, из которого вы отправляете сообщения, и / или он не размещен на DreamHost.
- Например, если вы отправляете сообщение с сайта example.com , адрес FROM в вашей форме PHP Mail должен иметь вид [email protected]. Если вы измените адрес электронной почты на DreamHost, форма будет отправлена правильно.
Если DreamHost не размещает вашу электронную почту, вы должны использовать SMTP-аутентификацию для отправки в вашей почтовой форме PHP. Если вы включили аутентификацию SMTP, вы можете использовать любой адрес электронной почты в качестве адреса ОТ.
Ошибки сертификата при использовании PHP 5.6+
Раньше для подключения можно было использовать mail. example.com (где example.com — ваше фактическое доменное имя). Из-за того, как современные почтовые клиенты обеспечивают безопасность, это НЕ рекомендуется, так как это может вызвать ошибки соединения. Убедитесь, что при подключении вы используете только имя своего почтового сервера. Это должно быть imap.dreamhost.com или pop.dreamhost.com.
PHP 5.6+ обрабатывает сертификаты иначе, чем в предыдущих версиях, как описано на следующей странице:
Сообщения об ошибках
При отправке по почте PHP вы можете увидеть следующие ошибки:
Предупреждение: stream_socket_enable_crypto (): сертификат узла CN = `*.mail.dreamhost.com 'не соответствует ожидаемому CN = `mail.example.com'
Не удалось подключиться к ssl: //mail.example.com: 465 [SMTP: Не удалось подключиться к сокету: fsockopen (): невозможно подключиться к ssl: //mail.example.com: 465 (Неизвестная ошибка) (код: -1, ответ :)]
Вывод отладки SMTP показан ниже: 2015-09-08 19:44:51 Соединение: открытие по ssl: //mail. example.com: 465, тайм-аут = 300, options = array ( ) 2015-09-08 19:44:53 ОШИБКА SMTP: не удалось подключиться к серверу: (0) 2015-09-08 19:44:53 Ошибка подключения SMTP ().https://github.com/PHPMailer/PHPMailer/wiki/Устранение неполадок
Решение
Это связано с используемым именем хоста. Сертификат ссылается на mail.dreamhost.com, который не совпадает с вашим доменом. См. Следующую статью для объяснения этой ошибки:
Решение состоит в том, чтобы использовать имя вашего почтового сервера в качестве имени хоста. В коде вашей почтовой формы PHP вы используете свой домен в качестве имени почтового сервера. Это может выглядеть примерно так:
$ mail_host = "mail.example.com ";
Вместо использования вашего доменного имени в переменной почтового сервера используйте ваше фактическое имя почтового сервера. Прочтите следующую статью, чтобы узнать, как узнать имя вашего почтового сервера.
Обновите код формы электронной почты с помощью FTP-клиента или SSH:
В почтовой форме измените свое имя хоста на следующее:
$ mail_host = "imap. dreamhost.com";
Изменение имени хоста устраняет эту ошибку. Ваше имя почтового хоста может отличаться от указанного выше.См. Следующую статью для получения дополнительных сведений о том, как найти конкретное имя почтового сервера.
См. Также
Как исправить проблему, из-за которой WordPress не отправляет электронные письма в 2021 году
Распространенной проблемой среди владельцев веб-сайтов является то, что WordPress не отправляет электронные письма правильно или вообще.
Большинство управляемых хостинг-провайдеров WordPress, включая Kinsta, не предоставляют хостинг электронной почты. Однако это не означает, что вы не можете отправлять электронные письма из установленного WordPress. В Kinsta все сайты оснащены поддержкой транзакционной электронной почты, что означает, что ваш сайт WordPress сможет отправлять уведомления, подтверждения заказов WooCommerce и другие типы электронных писем, связанных с сайтом.
Обычно, когда вы пытаетесь исправить проблему, когда WordPress не отправляет электронные письма, это не проблема на сервере, а скорее электронная почта настроена неправильно в установке WordPress или существует несовместимость.
В этом посте мы покажем вам, как определить, почему WordPress не отправляет электронные письма вам или вашим пользователям, и покажем, как это исправить. Независимо от того, используете ли вы обычный сайт WordPress или магазин WooCommerce, мы покажем вам, как снова запустить электронную почту.
Мы также рассмотрим некоторые из самых популярных подключаемых модулей контактной формы и точно определим, почему у каждого из них могут быть проблемы с отправкой электронных писем.
Хотите посмотреть видео версию?
Почему WordPress не отправляет электронную почту
Есть несколько причин, по которым у вас могут быть проблемы с тем, что WordPress не отправляет электронные письма. К ним относятся:
Давайте посмотрим, как определить, какие из них могут вызывать проблему.
1. Письма отправляются, но попадают в спам
Перед запуском любых других тестов убедитесь, что электронные письма от WordPress не попадают в спам.
Если пользователь сообщает вам, что WordPress не отправляет электронные письма, возможно, его электронные письма просто отправляются в спам.
Попросите их проверить папку со спамом на наличие писем от системы. Некоторые почтовые клиенты могут идентифицировать электронные письма от WordPress как спам, поскольку они автоматизированы.
2. Ваш сервер настроен неправильно
Распространенной причиной того, что WordPress не отправляет электронные письма, является то, что ваш сервер не настроен для их отправки.
Веб-серверы
не предназначены для отправки электронных писем, и, возможно, ваш сервер не настроен для использования функции PHP mail ()
.
Хорошая новость в том, что вы можете легко проверить, не в этом ли причина проблемы, и исправить ее.
Как проверить, отправляет ли сервер электронную почту
Первое, что вы можете сделать, это запустить тест на своем сайте WordPress с помощью бесплатного плагина Check Email.
Это базовый плагин, предназначенный для проверки того, может ли ваша установка WordPress и / или сервер отправлять электронные письма.
После установки перейдите в Инструменты > Проверить адрес электронной почты на панели инструментов WordPress. Введите адрес электронной почты, на который нужно отправить тест, и нажмите Отправить тестовое письмо .
Отправить тестовое письмо
Вы увидите подтверждение.
Тестовое электронное письмо с подтверждением
Проверьте свой почтовый клиент, чтобы узнать, получили ли вы тестовое письмо. В строке темы будет указано «Тестовое письмо от https://vashdomen.com».
Получено тестовое письмо
Также не забудьте проверить папку со спамом или нежелательной почтой. Если вы получили электронное письмо, это означает, что WordPress может нормально отправлять электронные письма на ваш веб-сервер.
Если вы по-прежнему не получаете электронные письма, это означает, что, скорее всего, это неправильная конфигурация вашего плагина контактной формы или несовместимость.Вы всегда можете обратиться за помощью к разработчику плагина. Сообщите им, что вы выполнили вышеуказанный тест и что электронное письмо работает с вашей установкой WordPress. Или следуйте инструкциям ниже для некоторых из наиболее полярных плагинов контактной формы.
Если вы являетесь клиентом Kinsta и используете HHVM, вы можете временно переключиться на PHP 7, чтобы проверить, есть ли проблема совместимости. Вы можете легко переключиться на PHP 7 в личном кабинете MyKinsta. После тестирования вы можете снова переключиться на HHVM.
Как для клиентов Kinsta, так и для тех, у кого есть другие хосты, если у вас есть проблемы с подключением, вам, возможно, также придется попробовать альтернативный порт.Ваш хост может блокировать порт.
Kinsta использует Google Cloud Platform, которая по умолчанию блокирует исходящие соединения на порту 25. Согласно Google, «этот исходящий порт SMTP заблокирован из-за большого количества злоупотреблений, которым этот порт подвержен». В этом случае попробуйте альтернативный порт, например 2525. Порты 587 и 465 открыты в Kinsta.
3. Ваш плагин контактной формы отправляет ложные сообщения электронной почты
Если вы выполнили описанный выше тест и ваш сервер настроен для отправки электронных писем, это означает, что есть проблема с плагином, который отправляет электронные письма с вашего сайта WordPress.
Скорее всего это будет плагин контактной формы.
Плагины
для контактной формы отправляют электронные письма, которые иногда идентифицируются почтовыми клиентами как поддельные. Они похожи на спам-сообщения: почтовые клиенты помечают их как подозрительные.
Причина, по которой область электронных писем контактной формы иногда рассматривается как подделка, заключается в том, что они отправляются с другого адреса, чем тот, который добавлен в поле От: в полученном вами электронном письме.
Итак, если вы настроили свою контактную форму для заполнения поля От: адресом электронной почты человека, заполняющего форму, но на самом деле электронное письмо приходит с вашего сайта WordPress, то ваш почтовый клиент будет подозревать электронное письмо и может пометить его как подделку.
Вы также можете столкнуться с проблемами, если электронные письма отправляются с одного и того же адреса электронной почты. Поэтому, если ваш плагин форм отправляет электронные письма с вашего адреса электронной почты администратора (который будет по умолчанию), и вы также настроили его для отправки на этот адрес, некоторым поставщикам электронной почты это может не понравиться. Это менее вероятно, чем проблема с «поддельными» электронными письмами.
Для контактных форм получателем электронного письма с уведомлением обычно будете вы. Это означает, что вы можете изменить настройки в своем плагине контактной формы, чтобы решить эту проблему, и вы можете легко проверить, получаются ли электронные письма.
Затронутые плагины контактной формы
Эта проблема может затронуть любой плагин контактной формы. Вот некоторые плагины, с которыми у вас может возникнуть эта проблема:
- Контактная форма 7
- Гравитационные формы
- Формы ниндзя
- Счастливая форма
- WEForms
- Контактная форма Jetpack
- Грозные формы
В ближайшее время я покажу вам, как решить проблему с отправкой электронных писем для каждой из контактных форм. Во-первых, давайте посмотрим, как решить проблему, когда WordPress не отправляет электронные письма по каждой из выявленных нами причин.
WordPress не отправляет ваши электронные письма? 😱 Узнайте, почему это происходит и как это исправить, прямо здесь ⬇Нажмите, чтобы твитнуть
Как предотвратить попадание спама в электронные письма WordPress
1. Добавить адрес электронной почты в белый список
Если электронная почта попадает в спам, вы можете попросить своих пользователей занести ваши электронные письма в белый список, добавив свой адрес электронной почты в свои контакты.
В Gmail, если они перемещают электронное письмо во входящие, это должно означать, что электронные письма с этого адреса не будут попадать в спам в будущем, но добавление адреса в контакты также будет безопаснее.
2. Используйте более безопасный адрес электронной почты
Вы также можете проверить адрес электронной почты, с которого ваш сайт отправляет электронные письма. По умолчанию это будет ваш адрес электронной почты администратора. Если это [защита электронной почты], [защита электронной почты], [защита электронной почты] или что-то подобное, то провайдеры электронной почты могут предположить, что это спам.
Попробуйте изменить адрес электронной почты на более профессиональный и убедитесь, что все письма, отправляемые на этот адрес, перенаправляются на ваш обычный адрес, чтобы вы не пропустили ни одного ответа.Вы можете сделать это, создав псевдоним для своего адреса электронной почты.
3. Настройте аутентификацию электронной почты
Еще одна причина, по которой ваши электронные письма WordPress могут попадать в спам, заключается в том, что ваше доменное имя не было должным образом аутентифицировано для электронной почты.
Следуйте нашему руководству по аутентификации электронной почты, чтобы убедиться, что она работает правильно.
Как настроить SMTP в WordPress для отправки электронной почты
Если вы выполнили тест электронной почты, описанный выше, и электронные письма не отправляются с вашего сайта вообще, вам необходимо использовать стороннего поставщика SMTP и связать его со своим сайтом, чтобы он снова отправлял электронные письма.
Подпишитесь на информационный бюллетень
Хотите узнать, как мы увеличили наш трафик более чем на 1000%?
Присоединяйтесь к 20 000+ другим пользователям, которые получают нашу еженедельную рассылку с инсайдерскими советами по WordPress!
Подпишитесь сейчас
SMTP расшифровывается как Simple Mail Transfer Protocol. Он перемещает электронную почту в сети и между ними. Так что, если ваш сервер не настроен для отправки электронных писем, это сделает это возможным.
Есть несколько поставщиков SMTP на выбор, в том числе бесплатные (например, SMTP-сервер Gmail): так что это не должно стоить вам денег, только немного времени.
Чтобы настроить это, следуйте нашему руководству по использованию бесплатного SMTP-сервера с WordPress.
Как настроить плагин форм для правильной отправки электронной почты
Если ваш сервер настроен на отправку электронной почты, но у вас по-прежнему возникают проблемы с записями в формы, которые не отправляются, это, вероятно, означает, что вам нужно настроить параметры формы.
Давайте посмотрим, что вам нужно сделать для каждого из самых популярных плагинов форм, чтобы эти электронные письма снова отправлялись.
Для каждого из них, я предполагаю, что вы пытались добавить SMTP на свой сайт, или ваш сервер уже отправляет электронные письма (и вы проверили папку спама), но письма все еще не доходят.
Исправить контактную форму 7, не отправляющую электронные письма
Contact Form 7 — один из старейших и самых популярных бесплатных плагинов для форм WordPress.
Если у вас возникли проблемы с отправкой электронной почты (и вы знаете, что ваш сервер отправляет электронную почту), исправление состоит в том, чтобы изменить адрес, с которого отправляются электронные письма.
В админке WordPress перейдите в Контакт> Контактные формы .
Контактные формы
Выберите созданную вами форму и откройте вкладку Mail .
Вкладка электронной почты в контактных формах
Убедитесь, что в поле « От » указан адрес электронной почты администратора вашего сайта, а не адрес электронной почты, введенный в форму. Вы можете использовать это в поле Ответить на , но не в поле От .
Избегайте использования одних и тех же адресов электронной почты для полей От и До . Используйте адрес электронной почты, отличный от того, который вы используете для своего сайта.
Сохраните изменения.
Теперь проверьте все, заполнив форму самостоятельно.
Исправить гравитационные формы, не отправляющие электронные письма
Gravity Forms — один из самых популярных и уважаемых плагинов премиум-форм. У вас меньше шансов столкнуться с проблемами, связанными с отправкой писем, которые не отправляются через этот плагин, чем с контактной формой 7, но если это произойдет. Подробные инструкции вы найдете в документации к плагину.
Документация гравитационных форм
Проработайте варианты в документации по порядку, пока все не заработает снова.
Исправить формы ниндзя, не отправляющие электронные письма
Ninja Forms имеет как бесплатную, так и премиальную версии.Также существует множество дополнительных плагинов, которые вы можете бесплатно скачать из репозитория WordPress.
Если у вас возникли проблемы, связанные с электронной почтой с помощью Ninja Forms, рекомендуемое решение — использовать плагин SendWP, разработанный той же командой.
ОтправитьWP
SendWP предназначен для работы SMTP на вашем сервере, что вы также можете сделать с помощью бесплатных плагинов. И если проблема не в том, что ваш сервер не отправляет электронную почту, SendWP ее не исправит.
Итак, если вы не хотите платить 9 долларов в месяц за SendWP, попробуйте следовать руководству по устранению неполадок по электронной почте в их документации.
Исправить HappyForms, не отправляющие электронные письма
HappyForms — еще один плагин с бесплатной и премиальной версией.
Happyforms
У
HappyForms есть справочное руководство, но оно не содержит подробных сведений о том, что делать, если электронные письма не отправляются.
Чтобы изменить адрес электронной почты, с которого отправляются Happy Forms, вы можете изменить настройки электронной почты для отдельной формы аналогично Contact Form 7.
Перейдите в HappyForms> Все формы и выберите форму, которую хотите отредактировать.Это откроет интерфейс, похожий на настройщик.
Откройте вкладку Электронная почта .
Вкладка электронной почты Happyforms
Здесь вы можете настроить адреса с по и с для уведомлений и подтверждений, чтобы убедиться, что вы не отправляете поддельные электронные письма.
После внесения изменений нажмите кнопку Обновить вверху и протестируйте форму.
Исправить weForms, не отправляющие электронные письма
weForms — еще один плагин форм с бесплатной и премиальной версиями.Он позволяет настроить плагин для использования электронной почты с выбранными поставщиками электронной почты, включая сам WordPress, SendGrid или другие.
В нем есть руководство по устранению неполадок, которое поможет вам решить проблему, когда weForms не отправляет электронные письма. Следуйте инструкциям, чтобы определить источник проблемы и восстановить работу электронной почты.
Исправить контактную форму Jetpack, не отправляющую электронные письма
Если вы используете плагин Jetpack, возможно, вы используете базовую контактную форму, которая прилагается к нему. Вы делаете это, добавляя блок формы на страницу или сообщение в WordPress.
Jetpack не имеет такого количества параметров настройки, как специальные плагины для форм, но вы можете изменить адрес, на который отправляются электронные письма.
Поскольку Jetpack не использует поле из формы в поле To или From электронного письма, у вас меньше шансов иметь проблемы, связанные с электронной почтой. Если вы столкнетесь с проблемами, это произойдет из-за того, что вы отправляете электронные письма на один и тот же адрес и с него.
После добавления формы щелкните значок редактирования над ней, откроется раскрывающееся меню.Используйте это, чтобы изменить адрес, на который отправляются формы.
Контактная форма Jetpack
Если вы хотите изменить адреса, с которых отправляются формы, вам нужно будет изменить адрес электронной почты администратора для своего веб-сайта, так как это используется в форме Jetpack.
Исправить грозные формы, не отправляющие электронные письма
Formidable Forms — еще один плагин форм с бесплатной и премиальной версией. Если у вас возникают проблемы с отправкой электронных писем из контактных форм в Formidable Forms, официальная документация рекомендует добавить SMTP на ваш сайт.
Но что, если вы уже это сделали, но все еще не работает? Что ж, опять же, это вероятно потому, что ваши электронные письма помечаются как «поддельные», потому что они отправляются с адреса, который не является настоящим адресом отправителя.
В админке WordPress перейдите в Formidable> Forms и выберите форму, которую хотите отредактировать. Щелкните вкладку Settings вверху, затем вкладку Actions & Notifications сбоку. Отсюда откройте мета-поле Уведомление по электронной почте .
Настройки уведомлений по электронной почте для сложных форм
Здесь вы можете изменить адрес, с которого и на который отправляются электронные письма с уведомлениями. По умолчанию для обоих будет использоваться адрес электронной почты администратора, а не адрес электронной почты, взятый из формы.
Чтобы изменить адрес, на который отправляются электронные письма (чтобы это не тот адрес, с которого они отправляются), отредактируйте поле На и вручную введите адрес электронной почты, который хотите использовать.
Экран настроек сохранит изменения по мере их внесения, поэтому убедитесь, что вы правильно вводите.
Если ваши электронные письма не отправляются через WordPress, эти распространенные проблемы могут быть причиной проблемы … 👀Нажмите, чтобы написать в Твиттере
Сводка
Иногда WordPress не отправляет электронные письма, и вы, возможно, не можете понять, почему. Эта проблема, которая является одной из наиболее распространенных ошибок WordPress, может быть связана с тем, что электронные письма попадают в спам, потому что ваш сервер не настроен для отправки электронных писем или потому, что необходимо изменить настройки в вашей контактной форме.
Следуйте приведенному выше руководству, чтобы определить причину, по которой ваш сайт WordPress не отправляет электронные письма, и устранить проблему.Скоро у вас должны появиться правильные электронные письма!
Если вам понравилась эта статья, то вам понравится хостинговая платформа Kinsta WordPress. Ускорьте свой сайт и получите круглосуточную поддержку от нашей опытной команды WordPress. Наша инфраструктура на базе Google Cloud ориентирована на автоматическое масштабирование, производительность и безопасность. Позвольте нам показать вам разницу в Kinsta! Ознакомьтесь с нашими тарифами
Как отправить электронное сообщение с помощью функции PHP Mail ()?
В настоящее время одним из наиболее распространенных способов общения является отправка и получение сообщений электронной почты.В отличие от других форм электронного общения, электронные письма очень надежны и принимаются повсеместно — когда вы отправляете кому-то сообщение, вы знаете, что они смогут его прочитать независимо от операционной системы, почтового клиента или почтового провайдера, который они используют. Благодаря этим огромным преимуществам электронная почта стала предпочтительным способом общения для бесчисленных людей и компаний по всему миру.
Написание сообщений электронной почты с помощью вашей любимой почтовой программы или веб-приложения вашего почтового провайдера, вероятно, для вас вторая натура.Но знаете ли вы, что вы также можете отправлять сообщения через скрипты со своего хостинга? В этом руководстве мы покажем вам, как отправлять сообщения электронной почты с помощью сценария PHP.
Как я могу проверить, включена ли функция PHP Mail () в моей учетной записи?
Прежде чем вы попытаетесь отправить сообщение электронной почты с помощью функции PHP mail (), вы должны убедиться, что функция PHP mail () действительно включена на сервере. Вы можете выполнить эту проверку, запустив небольшой тестовый сценарий. Выполните следующие шаги, чтобы создать этот сценарий и выполнить его:
- Откройте раздел «Диспетчер файлов» Панели управления.Если будет предложено, войдите в свою учетную запись.
- Откройте папку с доменным именем .
- Используйте кнопку Create , чтобы создать новый файл. Назовите файл как-то вроде
test.php
. - Скопируйте приведенный ниже код и сохраните файл.
Php
if (function_exists ('mail')) {
echo "Функция PHP mail () включена";
}
еще {
echo "Функция PHP mail () не включена";
}
?>
- Теперь скопируйте путь к сценарию тестирования и запустите его в своем веб-браузере.Путь должен выглядеть примерно так:
.
Если все пойдет хорошо, вы должны увидеть сообщение PHP mail () функция включена , как показано на скриншоте ниже:
Тестовый сценарий подтверждает, что функция PHP mail () включена на сервере.
Если есть проблема, вы увидите сообщение PHP mail () не включена . В том маловероятном случае, если это произойдет, вам следует обратиться в круглосуточную службу технической поддержки, чтобы они могли решить любые проблемы с сервером.
Тестовый сценарий показывает, что функция PHP mail () отключена, что, вероятно, связано с неправильной конфигурацией сервера.
Разрешены ли бесплатные учетные записи для отправки сообщений с помощью функции PHP Mail ()?
Если вы пользуетесь нашей услугой бесплатного хостинга, вы можете беспокоиться о том, что эта функция будет вам недоступна. Хорошей новостью является то, что даже бесплатные учетные записи хостинга могут использовать функцию PHP mail (). Есть всего два предостережения, о которых нужно помнить.
Во-первых, чтобы отправить сообщение электронной почты, вам необходимо создать учетную запись электронной почты на вашем хостинге.Эта учетная запись электронной почты будет действовать как отправитель. Учетные записи электронной почты можно создать в разделе «Учетные записи электронной почты» панели управления. Чтобы иметь учетную запись электронной почты, вам необходимо иметь полное доменное имя или получить бесплатное доменное имя .DX.AM из Менеджера домена.
Второе предостережение: чтобы спамеры не злоупотребляли нашим бесплатным сервисом, мы ограничили количество отправляемых сообщений до 31 сообщения за любой 31-дневный период. Вы можете снять это ограничение, перейдя на один из предлагаемых нами пакетов платного хостинга.
Как отправить электронное сообщение с помощью функции PHP Mail ()?
Сообщения электронной почты могут быть отправлены с помощью сценария PHP, запустив его. Запустить сценарий так же просто, как открыть его в веб-браузере, как обычную страницу в Интернете. Мы покажем вам, как создать и запустить ваш первый скрипт, использующий функцию PHP mail ():
.
- Войдите в панель управления хостингом.
- Если у вас еще нет учетной записи электронной почты, создайте ее в разделе «Учетные записи электронной почты» панели управления. Не знаете, как создать учетную запись электронной почты? Ознакомьтесь с нашим руководством о том, как создать учетную запись электронной почты .
- Перейдите в раздел «Диспетчер файлов» Панели управления.
- Дважды щелкните папку домена , чтобы открыть ее.
- Используйте кнопку Create , чтобы создать новый файл. Назовите файл как-то вроде
mail-test.php
. - Скопируйте приведенный ниже код в только что созданный пустой файл .PHP.
Php
$ awardspaceEmail = "ОТ";
$ recipientEmail = "ДО";
$ from = "От: Форма обратной связи по электронной почте <".$ awardspaceEmail. ">";
$ to = $ recipientEmail;
$ subject = "PHP mail () Test";
$ body = "Это тестовое сообщение, отправленное с помощью почтовой функции PHP!";
if (mail ($ to, $ subject, $ body, $ from)) {
echo 'Электронное сообщение отправлено!';
} еще {
echo 'Ошибка доставки электронной почты!';
}
?>
- Теперь вам нужно сделать два дополнения к скрипту. В начале сценария вы увидите следующую строку кода:
$ awardspaceEmail = "FROM";
. Вам необходимо удалить текстИЗ
и вместо него ввести адрес электронной почты, который вы создали ранее на шаге 2, используя раздел «Учетные записи электронной почты» панели управления.Точно так же следующая строка:$ recipientEmail = "TO";
. Здесь вам нужно удалить текстTO
и заменить его адресом электронной почты, на который вы хотите получить тестовое сообщение. - После обновления двух полей, упомянутых в предыдущем шаге, сохранит ваши изменения.
- Теперь скопируйте путь к сценарию проверки почты и запустите его в своем веб-браузере. Путь должен выглядеть примерно так:
.
- По завершении загрузки сценария вы должны увидеть сообщение Сообщение электронной почты отправлено! выводится на экран, если сообщение было отправлено успешно.Если возникнет проблема, вы увидите ошибку доставки электронной почты ! вместо этого. В случае ошибки вы можете связаться с нашей круглосуточной службой технической поддержки, и они помогут вам в решении любых имеющихся проблем.
- Убедитесь, что ваш сценарий успешно отправил тестовое сообщение, проверив свой почтовый ящик. Вы должны получить тестовое сообщение, похожее на показанное ниже:
Сценарий проверки функции PHP mail () успешно отправил сообщение, и оно прибыло в почтовый ящик получателя.
Есть ли ограничение на количество сообщений, которые я могу отправить с помощью функции PHP Mail ()?
Как упоминалось ранее, план бесплатного хостинга позволяет отправлять до 31 сообщения в течение 31-дневного периода. При переходе на один из наших платных планов общего хостинга этот лимит значительно увеличивается. С платным тарифом вы можете отправлять до 1000 сообщений в день. Если вам нужно отправить еще больше сообщений, наш полу-выделенный хостинг позволяет отправлять до 2000 сообщений в день. И последнее, но не менее важное: получение пакета виртуального частного сервера (VPS) позволит вам отправлять неограниченное количество сообщений.VPS ограничен только своим оборудованием и вычислительной мощностью в отношении количества сообщений, которые он может отправить.
Предупреждение: AwardSpace придерживается политики абсолютной нетерпимости, когда речь идет об отправке нежелательных сообщений электронной почты (СПАМ). Если вы используете наши почтовые серверы для такой деятельности, вы рискуете навсегда заблокировать вашу учетную запись хостинга без возможности получить возмещение.
Как создать контактную форму для моего веб-сайта?
Теперь, когда вы можете отправлять сообщения с помощью сценариев PHP, вы можете задуматься о внедрении полноценной контактной формы на свой веб-сайт.На самом деле сделать это на удивление легко. Мы рассмотрим весь процесс в нашем руководстве о том, как создать рабочую контактную форму.
Заключение
Возможность отправлять сообщения электронной почты через ваш веб-сайт улучшает впечатления ваших посетителей, когда они посещают ваш сайт. Внедрение контактной формы, отправка сообщений с подтверждением заказа и отправка по электронной почте ссылки для сброса пароля участнику вашего сайта, который потерял свой пароль, — все это может сделать ваш сайт более профессиональным и привлекательным.И, что самое главное, PHP позволяет автоматизировать эти сообщения, поэтому, как только вы настроите свой сайт, он будет работать без каких-либо дополнительных усилий с вашей стороны.
Продолжайте читать
Как использовать PHP и виртуальный SMTP-сервер Microsoft в Windows для отправки электронных писем
Как использовать PHP и виртуальный сервер SMTP Microsoft для отправки электронной почты
IIS имеет встроенный виртуальный сервер SMTP, который может использоваться почтой PHP ()
функция отправки электронных писем.
Если вы подключены к Интернету, электронные письма будут отправлены.
Если на вашем компьютере нет подключения к Интернету, вы все равно можете использовать его для
отправлять электронные письма, но вместо того, чтобы отправлять электронные письма, они будут храниться в C: \ Inetpub \ mailroot \ Queue
папка. Имя файла электронной почты должно быть в формате, например
NTFS_2b15732801c54a4f00000002.EML
Преимущество этой практики в том, что вы можете протестировать свою почту PHP ()
функционировать локально и офлайн.Например, вы можете дважды щелкнуть электронное письмо
имя файла и изучить тему, основной текст, адрес получателя и отправителя и т. д.
Настройка почтовой функции по умолчанию в php.ini выглядит так:
[почтовая функция]
; Только для Win32.
SMTP = локальный хост
smtp_port = 25
; Только для Win32.
; sendmail_from = [email protected]
Приведенный выше код можно оставить как есть. «SMTP = localhost» означает, что вы
использовать локальный виртуальный сервер SMTP, поставляемый с IIS, для ретрансляции сообщений электронной почты.Однако, чтобы функция PHP mail () работала локально, необходимо выполнить два
вещи:
- Всегда включайте адрес отправителя в функцию PHP mail (). Это потому что
sendmail_from был закомментирован.Если вы не указали адрес От в функции mail (), вы получите ошибку
потому что Apache попытается найти указанный по умолчанию адрес sendmail_from
в файле php.ini. Если он найден, он будет использоваться в качестве адреса «От». Если не,
появится сообщение об ошибке.Для разработки вы можете сделать sendmail_from = [email protected] в качестве
адрес отправителя по умолчанию или вы можете изменить его на свой реальный адрес электронной почты.Комментарий в sendmail_from. Помните, всегда перезапускайте сервер Apache
каждый раз, когда вы меняете файл php.ini. - Настройте SMTP-сервер, чтобы разрешить ретрансляцию с локального компьютера. Если вы этого не сделаете,
вы получите сообщение об ошибке, подобное этому:Предупреждение: mail (): ответ SMTP-сервера: 550 5.7.1 Невозможно выполнить ретрансляцию
[email protected] в c: документы и настройки администратора
documentstesttest.php в строке 3
Шаги для включения SMTP-сервера для локального ретранслятора
1. Откройте IIS, щелкните правой кнопкой мыши виртуальный сервер SMTP. Выберите «Свойства» в
выпадающее меню.
2. Выберите вкладку «Доступ» и нажмите кнопку «Реле».
3. Откроется окно Ограничения реле. Щелкните кнопку Добавить.
4. Когда откроется окно, введите 127.0.0.1 в поле IP-адреса. Затем нажмите
ОК.
5. Теперь для ретрансляции предоставляется локальный IP-адрес. Затем нажмите ОК.
Примечание. Вы также можете использовать SMTP-сервер вашего интернет-провайдера. Но для целей разработки, тестирования и отладки использование localhost должно подойти.
[почтовая функция]
; Только для Win32.
SMTP = SMTP-сервер вашего интернет-провайдера
smtp_port = 25
; Только для Win32.
sendmail_from = ваш адрес электронной почты
Как исправить частую ошибку
Вот распространенная ошибка, которую вы можете встретить:
mail () [функция.mail]: не удалось подключиться к почтовому серверу на «localhost»
порт 25, проверьте настройки «SMTP» и «smtp_port»
в php.ini или используйте ini_set ()
Многие люди пытались исправить эту ошибку, изменив почту по умолчанию.
настройка функции в файле php.ini.
Настройка почтовой функции по умолчанию в php.ini выглядит так:
[почтовая функция]
; Только для Win32.
SMTP = локальный хост
smtp_port = 25
; Только для Win32.
; sendmail_from = me @ example.ком
Настройку по умолчанию изменять не нужно. Вместо этого проверьте свой SMTP
доступность и конфигурация сервера.
1. Проверьте, установлен ли SMTP-сервер.
Виртуальный сервер Microsoft SMTP в комплекте с Internet Information Server
(IIS). Итак, если у вас не установлен IIS, у вас нет SMTP-сервера.
Чтобы найти IIS, следуйте по этому пути в меню «Пуск».
Пуск -> Настройка -> Панель управления -> Администрирование -> Диспетчер служб Интернета
Internet Services Manager состоит из трех основных компонентов: FTP-сайт по умолчанию,
Веб-сайт по умолчанию и виртуальный SMTP-сервер по умолчанию.
Если вы не можете найти Internet Services Manager, вам необходимо его установить.
Пуск -> Настройка -> Панель управления -> Установка и удаление программ
Когда откроется окно, нажмите «Добавить / удалить компоненты Windows» слева.
боковая панель навигации. Затем нажмите кнопку «Компоненты», чтобы открыть Windows.
Мастер компонентов. Найдите Internet Information Services (IIS) и установите его.
2. Если SMTP-сервер уже установлен, проверьте, работает ли он.
3. Если SMTP-сервер запущен, проверьте, настроен ли он для использования TCP.
порт 25.
3.1 Откройте IIS, щелкните правой кнопкой мыши виртуальный сервер SMTP. Выберите «Свойства» в
выпадающее меню. Затем нажмите кнопку «Дополнительно» на вкладке «Общие».
3.2 Когда откроется новое окно, проверьте номер порта TCP.
3.3 Затем нажмите кнопку «Подключение».
3.4 Когда откроется новое окно, проверьте номер порта TCP. Измените его на 25, если
Нет.
Авторские права © GeeksEngine.com
Статьи по теме: Другие недавние статьи из категории WAMP & LAMP: |
Как получить мой PHP для отправки почты?
Из почтового мануала php:
Требования
Чтобы почтовые функции были
доступно, PHP требует установленного
и работающая система электронной почты.Программа
для использования определяется
настройки конфигурации в php.ini
файл.
Это означает, что вам нужно установить какой-то почтовый сервер и настроить php для его использования. Обычно этот почтовый сервер является постфиксным в Ubuntu. Однако — если сторона php, которую вы кодируете, в конечном итоге будет сохранена на стороне службы хостинга (например, xmission), почтовый сервер, скорее всего, уже будет там установлен. В этом случае просто протестируйте свой сайт онлайн, а не локально.
Если вам нужно протестировать его в своей системе или вы хотите разместить его на своем домашнем сервере, выполните:
Установка: postfix / sudo apt-get install postfix
Во время процесса вас спросят, в каком режиме вы хотите установить postfix.Возможны четыре режима:
- Интернет : Ваш собственный почтовый сервер.
- Satellite : для отправки и получения почты будет использоваться внешний почтовый провайдер (например, Google). Сервер не будет получать почту.
- Smarthost : смесь двух. Почта хранится локально, но отправляется через внешнего почтового провайдера.
- Только местные : Вас не коснутся. Это системный почтовый сервер для стажеров. Вы можете отправлять почту только от пользователя к пользователю в системе.
Остальные варианты установки зависят от вашего выбора этой общей конфигурации.
Скорее всего, вы выберете установку сателлита. Это означает, что почта будет отправляться через внешнего провайдера. В качестве smtp-сервера (сервера исходящей почты) вам нужно будет указать smtp вашего провайдера. Остальные параметры говорят сами за себя.
Конфигурация после установки
Большинство smtp-серверов требуют аутентификации по паролю для отправки почты. Таким образом, postfix нужно будет знать этот пароль.Также нужно учитывать такие вещи, как шифрование (которое вам нужно будет погуглить). Вот как вы настраиваете постфикс с использованием аутентификации по паролю (sasl):
Установить
libsasl2-modules и
sasl2-bin
щелкнув значки Центра программного обеспечения или из терминала, используя:sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
Включите sasl-auth, добавив эти строки в
/etc/postfix/main.cf
# добавить в / etc / postfix / main.ср smtp_sasl_auth_enable = да smtp_sasl_security_options = noplaintext noanonymous smtp_sasl_password_maps = хеш: / etc / postfix / sasl_password
Создайте файл
/ etc / postfix / sasl_password
со строкой вида:smtp.gmail.com ИМЯ ПОЛЬЗОВАТЕЛЯ@gmail.com: ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ
Замените фактический пароль, имя пользователя и smtp-адрес.
Постфикс обновления:
sudo chmod 600 / etc / postfix / sasl_password # для безопасности вашего пароля smtp хеш sudo postmap: / etc / postfix / sasl_password sudo postmap / etc / postfix / sender_canonical sudo / etc / init.d / postfix перезапуск
Возможно, вам придется заранее обойти ошибку «доступ запрещен» с помощью
chown postfix: postfix / etc / postfix
.
Это должно сработать в большинстве случаев. Тем не менее, некоторые провайдеры smtp требуют определенного адреса в качестве отправителя или шифрования.
По теме: Интерфейс PEAR :: Mail также может вас заинтересовать.
Gmail (и, возможно, другим службам) может не понравиться, что вы пытаетесь отправить почту таким способом, поскольку это может быть сочтено небезопасным по их стандартам и заблокирует вашу попытку i.е. на экране ничего не произойдет, или в каком-то месте весь процесс заблокирует вашу аутентификацию. Также ваш POP3 должен быть включен.
Чтобы противостоять этому, см. Здесь. (Если вы хотите быть в безопасности, создайте фиктивную учетную запись Gmail)
Как настроить XAMPP для отправки почты с localhost с помощью PHP?
Как настроить XAMPP для отправки почты с локального хоста с помощью PHP?
Чтобы настроить сервер XAMPP для отправки почты с localhost, мы должны внести изменения в два файла sendmail.ini и php.ini. Откройте папку xampp. По имени «sendmail.ini» присутствует в файле sendmail , а «php.ini» присутствует в файле php в папке xampp .
Шаг 1:
- Перейдите в C: \ xampp \ sendmail: откройте файл sendmail.ini в блокноте или любом текстовом редакторе и внесите следующие изменения.
измените smtp_server = mail.yourdomain.com на smtp_server = smtp.gmail.com измените smtp_port на smtp_port = 587 изменить smtp_ssl = auto на smtp_ssl = tls
раскомментировать; error_logfile = error.войти в error_logfile = error.log раскомментируйте; debug_logfile = debug.log в debug_logfile = debug.log напишите свой идентификатор Gmail в auth_username: auth_username=*****@gmail.com напишите свой gmail assword в auth_password: auth_password = *****
напишите свой gmail id в force_sender: *****@gmail.com измените имя хоста на hostname = localhost
Шаг: 2
- Перейдите в C: \ xampp \ php: откройте файл php.ini в блокноте или любом текстовом редакторе goto [функция почты] и выполните изменения следующим образом.
комментарий SMTP = localhost, поставив точку с запятой перед =>; SMTP = localhost комментарий smtp_port = 25, поставив точку с запятой infront =>; smtp_port = 25 комментарий sendmail_from = поставив точку с запятой infront =>; sendmail_from = укажите путь к файл в sendmail_path к sendmail_path = C: \ xampp \ sendmail \ sendmail.exe проверьте, включено ли extension = php_openssl.dll => Если впереди стоит точка с запятой, то отмените комментарий, удалив точку с запятой
После выполнения указанных шагов, если почта не отправляется путем вызова почтовой функции, перейдите к C: \ xampp \ sendmail ошибка открытия.log, чтобы увидеть, что произошла ошибка.
Примечание: Здесь процедура показана для gmail, но ее можно распространить на другие письма, изменив сервер smtp, номер порта. При использовании Gmail обязательно включите параметр, разрешающий доступ к менее безопасным веб-приложениям.
Как проверить, существует ли адрес электронной почты, не отправляя электронное письмо? по веб-разработке
Мы все очень давно занимаемся проверкой адресов электронной почты, чтобы убедиться, что электронная почта правильно отформатирована.Это сделано для того, чтобы пользователи не вводили неверно отформатированный адрес электронной почты, но все же они могут случайно указать нам неправильный адрес электронной почты.
Пример правильно отформатированного адреса электронной почты, но все еще неверного:
[email protected] [ДЕЙСТВИТЕЛЬНЫЙ формат, но не существует]
Вышеупомянутый случай, в частности, случается, когда вы берете на телефон важный адрес электронной почты клиента и вводите не тот адрес электронной почты. Так есть ли БЫСТРОЕ решение действительно проверить электронную почту без отправки тестового сообщения пользователю? Да.
Как проверить, существует ли адрес электронной почты на самом деле
Чтобы проверить, ввел ли пользователь адрес электронной почты mailbox.does.not.exist @ webdigiapps .com действительно существует, выполните следующие действия в командной строке в Windows / терминале на Mac. Команды, которые вы вводите, отображаются зеленым цветом, а ответ сервера — синим. Пожалуйста, обратитесь к скриншотам MAC и PC в конце этого поста.
Шаг 1 — Найдите почтовый обменник или почтовый сервер webdigiapps.com
КОМАНДА:
nslookup -q = mx webdigiapps.com
ОТВЕТ:
Неавторизованный ответ:
webdigiapps.com mail exchangenger = 0 mx2.sub3.homie.mail.dreamhost.com.
почтовый обменник webdigiapps.com = 0 mx1.sub3.homie.mail.dreamhost.com.
Шаг 2 — Теперь мы знаем адрес почтового сервера, поэтому давайте подключимся к нему. Вы можете подключиться к одному из адресов обменника в ответе с Шага 1.
КОМАНДА:
telnet mx2.sub3.homie.mail.dreamhost.] ’.
220 homiemail-mx7.g.dreamhost.com ESMTP
КОМАНДА:
helo привет
ОТВЕТ:
250 homiemail-mx8.g.dreamhost.com
КОМАНДА:
письмо от:
ОТВЕТ:
250 2.1.0 Хорошо
КОМАНДА:
rcpt на:
ОТВЕТ:
550 5.1.1
КОМАНДА:
выйти
ОТВЕТ:
221 2.0.0 Пока
Скриншоты — MAC-терминал и Windows
ПРИМЕЧАНИЯ:
1) ответ 550 указывает, что адрес электронной почты недействителен, и вы поймали действительный, но неверный адрес электронной почты. Этот код может находиться на сервере и вызываться AJAX, когда пользователь выходит за пределы поля электронной почты. Вся проверка займет менее 2 секунд, и вы можете убедиться, что адрес электронной почты правильный.
2) Если адрес электронной почты присутствовал, сервер ответит 250 вместо 550
3) Есть определенные серверы с электронной почтой CATCH ALL, и это означает, что все адреса электронной почты принимаются как действительные на их серверах (РЕДКО, но некоторые серверы имеют это параметр).