説明
wp_mail() は、メールを送信する関数です。
基本構文
wp_mail( string|string[] $to, string $subject, string $message, string|string[] $headers = '', string|string[] $attachments = array() ): bool
引数
$to:宛先$subject:件名$message:本文$headers:ヘッダー(From、Content-Typeなど)$attachments:添付ファイル
戻り値
送信を受け付けたら true。
使い方(サンプル)
wp_mail( 'info@example.com', 'お問い合わせ', '本文です' );
注意点
trueは送信完了ではなく、PHPのメール関数が受け付けたことを示します。- 迷惑メール扱いを避けるには、SMTPプラグインなどの利用を検討します。
- HTMLメールにするには、ヘッダーに
Content-Type: text/htmlを指定します。
実務での使いどころ
- フォームの内容を、管理者へメールで通知するとき。
- ユーザーへ、登録の確認メールを送るとき。
よくあるミスと対処
- 戻り値の
trueを、「届いた」と考えている。trueは、メールの送信処理に渡せたことを示すだけで、届いたことは、保証されない。 - HTMLメールを送るのに、
Content-Typeヘッダーを、指定していない。 - ユーザーの入力を、そのまま、
$headersに使っている。メールヘッダーインジェクションの原因になる。 - 送信元(
From)を、指定していない。
NG例
wp_mail( $to, '件名', '<p>HTML本文</p>' ); // HTMLとして送られず、タグがそのまま見える
OK例
$headers = array(
'Content-Type: text/html; charset=UTF-8',
'From: サイト名 <info@example.com>',
);
$sent = wp_mail( $to, '件名', '<p>HTML本文</p>', $headers );
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_mail() |
メールを送る |
is_email() |
メールアドレスの形式を、確認する |
sanitize_email() |
メールアドレスを、使える文字だけに整える |
関連項目
公式リファレンス:wp_mail() | Function | WordPress Developer Resources

コメント