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のメールフォーム解説」でも同じ画像を使って解説しています。
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』の設定ができていませんよ」というメッセージですので、さっそく設定をしていきましょう。
管理画面の左メニューの「設定」-「SMTP Mailer」から設定画面に遷移します。
SMTP Mailerの設定画面・General(一般設定)
下記が SMTP Mailerの General(一般設定)の設定画面です。
設定に際しては、利用する 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」のタブに遷移します。
この画面は、見てわかると思いますが、それぞれ下記の項目を入力します。
To(送り先メールアドレス)
テストメールを送信する先のメールアドレスを入力します。
Subject(タイトル)
テストメールの Subject(タイトル、件名)になるテキストを入力します。
Message(メッセージ)
テストメールの本文を入力します。
送信結果
前項の各項目を入力し、「Send Email」ボタンをクリックすると、テストメール送信が実行します。
送信した結果が、OKなのか、NGなのかがわ分かりにくいですが、下記の「Connection: opened」の様に SMTPサーバに接続して、その後の処理が実行されていれば、メールは送信されているでしょう。
メールを受信して確認しましょう。
メールが受信できていれば、設定は完了です。
下記の「SMTP Error: Could not connect to SMTP host.」の様にエラーが出ている場合は、何かが間違っていますので、「General(一般設定)」のタブに戻って設定内容を見直してみてください。
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項目しかありませんので何とかなるでしょう!!
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Never Let Me Goで会員制サイトの退会機能を実装
会員制サイトで退会する機能を提供するプラグインの設定方法の解説。Theme My Loginなどの会員登録のプラグインと組み合わせて利用します。
-
WordPress初心者向け フォルダ構成・データベース構成解説
BackWPupその11。バックアップを取るために必要なファイル、データベースの解説をします。
-
seesaaからWordPressに引越。インストールなど必要な全てを解説
seesaaブログからWordPressへの引越し解説。他のブログにはないseesaaブログからcanonicalとリダイレクトの設定方法を実装!
-
Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法
Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。
-
タクソノミーの一覧をショートコードで編集・ソート機能付き・wp_list_categories
カスタムタクソノミーのターム一覧をショートコードで編集する方法の解説です。Category Order and Taxonomy Terms Orderを利用してソート機能を追加したバージョンです。
-
アクセス5倍増!FC2、seesaaからWordPressに引越結果をレポート
FC2、seesaaからWordPressに引越しでアクセス数がどう変わるかのレポート。canonical、meta refresh設定とWordPressの集客力の検証しています。
-
WordPressのカテゴリやタクソノミーにカスタムフィールド項目を追加する方法
WordPressのカテゴリやタクソノミーに編集する項目を追加する方法の解説。Advanced Custom Fieldsを使うと簡単。テンプレートに記述する方法も解説。
-
WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法
WordPressはURLはmod_rewriteにより疑似的に作られていますが、特定のページ、特定のURL、ファイル単位でBasic認証を設定する方法を解説します。ツールも紹介。
-
WordPressの管理画面ログインURLの変更方法解説
管理画面のログインURLの変更は極めて有効なセキュリティ向上の方法ですので、その解説を行います。
-
WordPressのおすすめプラグイン記事のまとめ一覧
WordPressプラグインのまとめ。WordPressのプラグイン紹介記事も多くなってきたため紹介コメント付のプラグインまとめ記事を作成しました。