エス技研

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


wp_mail()関数でWordPressのスパム対策済のメールフォーム作成

      2017/03/10

WordPressのメール送信フォームでwp_mail()関数を

 

WordPressでメールの送信関数は wp_mail()

 
WordPressでメール送信フォームを作成する必要がありまして、メール送信に関して調査しましたので、その情報をお伝えします。
 
 
wordpressからメールを送信する際の関数は「wp_mail()」で、
 /wp-includes/pluggable.php
の 224行目(WordPress 4.2.2の場合)にある「function wp_mail...」に記述されています。
 
 

wp_mail()関数の最小構成

 
メール送信関数「wp_mail()」の最小構成は下記になります。
これだけでメールが送信できてしまいます。
 

 
 


 

wp_mail()関数の引数の詳細

 
メール送信関数「wp_mail()」は、先の最小構成だけではなく、下記の引数を設定することが出来るようになっており、Ccや添付ファイルの送信も出来るようになっています。
 

 
 

$to(送信先メールアドレス)

送信先のメールアドレスを編集します。
送り先が 1件だけならば変数にメールアドレスを入れるだけですが、送り先が複数件ある場合は、下記のように配列でメールアドレスを指定することで対応が可能です。
 

 
 

$subject(メールの件名)

メールの件名(subject)を入力します。
日本語でも全く問題ありません。
 
 

$message(メールの本文)

メールの本文を編集します。
メールの本文ですので、改行は「<br>」ではなく、普通の改行(\n)で編集します。
 
 

$headers = ”(メールのヘッダー情報)

ヘッダー情報をデフォルトの設定から変更したい場合に指定をします。
デフォルトの設定は、送信者名は「WordPress」、送信元のメールアドレスは「wordpress@yoursite.com」です(「yoursite.com」はサーバのドメインが自動的に編集されます。「www.s-giken.net」など「www.」の場合は「www.」は除外されます。)。
 
$headersの設定方法は、改行でつないでいく方法と配列で指定していく方法がありますが、配列で指定する方が簡単なような気がしますので、そちらで解説します。
 

 
Fromや Cc、Bccの設定は、3行目の Bccの様にメールアドレスだけの指定でも問題ありません。
Ccを複数にしたい場合は、2行目の Ccを複数個設定するだけで OKです。
HTMLメールを送信するときは、4行目のように「Content-Type」や「charset」を指定します。
ちなみに、4行目が指定されていない場合は「’Content-Type: text/plain; charset=UTF-8’」がデフォルト値となります。
 
 

$attachments = array()(添付ファイルの設定)

添付ファイルの設定をします。
添付ファイルの設定は、下記のように配列でファイルを指定するだけです。複数ある場合も配列で複数指定するだけです。
 

 
 

$return(戻り値)

wp_mail()関数を実行した結果が返ってきます。
成功なら「true」、失敗ならば「false」が返ってきます。
 
 

Return Pathを指定する方法

 
Return Pathの設定は、「$headers」で指定できそうですが、$headersでは指定できないようで、専用のアクションフックで指定をします。
下記を「wp_mail()」が実行される前に追記します。
 

 
 

WordPress wp_mail() + SMTPサーバ送信

 
サーバによっては、WordPressを含めて、PHPで作成するメール送信フォームから送信するメールがスパム扱いになるという不具合が発生する場合があります。
 
これは、PHPのプログラムの記述の方法が問題なのではなく、メールを送信するプログラムである sendmailの設定(スパム対策の設定)が十分でないことに起因することが多々あります(なので PHPのプログラムの記述方法を変えても改善しません)。
 
 
そんな不具合に対処するための方法が外部の SMTPサーバを経由してメールを送信するという方法で、PHPMailerというライブラリが提供されていますので、これを利用するのが便利です。
 
WordPressの場合は、PHPMailerを利用するためのプラグインとして WP Mail SMTP、Easy WP SMTP、WP SMTPなどが提供されていますので、これらのプラグインをインストールするといいでしょう。
詳しくは「WordPressのメールがスパム判定!?WP Mail SMTP、WP SMTP、Easy WP SMTPで対応」に記事を書いていますので、こちらも参照してください。
 
また、PHPでオリジナルのプログラムを組むときに PHPMailerを使いたい場合については、「Phpmailerでスパム回避!Gmail等のSMTPを経由するPHPのメールフォーム解説」の記事を参照してください。

 - WordPress

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

Crayon Syntax Highlighterでソースコードをキレイに編集する設定方法

PHP、HTMLなどのソースコードを紹介する際に見やすく編集してくれる Crayon Syntax Highlighterの設定の方法、利用方法の解説です。

評価点投票プラグイン10個を比較!WordPressで口コミサイトを構築

口コミサイトを作るために必要な評価点、レビューを投稿できるプラグインを探して評価。10プラグインをチェックし、8プラグインは詳細解説付き。

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

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

WordPressで特定のURL、ページ、ファイル単位でBasic認証を設定する方法

WordPressはURLはmod_rewriteにより疑似的に作られていますが、特定のページ、特定のURL、ファイル単位でBasic認証を設定する方法を解説します。ツールも紹介。

FC2からWordPressに引越しの際のデータ加工方法の解説

FC2からWordPressに引越しの際にデータを加工する必要がありますが、その加工方法の詳細を解説。秀丸の正規表現による置換を使い作業時間も軽減する方法や加工のポイントも解説。

Custom Post Type UIでカスタム投稿を設定・バージョン1.4対応解説

カスタム投稿をプラグインCustom Post Type UIを使って設定する方法を解説。バージョンアップにより設定する項目も増え、より柔軟な設定ができます。

Rich ReviewsでWordPressに口コミサイトを簡単に構築する方法

口コミサイトに必要なレビュー投稿機能を提供するプラグインです。独自のフォームをショートコードで編集する自由度が高い設計で、平均点の表示も用意されています。

BackWPupでバックアップ・リストア(復元)の具体的手順

BackWPupその9。バックアップファイルからのリストア(復元)の手順です。

WordPressグローバルナビ・メニューの編集の方法解説

グローバルナビであるメニューの編集方法の解説です。メニューの管理画面の使い方の解説と設定のポイント、テーマによって設定する項目が違う点などを解説します。

BackWPupでバックアップ・設定したJobの実行、ファイル一覧

BackWPupその4。バックアップ設定した Jobを実行する方法、ログの一覧、保存されたファイル一覧の解説です。