エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応

   

WordPressの送信メールをSMTP Mailerでスパム判定を回避する方法

 

WordPressから送信したメールがスパム判定される理由

 
WordPressのメール送信処理は、PHPの mail()関数が利用されています。
この mail()関数は、同じくメール送信関数である mb_send_mail関数と同様に、最終的には WordPressが置いているサーバに設定してある sendmailプログラムを通してメールを送信する仕組みになっています。
 
この sendmailプログラムの設定が、スパム対策も含めて十分な設定になっていれば、sendmailプログラムからメールを送信しても何の問題も起こりません。
ですが、最近は、Gmailやプロバイダーのメールサーバなどが積極的にスパム対策を実施しているため、初期設定のままの項目が残っていたり、ちょっとした設定のミスがあったりすると送信したメールをスパムと判定されることが増えてきています。
 
 
というわけで、今回は、そのスパム判定を回避する方法として、プラグイン「SMTP Mailer」を使う方法を解説します。
 
 
ちなみに「WordPressのメール送信処理」という表現をしていますが、WordPressのシステムから送信するメールだけではなく、Contact Form 7、MW WP Formといったメールフォームのプラグインから送信されるメールも同じです。
 
Contact Form 7、MW WP Formのプラグインに関する解説は「Contact Form 7使い方詳細解説・WordPressメールフォーム」「MW WP Formの使い方詳細解説・WordPressの確認画面付フォーム」にそれぞれ記事を書いています。
 
また、自作でメール送信フォームを作る場合に必要な関数の解説については「wp_mail()関数でWordPressのスパム対策済のメールフォーム作成」に記事を書いていますので、参考にしてください。
 
 

スパム判定されないための対応方法の仕組み

 
メールの送信処理をイメージにしたものが下記のイラストになります。
この解説は、「Phpmailerでスパム回避!Gmail等のSMTPを経由するPHPのメールフォーム解説」でも同じ画像を使って解説しています。
 
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
 
1.の流れは、mail()関数や、mb_send_mail()関数を使って送信する場合です。
WordPressの標準的なメール送信の処理で、PHPでメールのヘッダ、送信先、タイトル、本文などを編集し、mail()関数関数を使って、sendmailからメールを送信します。
 
 
2.の流れは、この記事で解説する外部の SMTPサーバを利用して送信する場合です。
PHPでメールのヘッダや本文などを編集するところまでは同じですが、同じサーバ内にある sendmailプログラムからメールを送信するのではなく、外部の SMTPサーバに接続し、そこからメールを送信する方法です。
 
PHPのオリジナルのプログラムを作成する場合は、先に紹介した記事のように Phpmailerなどのライブラリを利用することになりますが、WordPressの場合は WP Mail SMTP、SMTP Mailerなどのプラグインを利用することで、外部の SMTPサーバを利用して送信することができるようになります。
 
 
一見難しそうですが、パソコンの Outlookなどのメールソフトを使ってメールを送信する時と同じ処理を、WordPressでも行えるようにしている仕組みなんです。
 
Outlookなどのメールソフトは、メールを編集する機能はありますが、メールを送信する機能はなく、また、パソコンの中にも入っていません。
ですので、実際にメールを送信する処理自体は、Gmailや契約しているプロバイダーの SMTPサーバを経由してメールを送信することになるのですが、それと同じことを WordPressのメール送信処理に持たせよう、という仕組みなのです。
 
そのため、この方法を使ってもスパム判定される場合は、Outlookを使って送信してもスパム判定されてしまう SMTPサーバだということになります。
 
 

WP Mail SMTPで発生する SMTPサーバ接続エラーを回避するオプション有

 
WP Mail SMTP、WP SMTP、Easy WP SMTPでWordPressのメールのスパム判定を回避」で記事を書いていますが、私はこれまでは、「SMTP Mailer」と同じ機能を提供する「WP Mail SMTP」を使ってきました。
ですが、「WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。」で記事を書いていますが、PHPのバージョンが 5.6以上(7.0系含む)の場合は、メール送信でエラーになるサーバがあることも確認しています。
 
というわけで、今回は、この PHPのバージョンによる SMTP接続エラーの問題もオプションで回避できる「SMTP Mailer」ご紹介するに至りました。
 
 
これまで「WP Mail SMTP」を使ってきた方は、functions.phpをカスタマイズして使い続けてもいいと思いますが、新しくプラグインを探している方は「SMTP Mailer」を利用するといいでしょう。
 
 

SMTP Mailerの設置方法解説

 

SMTP Mailerのインストール方法

 
WordPressのプラグインのインストール方法は、「WordPressプラグインの3つのインストール方法解説」に記事を書いていますので、そちらを参考にしてください。
 
 

