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