Help us understand the problem. What is going on with this article?

MW WP Formで投稿された画像へのリンクを管理者メールに貼り付ける

WordPressのメールフォームプラグインMW WP Formの管理者あてメール送信機能は、画像アップロードタグ mwform_image を使うとアップロードした画像がそのままメールに添付されるようです。しかし、画像ファイルのサイズが大きいと(メガ単位?)、場合によってはメールサーバで拒否られることもあるため、具合が良くありません。

ということでメールフォームでアップロードした画像をそのままメールに添付するのではなく、閲覧可能な添付ファイルへのリンクとして管理者当てメール本文に記述できればいいんじゃなかろうか?ということで対応してみました。

まずWM WP Form管理画面の「管理者当てメール設定」の本文に、mwform_imageタグのname要素を書き込みます。例えばフォーム画面で

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

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

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

{画像ファイル}

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

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

次に送信されるメールから画像の添付をなくす方法ですが、こちらは wp-content/plugins/mw-wp-form/functions.php ファイルに 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_image タグだけではなく mwform_file でも使えそうな気がします。そしてタグ名を「管理者当てメール設定」に記述すると閲覧可能な添付ファイルへのリンクがメールにかかれます。つまり、そのURLをクリックすれば添付ファイルがみれる、ということです。なのでそのリンク先のファイルに対してはそれ相応のリスクを考えておかなければなりません。「取引先リスト.xlsx」や「登録者会員個人情報リスト.xlsx」などのようなファイル名を見るだけで一部の界隈がざわめき立つような添付ファイルが発生するWordPress案件においては気をつけましょう、というかWordPressで何しているの?という話です。

Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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