SMTP Mailerの設定方法

 
SMTP Mailerをインストールして、有効化すると、ダッシュボードなどに「SMTP Mailer plugin cannot send email until you enter your credentials in the settings.」のメッセージが表示されるようになります。
 
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
 
「『SMTP Mailer』の設定ができていませんよ」というメッセージですので、さっそく設定をしていきましょう。
 
管理画面の左メニューの「設定」-「SMTP Mailer」から設定画面に遷移します。
 
 

SMTP Mailerの設定画面・General(一般設定)

 
下記が SMTP Mailerの General(一般設定)の設定画面です。
 
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
 
設定に際しては、利用する SMTPサーバの設定情報を参照しながら設定するといいでしょう。
 
また、下記 URLにマニュアルがあります、ということですが、英語になっています。
https://wphowto.net/smtp-mailer-plugin-for-wordpress-1482
 
 

SMTP Host(SMTPホスト)

 
利用する SMTPサーバのホストを入力します。
Gmailの場合は「smtp.gmail.com」になります。
 
 

SMTP Authentication(SMTPユーザ認証)

 
メールを送信する際に SMTP認証を使用するか、否かを指定します。
最近の SMTPサーバはおおよそ SMTPユーザ認証をしますので、ほぼ「true」のままでしょう。
Gmailの場合も「true」です。
 
 

SMTP Username(ユーザ名)

 
SMTPに接続するユーザ名を指定します。
SMTPサーバによっては、メールアドレスの「@」の前の部分だけの場合もありますし、メールアドレス全体の場合もあります。
Gmailの場合は、「example@gmail.com」のようにメールアドレス全体を指定します。
 
 

SMTP Password(パスワード)

 
SMTPに接続するユーザのパスワードを指定します。前項で指定するユーザのパスワードです。
 
 

Type of Encryption(暗号化のタイプ)

 
メールを送信する際の暗号化のタイプを指定します。
利用する SMTPサーバの設定方法として指定されている暗号化のタイプを指定します。
よく分からない場合は、デフォルトの「TLS」で送信できることを試してみるといいでしょう。暗号化に対応していない SMTPサーバの場合は「No Encryption」を選択します。
Gmailの場合は、「TLS」「SSL」のいずれかを指定します。
 
 

SMTP Port(SMTPポート番号)

 
SMTP接続する際に使用するポート番号を指定します。
使用するポートは、SMTPサーバごとに決まっていますので、指定されているポートを入力します。
ただ、一般的には、前項の「Type of Encryption(暗号化のタイプ)」で「TLS」を選択した場合は「587」を指定し、「SSL」を選択した場合は「465」を指定します。
「No Encryption」を選択した場合は、「25」を指定します。
Gmailの場合は、前項で「TLS」を指定した場合は「587」を指定し、「SSL」を指定した場合は「465」を指定します。
 
 

From Email Address(送信元メールアドレス)

 
送信元(FROM、送信者)のメールアドレスを指定します。
基本的には「SMTP Username(ユーザ名)」で指定したメールアドレスを入力します。
 
 

From Name(送信元の名前・送信者の名前)

 
送信元(FROM、送信者)として表示される送信元の名前を指定します。
 
 

Disable SSL Certificate Verification(SSL証明書検証の無効化)

 
SSL証明書検証の無効化をする場合に指定をします。
設定した SMTPからメールが送信できない場合はチェックを入れて試してみてください。
 
 
PHPが 5.6(7.0を含む)にバージョンアップされる際に、それまでは標準設定は無効だった「ピア証明書(X.509v3証明書)」の検証が有効に変更になりました。
それにより、PHP Ver.5.5までは問題なかった SMTPサーバ経由のメール送信が、サーバによってはエラーになるようになってしまう事態が発生してしまいました。
 
そのため、先に説明したように「WP Mail SMTP」は、プログラムのメンテナンスを行わないと SMTP送信ができない状況になったわけですが、「SMTP Mailer」では、オプション設定として、ピア証明書の検証をするかしないかを設定できるようになっています。
 
そのため、「WP Mail SMTP」が動かなくなってしまったので乗り換えるという場合は、この「Disable SSL Certificate Verification(SSL証明書検証の無効化)」にチェックを入れてください。
 
チェックを外しても正常に送信される場合は、チェックを外しておく方がいいですね。
 
「ピア証明書(X.509v3証明書)」に関連する詳細な解説は「WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。」にも書いていますので、あわせて確認してみてください。
 
 

SMTP Mailerの設定画面・Test Email(テストメール)

 
SMTP Mailerの一般設定が終ったら、正しく設定が行えているか、確認のテストメールを送信するため「Test Email」のタブに遷移します。
 
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
 
この画面は、見てわかると思いますが、それぞれ下記の項目を入力します。
 
 

