wp_mailでファイル(画像)を添付する方法

wp_mailでファイル(画像)を添付する方法

wp_mailでファイルを添付する方法

wordpressでアプリ作成する際に、アプリ中の機能やwordpressの機能(投稿作成・更新)をトリガーにしてメールを送る必要がある場合があると思います。ユーザーや管理者への通知機能はアプリケーション構築の上で加えたい機能の一つだと思うので、今回はwp_mailを使用してメールにファイル(今回は画像)を添付する方法をご紹介します。

先取り

本記事の内容は集約すると下記になります。

  • wp_mailの第5引数に添付したいファイル名を指定する
  • 指定するフィアル名はファイルのシステムパスなので、テンプレートのディレクトリではない。
  • WP_CONTENT_DIRでシステムパスを取得できる
  • 第4引数のheaderを指定しない場合は、空文字を指定する

解説

基本的な使い方

構成

<?php wp_mail( $to, $subject, $message, $headers, $attachments ); ?>

パラメータ

必須かどうか 初期値
$to 文字列 or 配列 必須 なし
$subject 文字列 必須 なし
$message 文字列 必須 なし
$headers 文字列 or 配列 任意 空文字列
$attachments 文字列 or 配列 任意 空文字列

$attachmentsの指定

wordpressの定数WP_CONTENT_DIRを使用してファイルパスを指定します。
出力されるパスはもちろん環境によって異なりますが、以下のようにwp-contentディレクトリまでのパスを吐き出します。
Linux環境:/var/www/html/wp/wp-content
Windows環境:C:\Program Files\Apache Group\Apache2\htdocs.tokyoac\wp/wp-contentt
注意点としては末尾に「/」がついてこない点です。

<?php

    $to           = "送信先のメールアドレス";
    $subject      = "件名";
    $message      = "メッセージ";
    $attachments  = array(WP_CONTENT_DIR . '/path/to/file.png');

    wp_mail($to, $subject, $message, '', $attachments); 

?>

終わりに

今回はwp_mailを使ってファイルを添付する方法を紹介しました。ちなみに僕の場合は会員のみ画像をダウンロードできるページ内で、ユーザーが画像をダウンロードしたタイミングでサイト管理者にユーザー情報とダウンロードした画像の情報を含めて送信するという機能に対して使用しました。本記事ではメールへのファイル添付に焦点を当てているので、wp_mailのその他のパラメータについての解説は有りませんが、メールのヘッダーは基本的に十分すぎるぐらいに設定しておくのがいいそうです。

参考

wordpressカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。