レスポンシブ・メールフォームの添付ファイルアドオンについて

添付ファイル
レスポンシブ メールフォームには添付ファイル機能のアドオンをいつでも追加することができます。
(今や更新していないWordPressプラグイン版のほうには対応しておりません)

現在の最新バージョンは2022年5月19日公開の4.0.1です。
参考ページ:プログラムをアップデートするの際の思想について

各バージョンごとのアップデート内容については、このページ最下部の「アップデート履歴」に記載してあります。
f

添付ファイルアドオンはその名の通り「メールフォームに添付ファイル機能を付ける」のが主な機能になります。

レスポンシブ・メールフォームに添付ファイルアドオンを追加設置した直後の状態では、以下のように複数選択NGのファイル選択ボタンが6つ複数選択OKのファイル選択ボタンが1つあります。
添付ファイルアドオン追加後の状態

複数選択NGのボタンが6つ用意されていることに特に意味はなく、以下のように1つにしたり、
ファイル選択ボタンを1つ

逆に、以下のように10個に増やすことも可能です。
10個のファイル選択ボタン
あまり増やし過ぎるとアップロードの通信・処理時間が長くなるし、サーバー側のアップロード容量制限に引っかかる可能性があるため、現実的には2~3個程度までにしたほうが良いのではないでしょうか。

ついでに紹介しておきますと、以下のように2つ以上の項目それぞれにファイル選択ボタンを設置することも可能です。
2つ以上の項目にファイル添付ボタン
このようにファイル選択ボタンを増減させるやり方は「メールフォームの添付ファイルアドオンの設置手順の解説」のページを参考にしてください。

添付ファイルアドオンの詳細な特長は以下のようになっています。

  • 設置メールサポート付き。
  • 他のアドオンと併用可能。
  • (バージョン3.0から種類が増えました)添付できるファイル形式はJPG、PNG、GIF、ZIP、PDF、DOCX(DOC)、XLSX(XLS)です。
  • (バージョン3.0から)画像ファイルを選択した際にプレビューを表示。
    (ZIP、Word、Excel、PDFファイルの設定がオフの場合限定)
  • 万が一のセキュリティを考えてサーバ上に添付ファイルのデータは一切保存しません。アップロードされたファイルをそのままメールに添付・送信して完了です。
  • 1つのファイル選択ウインドウにて複数のファイルを選択可能。
    (input要素のmultiple属性)
  • (自動設定されるようになりました)選択可能な拡張子をHTMLファイル側で設定可能。
    (input要素のaccept属性)
  • 選択されたファイルが許可された形式かどうかを、ページ移動前(送信前)にチェックする機能。
  • HTMLやJavaScriptでの設定は改ざんが容易なので、上記設定とは別にPHP側でも選択可能な拡張子を設定でき、偽装ファイルかどうかをチェックする機能。
  • (自動設定されるようになりました)アップロード最大容量をHTML側で設定可能。
    (input要素のMAX_FILE_SIZE)
  • 選択されたファイルがアップロード最大容量を超えていないかどうかを、ページ移動前(送信前)にチェックする機能。
  • HTMLやJavaScriptでの設定は改ざんが容易なので、上記設定とは別にPHP側でもアップロード最大容量の設定ができ、制限を超えた場合は受け付けない機能。

添付ファイルアドオン付きのメールフォームのサンプル
これはサンプルなので自由に送信しても問題ありません。
画像プレビュー機能が有効の状態になっています。(JPG、PNG、GIFだけを許可)

添付ファイルアドオン付きのメールフォームのサンプル
こちらのサンプルは画像(JPG、PNG、GIF)に加え、PDF、DOCX(DOC)、XLSX(XLS)ファイルも許可しているため、画像プレビュー機能が無効になっています。

この添付ファイルアドオンはバージョン3.0から「プレビュー機能」が実装されました。
ファイル選択のボタンは今まで通り以下のようになっていますが、
ファイル選択ボタン

画像を選択すると以下のようにサムネイルでプレビュー表示されます。
画像のサムネイル

複数選択OKのファイル選択ボタンでは、選択された画像が以下のように一覧表示されます。
画像の複数選択

入力内容確認アドオン」を併用した場合は、送信前の確認画面にもプレビュー表示されます。
送信前の確認画面

入力内容確認アドオンと併用した場合のサンプルはこちら。
入力内容確認アドオンと添付ファイルアドオンとの併用のサンプル

なお、設定ファイル(attachment-config.php)で画像ファイル以外(ZIP、PDF、DOCX、XLSX)のどれか1つでも許可していると、このプレビュー機能はオフになります。

その理由としては、そもそもZIPファイルの中身はプレビュー表示できないため、例えば画像ファイルとZIPファイルを選択した際に、

・画像ファイルだけはプレビュー表示されるのに、
・ZIPファイルはプレビュー表示されない。

