LoginSignup
1
7

More than 3 years have passed since last update.

MW WP Formの管理者宛メール送信機能から画像の添付をなくす

Last updated at Posted at 2019-03-09

WordPressのメールフォームプラグインMW WP Formの管理者宛メール送信機能は、画像アップロードタグ mwform_image でのアップロード画像添付と画像ファイルへのリンクを含めることができます。これはとても便利なのですが、画像ファイルのサイズが大きいと(メガ単位?)、場合によってはメールサーバで拒否られることもあるため、使いどころが難しいです。

アップロードした画像は添付せず、画像ファイルへのリンクだけをメール本文に記述できればいいんじゃなかろうか?ということで対応してみました。(ページ下部に注記したことがあるのでそのへんも必ず読んで)

まず、管理者宛メールに画像添付および画像ファイルへのリンクを含めるには、WM WP Form管理画面の「管理者当てメール設定」の本文に、mwform_imageタグのname要素を書き込みます。

例えばフォーム画面で

[mwform_image name="画像ファイル" id="image"]

のようなタグを利用した時は「管理者当てメール設定」の本文には、

何か色々管理者当てメールの本文をだらだらと

{画像ファイル}

そのほか何か色々管理者当てメールの本文をだらだらと

このように {画像ファイル} というタグを埋め込みます。
こうするとアップロードした画像添付と画像ファイルへのリンクがメール本文に貼り付けられます。ここの画像添付でファイルサイズが大きいとメールサーバから拒否られる、ということです。

ということで、メール本文から画像添付をなくします。
例によって functions.php を編集することになるのですが、functions.php はテーマディレクトリの下に配置するのが通例のようでプラグインのカスタマイズなのになぜテーマのほうをいじらなきゃならないか、若干解せないです。
またテーマによってはディレクトリを直接変更するのは良しとしないこともあるみたいで子テーマを作ってから functions.php を設置してくれ、などもあります。
いちいち面倒くさい。まあしかし、こういった手間も作業時間として計上できるのでWordPress案件が賑わっているのでしょうね(辛口)。

(しれっと…)さて、テーマ(もしくは子テーマ化してから)のディレクトリに functions.php を以下の内容で作成します。
mwform_admin_mail_mw-wp-form-xxx に対する add_fileter() でメール本文の画像ファイルの添付を無しにしてしまうフィルターです。

function delete_attachment_for_admin_mail( $Mail, $values, $Data ) {
        $Mail->attachments = '';

        return $Mail;
}

add_filter( 'mwform_admin_mail_mw-wp-form-xxx', 'delete_attachment_for_admin_mail', 10, 3 );

mwform_admin_mail_mw-wp-form-xxxxxx の部分はMW WP Formが割り当てた番号([mwform_formkey key="ここの数字"])に置き換えてください。例えば [mwform_formkey key="123"] であれば、

add_filter( 'mwform_admin_mail_mw-wp-form-123', 'delete_attachment_for_admin_mail', 10, 3 );

上記のように mwform_admin_mail_mw-wp-form-123 になります。
これで管理者宛のメールはアップロードされた画像へのリンクがあるだけでファイル添付がなくなります。

ところで注記です。この方法は mwform_image タグだけではなく mwform_file タグでも使えそうな気がします。そして「管理者当てメール設定」にタグの要素名を記述すると閲覧可能な添付ファイルへのリンクがメールに含まれます。つまり、そのメールを見ることができれば誰であって添付ファイルがみれてしまう、ということです。
なのでそのリンク先のファイルに対してはそれ相応のリスクを考えておかなければなりません。「取引先リスト.xlsx」や「登録者会員個人情報リスト.xlsx」などのようなファイル名を見るだけで一部の界隈がざわめき立つような添付ファイルが発生するWordPress案件においてはこういった方法は使わないほうがいいですよ、というかWordPressで何しているの?という話です。

1
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
7