To(送り先メールアドレス)

 
テストメールを送信する先のメールアドレスを入力します。
 
 

Subject(タイトル)

 
テストメールの Subject(タイトル、件名)になるテキストを入力します。
 
 

Message(メッセージ)

 
テストメールの本文を入力します。
 
 

送信結果

 
前項の各項目を入力し、「Send Email」ボタンをクリックすると、テストメール送信が実行します。
 
送信した結果が、OKなのか、NGなのかがわ分かりにくいですが、下記の「Connection: opened」の様に SMTPサーバに接続して、その後の処理が実行されていれば、メールは送信されているでしょう。
 
メールを受信して確認しましょう。
メールが受信できていれば、設定は完了です。
 
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
 
下記の「SMTP Error: Could not connect to SMTP host.」の様にエラーが出ている場合は、何かが間違っていますので、「General(一般設定)」のタブに戻って設定内容を見直してみてください。
 
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
 
 

Server Info(サーバ情報)

 
「Server Info」のタブを表示すると、サーバーに関する情報が表示されます。
ですが、特に見る必要はないかと思いますので、解説も省略します。
 
 

メール送信プラグイン「SMTP Mailer」のまとめ

 
WordPressからのメールがスパム判定されてしまう、という問題の回避策として、SMPTサーバを経由してメールを送信する方法があります。
 
その SMTPサーバからメールを送信するためのプラグインとして「WP Mail SMTP」、「WP SMTP」、「Easy WP SMTP」などがありますが、その中で一番便利だったのが「WP Mail SMTP」でした。日本語にも対応していましたので。
 
ですが、PHPのバージョンが 5.6以上(7.0系を含む)になると、SMTPサーバによってはエラーが発生してしまう場合がありました。
そのため「WP Mail SMTP」をカスタマイズする必要があったのですが、その処理を管理画面からの設定によって対応できるようにしたのが「SMTP Mailer」です。
 
「WP Mail SMTP」をカスタマイズする方法でも何の問題もありませんが、プログラムを触りたくない方は、ここで紹介する「SMTP Mailer」を利用するといいでしょう。
設定項目は英語ですが、9項目しかありませんので何とかなるでしょう!!

 - WordPress

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPressの不正ログインを Force email loginで回避

WordPressのセキュリティ強化に Force email loginを使う理由と設定方法の解説をしています。

WordPressのフォームプラグイン「MW WP FORM」でメールが送信できない不具合の対応方法
WordPressのフォームプラグイン「MW WP FORM」でメールが送信できない不具合の対応方法

WordPressでメールフォームと言えば MW WP Form!そのMW WP Formでフォームを作成したものの、エラーでメールが送信できない!その原因と対処方法を解説。エラーが発生する意外な盲点もある。

XAMPP環境で WP-DBMANAGERでの復元でDBが壊れる

XAMPP環境で WordPressの WP-DBMANAGERを利用して DBの復元をしたら DBが壊れた。

Category Order and Taxonomy Terms Orderでカテゴリ・タクソノミーのタームの順番を並び替える

標準機能では行えないカテゴリやタクソノミーの並び替えを行うプラグインCategory Order and Taxonomy Terms Orderの紹介です。

WordPressプラグインの3つのインストール方法解説

プラグインのインストール方法の特徴とおススメの方法を理由を含めて解説していきます。

WordPressのログイン画面 URLを変更する 管理画面に Basic認証を設定する

ログインURLは誰でも知っています。そのまま使うとリスクが高まりますのでログインURLを変更し Basic認証で二重チェックをする方法を解説。

WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。
WP Mail SMTPはPHP5.6、7.0系ではメール送信時にエラーが発生。その対処方法。

PHPのバージョンを5.6(7系含む)にアップデートしたらプラグイン WP Mail SMTPを利用してSMTPサーバ経由して送信していたメールが送信できなくなった。その原因と対処方法を詳細解説。

Contact Form 7の使い方・引数で情報を受け渡す方法

Contact Form 7で引数の情報をフォームに編集する方法を解説します。

BJ Lazy LoadでWordPressを高速化!SEO効果絶大でPVもアップ!

Lazy Load系の処理を使い画像だけでなくiframe等表示スピードに影響があるものを総合的に対策。入れるだけで高速化するので使わない手はない!

WordPressで指定カテゴリにnoindexをプラグインなしで設定。特定の記事は外す処理も
WordPressで指定カテゴリにnoindexをプラグインなしで設定。特定の記事は外す処理も

指定したカテゴリのみnoindexをプラグインなしで設定する関数を解説。指定したカテゴリの中でも指定した記事はnoindex設定しないオプションを装備。その処理とnoindexを設定すべき理由を解説。