という状態になると、「ZIPファイルをきちんと選択できているか?」とフォーム入力者が不安に感じてしまう可能性があるためです。

ちなみに、画像ファイル(JPG、PNG、GIF)だけを選択できる設定の時にプレビュー機能をオフにしたい場合は、以下のページ内の「プレビュー機能をオフにしたい場合」の部分でやり方を解説しています。
メールフォームの添付ファイルアドオンを追加した際のHTML構造の解説

説明
設置はaddonフォルダに関連ファイルをまとめて入れ、index.htmlを差し替えるだけでOKですので、つまづく可能性は低いと思われます。
すでにメールフォームを既存サイトに組み込んでいる場合は、HTMLファイルに数行追加するだけで動作します。

詳細な設置手順については、「添付ファイルアドオンの設置手順.txt」というテキストファイルが同梱されています。
それと同じ内容を以下のページでも公開しておりますので、購入前の方はぜひ参考にしてください。
添付ファイルアドオンの設置手順の解説

ファイルをアップロードする機能はセキュリティ面でリスクが増すものです。
そのため、PHPファイル側での設定を正しくしておくことが望まれます。


添付ファイルアドオンを追加したメールフォームがどのようなHTML構造になるかを以下のページで解説しています。
メールフォームの添付ファイルアドオンを追加した際のHTML構造の解説

メールフォームを既存サイトに組み込んだりCSSでデザインを変更しようとした際に参考にすると、想定外のデザイン崩れを防ぐことができるでしょう。

サーバのPHPのバージョンが5.6以降である必要があります。
しかし、PHPのバージョン5世代は2018年末でセキュリティサポートが終了しているため、可能であればバージョン7世代以降にしたほうが賢明です。
PHP (プログラミング言語)のリリース履歴 – Wikipedia

【補足】
このサイトにあるサンプルデモはすべてPHPバージョン8.0以降で動作しています。

単純な文字(テキスト)データだけを扱う「入力内容確認アドオン」と違い、画像データを扱うこの添付ファイルアドオンは、サーバによってうまく動作しないケースもありえます。(後述の「既知の問題点」も参照ください)

そのような可能性に備え、まずはこのアドオンを組み込んだだけの初期状態メールフォーム(上記のサンプルページのような状態)を本番サーバにアップし、添付・送信のテストをしてみてください
既存サイトに組み込むなどのカスタマイズ作業はそのテスト後にしたほうが、万が一正常に動作しなかった場合に原因の切り分けができるので、解決が早まります。

そして万が一、初期状態なのに正常に動作しない場合は、すぐにお問い合わせページからご連絡ください。
制作者である私が症状を確認・原因を特定し、そのサーバで正常動作するまでサポート、または修正対応いたします。(無償です)

レスポンシブ・メールフォームにはこれの他にも色々なアドオン(追加機能)がありますが、すべて併用することが可能です。
必要な機能だけを組み合わせてお使いください。

入力内容確認アドオン」と併用した場合、送信前の確認画面にもプレビュー画像が表示されるようになります。

入力内容確認アドオンと併用した場合のサンプルはこちら。
入力内容確認アドオンと添付ファイルアドオンとの併用のサンプル


価格は15,000円(税抜)となります。設置代行サービスをなくしたことで値下げしました。
しかし設置メールサポートはついておりますので、ご自身で設置をしてみてつまづいた際にはご質問ください。

【注意点】
設置メールサポートは「アドオンの設置」に関しての質問のみとなります。
ですので、アドオンなしの初期状態のメールフォームが正常動作している上でご購入ください。

設置方法の詳細に関しては、添付ファイルアドオンの設置手順の解説ページをご覧ください。
また、カスタマイズに関してのご質問は有償メールサポートを別途お申し込みください。

ご購入は以下からどうぞ。
ペイパルと銀行振込でのお支払いの場合は、料金のお支払いをしていただき、その入金確認後にメールで添付にてお送りする形となります。
それ以外のクレジット決済の場合は、お支払後にすぐダウンロードができますのでお急ぎの方にはおすすめです。

【レスポンシブ・メールフォームの添付ファイルアドオンのご購入】
ペイパルでお支払い
お問い合わせページからお申込み(銀行振込)
STORESでご購入(クレジットカード・コンビニ決済) (決済後ダウンロード可能)
このサイトでご購入(クレジットカード決済) (決済後ダウンロード可能)

【クレジット決済の注意点】
上記のペイパルと銀行振込以外の場合は、お支払後にアドオンファイルをすぐにダウンロードできます。

このサイトでのクレジット購入の場合は、入力必須な項目を最低限としている分、ダウンロードはそのセッション中(ブラウザを閉じるまで・または24分以内)にのみ可能となります。
再ダウンロードしたい場合は、お問い合わせページからご連絡くだされば、本人確認後にメール添付にてお送りいたします。

