エス技研

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.

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

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

  関連記事

Search RegexでWordPress投稿の文字列を検索・置換する使い方解説

WordPressの投稿テキストを検索、置換するプラグイン Search Regexの使い方の詳細解説です。

WordPressの画像ファイルアップロード・メディアの使い方解説

画像ファイルをアップロードするメディアの使い方解説。アップロードしたファイルの管理や編集、ファイルのURL、アップロード先の解説。

BackWPupでバックアップ・Jobの設定・保存先の情報設定

BackWPupその3。Jobのバックアップファイルの保存先の設定についての解説。

WP Multibyte PatchでWordPressの管理画面のイタリック体を解消

管理画面の一部の文字がイタリック(斜体)になっているのはプラグイン「WP Multibyte Patch」が有効になっていないためです。日本語を使うには必ず有効化しましょう。

Edit Author Slugで WordPressの不正ログイン・不正アクセスを回避

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

Custom Field Templateで簡単にカスタムフィールドをフル活用

カスタムフィールドを簡単に設定するプラグイン。簡単にカスタムフィールドが管理で来て作業効率が数倍にアップします!

WordPressの投稿プレビューのURLを変更する方法

プレビューを表示する際のURLを変更する方法の解説。「サイトアドレス (URL)」に基づいて編集されるURLを任意のURLに変更する場合の方法とその解説を行います。

WordPressのプラグイン WP-DBMANAGERを使って PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップ

WP-DBMANAGERを使って WordPress以外の PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップする方法を解説。

Custom Post Type UIでカスタム投稿を設定し編集する方法解説

カスタム投稿を追加、管理するプラグインCustom Post Type UIの使い方の解説です。プラグインの解説ではあるものの、カスタム投稿の仕様の解説でもあります。

WordPressの投稿データ(記事データ)の管理方法

投稿の登録の方法、投稿データの管理方法の解説。MetaManagerなどのプラグインを入れた場合の入力ボックスを表示させる方法についても解説します。