wp_mail

説明

bool wp_mail( string | string[] $to, string $subject, string $message [ , string | string[] $headers = '' [ , string | string[] $attachments = array() [ , string | string[] $embeds = array() ] ] ] )
メールを送信する。

パラメータ

  • $to
    送信先メールアドレスまたはその配列を指定。
  • $subject
    メールタイトルを指定。
  • $message
    メール本文を指定。
  • $headers
    メールヘッダー情報を文字列または配列で指定(省略時は'')。
  • $attachments
    添付ファイルを文字列または配列で指定(省略時はarray())。
  • $embeds
    [6.9.0]埋め込みファイルを文字列または配列で指定(省略時はarray())。

返り値

メールを送信できた場合はtrueを。送信できなかった場合はfalseを返す。

注意

パラメータ$headersで送信元('from')が省略された場合は、名前は'WordPress'、メールアドレスは'wordpress@'サイト名('www.'から始まる場合は除外される)が適用される。
パラメータ$headersでコンテント情報('content-type')が省略された場合は、content-typeが'text/plain'、charsetが'UTF-8'が適用される。

[5.7.0]'pre_wp_mail'フィルターの返り値がnull以外の場合、メールは送信されず、その値が本関数の返り値となる。

[6.9.0]パラメータ$embedsが追加され、その内容は'wp_mail'および'pre_wp_mail'フィルターのパラメータにも反映される。

[6.9.0]マルチパートメッセージに対するContent-Typeヘッダーの処理を改善した。


使用例

  • 送信元を省略してメールを送信する。
    <?php @wp_mail( $to, $subject, $message ); ?>
  • 送信元を指定してメールを送信する。
    <?php
    $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
    $wp_email = 'wordpress@'.preg_replace( '#^www\.#', '', strtolower( $_SERVER['SERVER_NAME'] ) );
    $headers = "From: \"{$blogname}\" \n".
    	"Content-Type: text/plain; charset=\"UTF-8\"\n";
    @wp_mail( $to, $subject, $message, $headers );
    ?>

フィルター

[2.2.0]本関数の冒頭で'wp_mail'フィルターを呼び出す。パラメータ$paramsは本関数で受け取った5つのパラメータを格納した連想配列となる。
extract( apply_filters( 'wp_mail', $params ) );
$atts = apply_filters( 'wp_mail', compact( 'to', 'subject', 'message', 'headers', 'attachments' ) );
[5.7.0]'wp_mail'フィルターの直後に'pre_wp_mail'フィルターを呼び出す。パラメータ$returnにはnullが、$attsには'wp_mail'フィルターの返り値が格納されている。
$pre_wp_mail = apply_filters( 'pre_wp_mail', $return, $atts );
[2.2.0]メールの送信者メールアドレスの確定前に'wp_mail_from'フィルターを呼び出す。パラメータは確定前のメールアドレスとなる。
$from = apply_filters( 'wp_mail_from', $from_email );
[2.3.0]メールの送信者名の確定前に'wp_mail_from_name'フィルターを呼び出す。パラメータは確定前の送信者名となる。
$from_name = apply_filters( 'wp_mail_from_name', $from_name );
[2.3.0]メールのcontent-typeの確定前に'wp_mail_content_type'フィルターを呼び出す。パラメータは確定前のcontent-typeとなる。
$content_type = apply_filters( 'wp_mail_content_type', $content_type );
[2.3.0]メールのcharsetの確定前に'wp_mail_charset'フィルターを呼び出す。パラメータは確定前のcharsetとなる。
$charset = apply_filters( 'wp_mail_charset', $charset );
[6.9.0]パラメータ$embedsで指定された埋め込みファイルがある場合、埋め込み前に'wp_mail_embed_args'フィルターを呼び出す。パラメータ$argsには連想配列が格納されている。
$embed_args = apply_filters(
	'wp_mail_embed_args',
	array(
		'path'        => $embed_path,
		'cid'         => (string) $key,
		'name'        => basename( $embed_path ),
		'encoding'    => 'base64',
		'type'        => '',
		'disposition' => 'inline',
	)
);

アクション

[2.2.0]メールを送信する直前に'phpmailer_init'アクションを呼び出す。パラメータはPHPMailerクラスのオブジェクトが格納された配列となる。
do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );
[5.9.0]メール送信できた場合に'wp_mail_succeeded'アクションを呼び出す。パラメータ$mail_dataには送信内容を示す連想配列が格納されている。
do_action( 'wp_mail_succeeded', $mail_data );
[4.4.0]メール送信が失敗した場合に'wp_mail_failed'アクションを呼び出す。パラメータ$errorにはWP_Errorオブジェクト(エラー内容と送信内容)が格納されている。
do_action( 'wp_mail_failed', $error );

ソースファイル

/wp-includes/pluggable.php

最終更新 : 2025年12月04日 10:24



お勧め

meta_compare_key使ってみた(2019年3月19日 更新)

ブロックエディターの登場により、標準のカスタムフィールドを使う機会はかなり減った気がする。そんな中、5.1.0で追加されたのが、カスタムフィールド名(メタキー)に含まれる文字列を指定する'meta_compare_key'キーだ。

WP_List_Tableクラスの「一括操作」フォームを使ってみた(2018年5月27日 更新)

今回は「WP_List_Tableクラスを使ってみた」の続き。投稿一覧やプラグインページなどにある「一括操作」(Bulkアクション)フォーム対応に関するメモである。

テーマから投稿画像のサイズを指定する(2012年3月15日 更新)

投稿記事に挿入する画像サイズは、サムネイル(150×150)、中サイズ(300×300)、大サイズ(1024×1024)がデフォルトだが、テーマによっては別のサイズを指定したい場合はある。基本的には、「設定」-「メディア」の「メディア設定」ページで指定できるが、テーマ内のfunctions.phpで設定しておくとちょっと便利かもしれない。

ログインページを変える(2014年9月12日 更新)

WordPressの標準的な不正ログイン対策としては、ログインIDは'admin'を避けるパスワードはユニークで長くする、場合によってはアクセスできるIPアドレスを制限する、といった具合だろう。これらの他に何かできないものだろうかと、ちょっと考えてみた。

新規投稿時の本文プレースホルダーテキストを変える(2021年9月9日 更新)

ブロックエディターに影響を与えるフィルターは多数存在する。今回紹介するフィルターはその1つで、新規投稿時の本文ブロックのプレースホルダーテキストを変更するものだ。