В Ubuntu 16.04 VPS с LEMP в DigitalOcean у меня есть веб-сайт WordPress, который имеет форму контакта, которую я создал с Формой контакта 7 (CF7).
У меня есть проблема при передаче электронных писем от моей формы контакта WordPress (CF7) на мой адрес электронной почты (Gmail).
Я должен сказать, я кротко предпочту несменное решение.
A
запись, содержащая домен.Cname
запись, содержащая a www.
вариант для домена.NS
записи для соединения запросов DNS к моему домену, с моим IP и соответствующим приложением в его машине.Я действительно пытался добавить MX
записи, автоматическим DigitalOcean способ сделать так (путем нажатия Add Gmail MX records
кнопка в инструменте управления DNS DigitalOcean), и 5 MX
записи были добавлены, но у меня все еще была та же ошибка после того, как я сразу попытался послать тестовое электронное письмо из WordPress (см. ошибку ниже).
В настоящее время зона DNS имеет нет MX
записи, потому что я не уверен, что они даже требуются, если все я требую в контексте электронных писем, должны только послать запросы формы контакта WordPress на мой счет Gmail, и я нахожусь все еще в том же состоянии с той же ошибкой.
Я всегда получаю следующее сообщение об ошибке, в красное поле под формой контакта:
Не удалось отправить Ваше сообщение.
Из-за этой ошибки, ничто не отправляется никуда (в даже Папку для спама).
Пытаясь отладить это, я выполнил следующий код для создания журнала для Постфикса:
touch /var/log/mail.log
Полномочия:
rw-r--r-- 1 root root
Но ничто не записано в этом журнале ошибок после того, как я попытаюсь послать мне тестовое электронное письмо и сбой.
sudo apt-get update && sudo apt-get upgrade postfix
.Что вызывает эту проблему?
Возможно, я могу попробовать что-то Постфиксом или альтернативным инструментом, который я должен использовать как sSMTP? Я предпочел бы минимальное никакому-conf инструменту. Я подчеркиваю, что не посылаю никакие другие электронные письма своему Gmail помимо тех, которые приземляются в форме контакта WordPress, и при этом я не посылаю никакие другие электронные письма нигде от этой машины.
В прошлом я установил Постфикс, как описано выше и не было никаких проблем. Если у Вас есть какая-либо идея, что проверить, что детализирует, я должен обеспечить, скажите мне, и я отредактирую.
1) Файл /etc/postfix/main.cf
все значение по умолчанию.
2) Вывод ps -efl | grep postfix
:
5 S root 4611 1 0 80 0 - 16352 ep_pol 07:42 ? 00:00:00 /usr/lib/postfix/sbin/master -w
4 S postfix 4613 4611 0 80 0 - 16881 ep_pol 07:42 ? 00:00:00 qmgr -l -t unix -u
4 S postfix 4930 4611 0 80 0 - 16869 ep_pol 11:02 ? 00:00:00 pickup -l -t unix -u -c
0 S root 5201 5187 0 80 0 - 3236 pipe_w 12:19 pts/0 00:00:00 grep --color=auto postfix
Проблема, кажется, возникает из WordPress, формирует конфигурацию формы контакта, в частности, поскольку проблема также произошла с sSMTP
который некоторые рассматривают более простым инструментом, чем Постфикс:
Когда я удалил исходную форму и создал новую, я получил зеленое сообщение, говоря, что сообщение было отправлено в тестовом электронном письме.
Здесь также, я не получил сообщение даже к dir Спама, но по крайней мере ответ отличался и исходная проблема Постфикс, к которому не имеют никакого отношения.
От того, Как зафиксировать форму контакта Wordpress, не посылающую электронное письмо с smtp:
WordPress использует почтовую функцию PHP для отправки электронных писем, сгенерированных WordPress или любым плагином контакта как WPForms. Однако много хостинг-серверов WordPress не настроены для использования почтовой функции.
Кроме того, для сокращения спама, почтовый поставщик часто проверяет, происходит ли электронная почта из местоположения, из которого это утверждает, что произошло. Например, если Вашим почтовым сервером является yahoo.com, но Ваше электронное письмо утверждает, что было послано от домена Вашего веб-сайта, возможности являются Вашим уведомлением о форме, будет заблокирован, прежде чем это даже достигнет папки для спама.
Поэтому мы рекомендуем использовать SMTP для отправки электронных писем из WordPress вместо того, чтобы использовать почтовую функцию PHP по умолчанию.
SMTP (Простой протокол передачи почты) является промышленным стандартом способ послать электронные письма, которые используют надлежащий метод аутентификации гарантировать почтовую пропускную способность.
Этот заголовок раздела - то, потому что сегодня воскресенье, и статья How для фиксации формы контакта Wordpress, не посылающей электронное письмо с smtp, перечисляет Семь различных способов установить SMTP:
Для меня я использую самый самый простой метод, чтобы иметь cron
пошлите мне по электронной почте сообщения об ошибках и ежедневно копируйте отчеты: Скопируйте конфигурацию Linux, сценарии и документы Gmail.
Суммировать шаги:
sudo apt install ssmtp
sudo apt install sharutils
Также необходимо дать Gmail команду предоставлять менее безопасный доступ к себе для принятия электронных писем. Это документируется в мой ответ выше.
Ваш конфигурационный файл для ssmtp
ДОЛЖЕН быть изменен. Здесь является моим:
$ sudo cat /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# November 17, 2017.
# Required for cron to e-mail backups as per Ask Ubuntu answer:
# https://askubuntu.com/questions/917562/backup-linux-configuration-scripts-and-documents-to-gmail/922493#922493
#root=postmaster
root=WinEunuuchs2Unix@gmail.com
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#mailhub=mail
mailhub=smtp.gmail.com:587
AuthUser=WinEunuuchs2Unix@gmail.com
AuthPass=WinEunuuchs2UnixPassword
UseTLS=YES
UseSTARTTLS=YES
#Debug=YES
# Where will the mail seem to come from?
#rewriteDomain=
rewriteDomain=gmail.com
# The full hostname
hostname=alien
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
Измените вышеупомянутые строки на свое имя учетной записи Gmail, пароль и название машины:
root=WinEunuuchs2Unix@gmail.com
AuthUser=WinEunuuchs2Unix@gmail.com
AuthPass=WinEunuuchs2UnixPassword
hostname=alien
Обратите внимание, что WinEunuuchs2UnixPassword является Вашим паролем Gmail не Ваш пароль Linux. Получить Ваш hostname
использовать echo $HOSTNAME
.
По ссылкам в статье WordPress в первой ссылке выше нужно перейти для установки Gmail. Только обратитесь к моей ссылке для основного обзора.