WordPressで読者登録機能がつけられるプラグイン「Subscribe2」を使ってみたんですが、メールが送れない問題にぶち当たりました。
インストール後、設定をいじくってテストしてみましたが、待てど暮らせどメールが来ない。
迷惑メールに引っかかってるのかと思いきや、そもそもメール自体が送られていない…
今回のは久々のドハマりだったので、自分用に残しときます。
スポンサーリンク
原因
色々調べていくと、どうやらWordPressのメールの送信セキュリティに引っかかってるようでして。
サイトのドメインと、メールの送信元のドメインは一致していないと送ってくれないんだそうです。
このサイトだと、ponkotsu-fujoshi.comからの送信元は「〇〇@ponkotsu-fujoshi.com」じゃないとダメだというわけ。
というわけで、管理画面の設定からメール設定してみましたが、うんともすんとも言わずにお手上げ状態…
辿り着いた2つの対処法
調べてみると、2つの対処法にたどり着きました。
functions.phpを書き換える方法
functions.phpでフックをかけて、返信先と送信元を書き換えるというやり方です。
function change_replyto( $header ) { $header['From'] = '任意のメールアドレス@自分のサイトのドメイン'; $header['Reply-To'] = '任意のメールアドレス@自分のサイトのドメイン'; return $header; } add_filter( 's2_email_headers', 'change_replyto' );
大体の方はこれでうまくいってるみたいですが、なぜか私はうまくいかず…
WP Mail SMTPを使う方法
めげずに一生懸命調べていると、「WP-Mail-SMTP」というプラグインを遣えば上記の方法と同じ事がでると!
WP-Mail-SMTPはSMTP経由でメールが送られるようになるプラグイン!
これに任意のメールアドレスを設定して、強制的に送信元と返信元に設定!
あとはこの下の部分のメーラー設定をすれば、メールが送られる…!!
それでも来ない
この鳥も腹立つ顔してるしよぉ…
暗号化の設定ミス
もうあきらめようかと思いましたが、やはり物事には原因があるわけで。
プラグインの設定ページから暗号化の項目を [ SSL ] に変更したところ、動きました。
レンタルサーバーはmixhostを使っていますが、なぜか [ TLS ] だと動かなかったんですよね。
今度は認証メールが届かない
よし!!これで完璧!!と思いきや、今度は登録時に送られる認証メールが届かないという事態に。
おう、そこまでやる気ならテメェプラグインごと消してやんよ…!!!と思いましたが、結局のところ凡ミスでした。
原因は、Subscribe2の設定でデフォルトページをわけわからんページにしていたこと。
この設定をちゃんと、固定ページで作成したメルマガ登録ページに変更したところ認証メールも届くようになりました。
まとめ
ポイント
- メールの送信元のドメインは一致させる
- 暗号化の設定を見直してみる
- Subscribe2のメール設定を見直してみる
も~自作テーマはほんとうまくいかない事が多すぎる(自業自得)
いやまあもうなんとなくで作っちゃってるのが悪いんですけどね…。
誰かのお役に立てれば幸いです。ガンバリマショ~