web-dev-qa-db-ja.com

PostfixはWordPress連絡先フォームのメールをGmailアカウントに転送しません

DigitalOceanのLEMPを使用したUbuntu 16.04 VPSでは、WordPress Webサイトに、Contact Form 7( CF7)。

私の問題

WordPress連絡先フォーム(CF7)から電子メール(Gmail)への電子メールの転送に問題があります。

私は謙虚にnon-pluginソリューションを好むと言わなければなりません。

私のマシンのDNSゾーン

  1. Aドメインを保持するレコード。
  2. ドメインのwww.バリアントを保持するCnameレコード。
  3. 3つのNSレコードは、DNS要求を私のドメインに関連付け、私のIPとそのマシンの関連アプリに関連付けます。

DigitalOceanの自動方法(_DigitalOcean DNS管理ツールの[Add Gmail MX records]ボタンをクリック)でMXレコードを追加しようとしましたが、5つのMXレコードが追加されましたが、すぐにWordPressからテストメールを送信しようとした後、同じエラーが発生しました(以下のエラーを参照)。

現在、DNSゾーンにはMXレコードがありません。これは、メールのコンテキストでWordPress問い合わせフォームの問い合わせをGmailアカウントに送信することだけが必要な場合でも、それらが必要かどうかわからないためですそして、私はまだ同じエラーで同じ状態にあります。

正確なエラーとデバッグの試行:

連絡先フォームの下の赤いボックス内に、常に次のエラーメッセージが表示されます。

メッセージを送信できませんでした。

このエラーのため、何もどこにも送信されません(スパムフォルダーにも送信されません)。

これをデバッグしようとして、次のコードを実行してPostfixのログを作成しました。

touch /var/log/mail.log
  • Nginxログにエラーはありません。

許可は次のとおりです。

rw-r--r-- 1 root root

しかし、このエラーログには何も書き込まれませんafter自分にテストメールを送信しようとして失敗します。

問題の再現:

  1. DigitalOcean Ubuntu 16.04ドロップレットを作成します。
  2. LEMPスタックを作成し、WordPress Webサイトを実行します。
  3. Sudo apt-get update && Sudo apt-get upgrade postfix
  4. 「インターネットサイト」構成を選択します。
  5. 作業するサイトのドメインを入力します。
  6. Contact Form 7をWordPressサイトにインストールし、自分にテストメールを送信してみてください。

私の質問

この問題の原因は何ですか?

おそらく、Postfixまたは sSMTP ? no-confツールよりも最小限のものを好むでしょう。 WordPress連絡フォームに到着するメール以外にGmailに他のメールを送信したり、このマシンから他のメールを送信したりしないことを強調します。

以前は、上記のようにPostfixをインストールしましたが、問題はありませんでした。何を確認すべきか、どのような詳細を提供すべきかわからない場合は、教えてください。編集します。


更新

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
5
JohnDoea

問題はWordPressに起因しているようで、特にコンタクトフォームの構成から発生しているようです。この問題はsSMTPでも発生したため、Postfixよりも簡単なツールと考えられています。

元のフォームを削除して新しいフォームを作成すると、メッセージがテストメールで送信されたことを示す緑色のメッセージが表示されました。

ここでも、Spam dirにもメッセージが届きませんでしたが、少なくとも応答は異なり、元の問題はPostfixとは何の関係もありませんでした。

2
JohnDoea

From smtpでメールを送信しないwordpress連絡先フォームの修正方法

WordPressがメールを送信しない理由

WordPressはPHPメール機能を使用して、WordPressまたはWPFormsなどの連絡先プラグインによって生成されたメールを送信します。ただし、多くのWordPressホスティングサーバーは、メール機能を使用するように構成されていません。

さらに、スパムを減らすために、メールプロバイダーは、メールが発信元であると主張する場所から発信されているかどうかを確認することがよくあります。たとえば、メールサーバーがyahoo.comであるにもかかわらず、メールがウェブサイトのドメインから送信されたと主張している場合、フォーム通知がスパムフォルダーに到達する前にブロックされる可能性があります。

このため、デフォルトのWordPressメール機能を使用する代わりに、SMTPを使用してPHPからメールを送信することをお勧めします。

SMTP(Simple Mail Transfer Protocol)は、適切な認証方法を使用して電子メールを配信するための業界標準の方法です。


日曜日までの7つの方法

このセクションの見出しは、今日が日曜日であり、記事 smtpで電子メールを送信しないwordpress連絡フォームの修正方法 リストSMTPをセットアップする7つの異なる方法のためです。

  1. WPメールSMTP:SMTPセットアップ
  2. GmailまたはG Suite
  3. SendGrid
  4. Mailgun
  5. 消印
  6. WP SES
  7. SparkPost

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
[email protected]

# 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

[email protected]
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アカウント名、パスワード、およびマシン名に変更します。

[email protected]
[email protected]
AuthPass=WinEunuuchs2UnixPassword
hostname=alien

WinEunuuchs2UnixPasswordは、Linuxパスワードではなく、Gmailパスワードです。 hostnameを取得するには、echo $HOSTNAMEを使用します。

WordPress記事のリンクをたどってください。

上記の最初のリンクのWordPress記事にあるリンクをたどって、Gmailをセットアップします。基本的な概要については、私のリンクのみを参照してください。

2