エス技研

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.

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

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

  関連記事

WordPress 画面が真っ白になる対応の一つ デバッグモード

WordPressで画面が真っ白になる不具合があった場合などのために用意されているデバッグモードの解説です。

seesaaからWordPressに引越。インストールなど必要な全てを解説

seesaaブログからWordPressへの引越し解説。他のブログにはないseesaaブログからcanonicalとリダイレクトの設定方法を実装!

Captchaを使って WordPressのコメントスパム対策をする

コメントスパム対策として入力させない対策の一つとしてCAPTCHAという方法がありそれを簡単に実装できるプラグインCaptchaの解説です。

WordPress データベースを管理するための強い味方のプラグイン WP-DBMANAGER

データベースを管理するための強い見方のプラグイン「WP-DBMANAGER」の使い方の説明です。

SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応
SMTP Mailerでスパム判定回避。WP Mail SMTPで発生する送信エラーも対応

WordPressからのメールをスパム判定されずに送信する「SMTP Mailer」の解説。SMTP MailerはPHP 5.6、7.0になってもSMTP接続でエラーにならない設定を搭載しているのが特徴。

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

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

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

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

タクソノミーの一覧をショートコードで編集・ソート機能付き・wp_list_categories

カスタムタクソノミーのターム一覧をショートコードで編集する方法の解説です。Category Order and Taxonomy Terms Orderを利用してソート機能を追加したバージョンです。

Broken Link Checkerのリンク生死チェックでサイトの品質向上!SEO対策!

Broken Link Checkerは記事内のリンクのリンク切れチェックをし自動的にリンク切れの対処をします。リンク切れは一覧表示されますので手動での処置も可能です。

Advanced Custom Fieldsのカスタムフィールドの登録上限が max_input_varsに影響する問題の対処方法

Advanced custom Fieldsには登録できるフィールド数に上限があります。php.iniのmax_input_varsによる制限ですが、フィールドグループを分割することで解決できます。