Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@jun_ya

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

More than 1 year has passed since last update.

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で何しているの?という話です。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
jun_ya
mewtoneという会社でゲーム向けサーバインフラの設計やサーバプログラム設計やその辺りのコンサルなどをやっていますよ。というかmewtoneという会社のえらい人ですよ。ゲーム系インフラ、サーバプログラムで悩んでいる方はいますぐにアクセスだ(どこへ…)。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?