注意
このアドオンは現時点では通常版のバージョン5.1以降にのみ対応しています
それ未満のバージョンであったり、WordPressプラグイン版のほうには対応しておりませんので、ご注意ください。

  • メールフォーム本体のバージョンは「version.php」または「mailform.php」のファイルの冒頭に書いてあります。
  • 各アドオンのバージョンに関しては、アドオンフォルダの中にある「version.php」、または「アドオン名-config.php」に記載してあります。

また、普通に使用していてプログラム上のバグ(不具合)があった場合には、追加料金なしでバグ修正を行いますので、そのような際にもご連絡ください。
(お客様の手によってJavaScriptファイルやPHPファイルを独自カスタマイズされている場合は除く)

ロリポップやヘテムルのサーバの場合、SendmailではなくqmailというMTAを使用しているらしいです。
(MTAとはサーバ上でメールを送信するための機能のようなもの)

本来、電子メールの改行コードはRFC 2822(電子メールの規約)ではCR+LFらしいのですがこのqmailはLFらしく、添付ファイルアドオンを使用した場合、正しくメールに添付されない可能性があります。
(これは添付ファイルアドオンを購入したユーザーの方からの報告によって発覚しました)

PHPマニュアルのページにも以下のように書かれています。

メッセージが受信されなかった場合には、LF(\n)のみを使ってみてください。 Unix の MTA の中には、自動的に LF を CRLF に変換してしまう もの (有名なところでは、» qmail など) があります(もし CRLF を利用していた場合、CR が重複してしまいます)。 ただし、これは最後の手段です。というのも、これは » RFC 2822 に違反しているからです。PHP: mb_send_mail – Manual

なお、この症状は何回かに1度発生するようなものではなく、問題のあるMTAの場合は毎回画像が添付されませんのですぐに気付くことができます。
ですので、送信テストを1回実施して正常に画像が添付されていたら問題なしと言えます。

ご購入した方でもし上記のような症状が起きた場合、改行コードをLFにした修正ファイルをお送りいたしますのでご連絡ください。

2016/12/27 バージョン1.0
  • 公開。
2017/04/18 バージョン1.1 (本体5.1で動作確認済)
  • 通常版メールフォーム本体にアドオンとして追加することができるようになりました。
2017/05/25 バージョン1.2 (本体5.1~5.4で動作確認済)
  • ファイルチェックの際の不具合修正。
2017/08/28 バージョン1.3 (本体5.1~5.4で動作確認済)
  • mime_content_type関数の使用をやめ、finfoクラスを採用。これにより必要動作環境がPHP5.3.0以降となりました。
2017/12/14 バージョン2.0 (本体6.0で動作確認済。これ以降は本体5.*とは互換性がありません)
  • メールフォーム本体側がアップデートされたことに合わせて修正。
2018/04/12 バージョン2.1 (本体6.1~6.1.1で動作確認済)
  • 機能は変わりませんが、設置の際の設定作業が半分程度に減りました。
2018/06/09 バージョン2.2 (本体6.2で動作確認済)
  • iOS 11.3のSafariの不具合に対応しました。(添付ファイルアドオンを使用時にのみ発生するバグ)
  • attachment-config.php内で設定するアップロード容量制限の値を2MBに変更。
2018/07/12 バージョン2.3 (本体6.2で動作確認済)
  • MacのPCでZIPファイルを添付しようとした際に「未対応の形式のファイルです」とエラーになる不具合を修正。
2018/08/13 バージョン3.0 (本体7.0~7.1で動作確認済。これ以降は本体6.*とは互換性がありません)
  • Word、Excel、PDFファイルの添付に対応しました。
  • 画像ファイルを選択した際にプレビューが表示されるようになりました。(ZIP、Word、Excel、PDFファイルの設定がオフの場合限定)
  • エラーメッセージを表示する際のスクロール量に関する不具合を修正。
2018/11/26 バージョン3.1 (本体7.0~7.1で動作確認済)
  • Word2003までのWord、Excelのファイル(拡張子がdoc、xls)を添付しようとした際の不具合の修正。
2019/09/26 バージョン3.2 (本体7.2~7.2.1で動作確認済)
  • メールフォーム本体側がアップデートされたため、正常動作するようにこのアドオンも修正。
    (前バージョンと機能面での違いはありません)
2021/09/22 バージョン4.0 (本体8.0~以降で動作確認済。これ以降は本体7.*とは互換性がありません)
  • メールフォーム本体側がアップデートされたため、正常動作するようにこのアドオンも修正。
    (前バージョンと機能面での違いはありません)
  • その他、軽微なバグ修正。
2022/05/19 バージョン4.0.1 (本体8.0~以降で動作確認済)
  • ファイル添付時のメールのエンコード方式を変更。
提供サポートなど