WordPressでお問い合わせフォームを構築するとき、使用されるプラグインContact Form 7ですが、問い合わせのあったときに自分に送信されるメールが迷惑メール扱いになり、困ってしまったので、WP Mail SMPTというプラグインを導入しました。
どうして迷惑メール扱いになるのか?
WordPressからメールを送信する方法
WordPressはPHPで構築されていますから、mail関数か、mb_send_mail関数でメールを送信することができます。
また、WordPressの関数であるwp_mailでもメールを送信することができます。
Contact Form 7の中身を見てみると、contact-form-7/includes/mail.php の134行目にwp_mailがあります。
迷惑メールとされる一番の原因はメールヘッダーの設定ミス
私の経験的に、迷惑メールとされる一番の原因はメールヘッダーの設定ミスです。
そこで、Contact Fprm 7のヘッダーを確認してみると、それなりに設定されているので、問題はなさそうです。
ただし、MIME-Version: 1.0という記載はなし・・・
ちなみに別の案件で、メールフォームを自作した時のヘッダー設定は・・・
$from = ""; // 送信元 $from_mail = ""; // 送信元 送信メールアドレス $from_name = ""; // 送信元組織名 $header = "MIME-Version: 1.0 \r\n"; $header .= "Content-Type:text/plain;charset=iso-2022-jp \r\n"; $header .= "Return-Path: " . $from_mail . "\r\n"; $header .= "From: " . $from ." <" . $from_mail . ">\r\n"; $header .= "Sender: " . $from ." <" . $from_mail . ">\r\n"; $header .= "Reply-To: " . $from_mail . "\r\n"; $header .= "Organization: " . $from_name . "\r\n"; $header .= "X-Sender: " . $from_mail . "\r\n"; $header .= "X-Priority: 3 \r\n";
1行で書けや!と叱られそうです。ごめんなさい。
あと、上のコードでは省略していますが、文字コードをiso-2022-jpに変換する必要があります。
こうやって比較すると、どうもヘッダーの部分が怪しい。と思いプラグインを修正するのも面倒だし・・・
WP Mail SMTP プラグインを入れて解決
簡単に解決するため、WP Mail SMTPを導入!
SMPTというのは、Outlookなどのメールソフトやメールアプリでメールを送信するときのシステムのことです。
WP Mail SMTPで通常のメールと同じように送信しちゃえ!
ってことですね。
WP Mail SMTPの設定
上の画像のように設定すれば、OKです。
一応、順番に書くと
送信元アドレス:gmailでもOKです。できればサイトと同じドメインのものにしましょう。
送信者名:日本語でOK
返信先:普通のメールだと送信元アドレスが返信先になるので、チェックしておく
メーラー:Other SMTPを選ぶ
SMTPホスト:smtp.gmail.com
暗号化:SSL
SMTPポート:465
SMTP Username:ユーザー名を入力します。Gmailならメールアドレス。他でもメールアドレスの場合が多いです。
SMTP Password:メールのパスワードを入力します。GmailならGmailのパスワードかアプリパスワードになります。アプリパスワードについてはこの記事の下部にも設定方法が記載しています。
最後にSave Settings をポチッと
これで完了???
ちょい待て、Gmailを使うなら、次も設定する必要があるぞ!
Gmailの場合、Gmailで設定が必要
グーグルのセキュリティ向上のため、GmailでSMTPを使う際は、アプリパスワードの設定が勧められています。
ただし、2段階認証の設定をしていないと、アプリパスワードを設定できません。
googleアカウントに行く https://myaccount.google.com/
2段階認証をしていないとき
セキュリティを選択して、下にスクロールしていくと、「安全性の低いアプリのアクセス」があります。
推奨はオフですが「オン」にしましょう。
これで、メール送信が可能になります。
2段階認証をしているのなら、アプリパスワードを設定
googleアカウント https://myaccount.google.com/ のセキュリティ
グーグルへのログインでアプリパスワードを選択して、画面の指示に従ってアプリパスワードを作成しましょう。
作成中に、アプリパスワードを生成するアプリとデバイスを選択してください。
と表示されます。
アプリを選択 > その他(名前を入力) を選び
ご自身で判別できる名前を入力します。
「生成」ボタンが押せるようになったら、「生成」を押してパスワードを作成します。
最後にメールの送信テスト
全部設定が終了したらメールが送信されるか、実際のフォームから送信してみましょう。
なお、送信先と受信先を同じGmailのアドレスにすると、メールは届きませんのでご注意を!