画像添付 PHPメールフォーム Lemonform 使用方法

まずはダウンロード

https://rimrt.com/lemonform/

ダウンロードし、zipを解凍すると以下のようなフォルダ構成になっています。

有料版

ライト無料版

無駄なファイルは入れていないので全部サーバーにUPすれば動くのですが、configにて設定だけは必要です。

設定ファイルの中身は以下です。

※PHPmailerなし版とライト無料版はメール送信方式はありません。
※ライト無料版は動画設定、入力フォームの場所変更機能はありません。

無料版UPDATE(2025/7/1)

      'ng_words' => [ 'セミナー', '**', '**','**', '**', '**', '**'], // NGワードによる投稿ブロック設定
      'ng_message' => '',// NGワードが検出された場合に表示するメッセージ

無料版にNGワード設定機能を追加しました!
設定したキーワードがあるとng_messageを出せます。

config(設定ファイル:有料版)

   'config' => [
   
   // ▼ メール送信方式 ('mail' = PHP標準 / 'smtp' = PHPMailer使用)
'mailer' => 'mail', //  'smtp' or 'mail'切替

// ▼ SMTP送信用設定(mailer => 'smtp' のとき有効)
'smtp_host' => 'smtp.****.com',   // SMTPサーバーアドレス sample.com等
'smtp_port' => '465',                  // SMTPポート(587 = TLS、465 = SSL)
'smtp_user' => '***@****.com',    // SMTPログイン用ユーザー名
'smtp_pass' => '*****',  // SMTPパスワード
'smtp_secure' => 'ssl',               // 'tls' または 'ssl'

   
      // ▼ メール送信設定
      'to_email' => '***@***.com', 
      'from_address' => '***@***.com', //ドメイン入りの物を使用してください
      'bcc_email' => '', 
      'require_fields' => [ 'お名前', 'email' ], //必須キーワード
      'secret_key' => '***ここに安全なランダム文字列を入力してください***', 
      'form_base_url' => '', // 公開URLにおける フォルダ場所

      // ▼ プレビュー
      'enable_preview' => true, // プレビュー画面 true:あり/false:なし
      'use_images' => true, // 画像添付を許可するか
      'use_videos' => true, // 動画添付を許可するか

      // ▼ 画像添付設定
      'delete_after_minutes' => 3, // 画像と動画の一時ファイル削除時間(分後)
      'max_image_size' => 2 * 1024 * 1024, // 画像1枚あたり最大サイズ(例:2MB)
      'max_image_count' => 2, // 最大画像枚数
      'save_images' => false, // false: 送信後削除
      'image_path' => __DIR__ . '/tmp/', // 画像保存先(サーバー内)
      'image_url' => './tmp/', // ブラウザ表示用URLパス


      // ▼ 動画添付設定
      'max_video_size' => 3 * 1024 * 1024, // 動画1本あたり最大サイズ(例: 3MB)
      'max_video_count' => 1, // 最大動画数(例: 1件まで)
      'save_videos' => false, // false: 送信後削除
      'video_path' => __DIR__ . '/mtmp/', // 動画保存先(分離)
      'video_url' => './mtmp/', // 削除用パス

      // ▼ 自動返信
      'auto_reply_user' => true, // 【ユーザー】する/true しない/false
      'auto_reply_admin' => true, // 【管理者】する/true しない/false

      'attach_images_to_user_mail' => false, // 【ユーザーに画像添付】する/true しない/false
      'attach_videos_to_user_mail' => false, // 【ユーザーに動画添付】する/true しない/false

      // ▼ 表示制御・ブロック
      'admin_mail_subject' => '【お問い合わせ】フォームからの送信テキスト', // 管理者あてメールの件名
      'admin_footer_note' => '※このメールは管理者用通知です', // 管理者あてメールのフッター文
      'user_mail_subject' => '【自動返信】お問い合わせありがとうございます', // 自動返信メールの件名
      'from_name' => 'お問い合わせ窓口', // 差出人名(Fromヘッダー用)
      'block_foreign_ip' => true, // 海外IPの簡易ブロック(true = 有効)
      'blocked_domains' => [ 'spam.com', 'temp-mail.org' ], // ブロックするドメイン一覧
      'redirect_url' => 'thanks.html', // 送信完了後のリダイレクト先
      'form_url' => '', // フォームの場所(未指定なら index.php)
      'recaptcha_secret' => '', //reCAPTCHA v2 シークレット キー
   ]
'message' => [
  'return_header' => <<<EOD
{{onamae}} 様

この度は、お問い合わせいただきありがとうございます。
以下の内容で送信を受け付けました。
内容を確認の上、ご連絡いたしますのでしばらくお待ちくださいませ。

--------------------------------------------
■ ご入力内容
--------------------------------------------
EOD,

  'return_footer' => <<<EOD
────────────────────
このメールは自動返信です。内容にお心当たりがない場合は、
お手数ですが破棄してください。
────────────────────
EOD
]

‘to_email’と’from_address’の設定

まず最低限必要なのはメールアドレスです。
‘to_email’と’from_address’の***@***.comを使用するメールアドレスに書き換えます。

from_addressはドメイン入りの物が必要です。
設置しているサイトと違うドメインの物を入れると受信されない仕様のサーバーが多いです。

面倒でも新たに自動返信用メールアドレスを用意するのがおすすめです。
‘to_email’はGメールのアドレスでも構いません。

※Gメールの受信で最初はスパム扱いされることもあるのでゴミ箱を確認し戻してみてください。

送信を複数設定することができます。(いわゆるCC=カーボンコピー)
CCは送信されたユーザー全員が見れるためその点は注意が必要です。

※CC設定は有料版の機能です

設定方法は、

'***@example.com, ***@example.com'

と「,」区切りにします。

'bcc_email'

送信先を表示しないで別のメールアドレスに送ることもできます。(BCC=ブラインドカーボンコピー)
同じように複数設定可能です。
※BCC設定は有料版の機能です

'require_fields' => [ 'お名前', 'email' ],

[ ‘お名前’, ‘email’ ]で必須キーワードを設定できます。input のname属性で指定します。
お名前とemailは必須になっています。

※nameはわかりにくい、または被らないようあえて日本語の「お名前」にしています。

増やす場合は、,’ふりがな’ 等「,」区切りにします。

例:[ ‘お名前’, ‘email’, ‘ふりがな’ ]

'secret_key' => '***長めの文字列***',

シークレットキーを指定します。長めの文字列に変更してください。

'form_base_url'

configがあるフォルダです。空白でもOKですが、index.php(フォーム)を移動する場合は入力してください。

wordpressでの設置方法

少し上に戻りますが、メール送信方式では

'mailer' => 'mail',

が初期値です。

ここまでを入力しサーバーにアップロードしindex.phpにアクセスしテストしてみてください。
PHPのバージョンが7以下だと動かない設定になっていますので、その点も注意です。

SMTPを使う

有料版はSMTP(Simple Mail Transfer Protocol)による送信が可能です。

'mailer' => 'smtp',

に書き換えます。

各種設定情報は、レンタルサーバーにより違います。

'smtp_host'
  • ロリポップ:smtp.lolipop.jp
  • heteml:mail***.heteml.jp
  • XSERVER:sv****.xserver.jp

で試しています。
さくらサーバーは、SMTP送信は試していません。
また、さくらサーバーの場合はドメイン管理が別会社だったりするとMXレコードなどの設定が必要でした。
DMARC / SPF / DKIM なども必要です。

  • SPF(送信元IPの認証)
  • DKIM(メール内容の署名)
  • DMARC(SPFやDKIMの結果をどう扱うかのポリシー)

自動で対応してくれるサーバーもありますが、手動の物もあります。
設定をしていないとGメールやキャリアメールなどでも届かないことがあり難儀するところでもあります。

ロリポップ(スピードプラン)、ヘテムル、エックスサーバーで動作テストをしています。
動かない場合はsmtpではなくmailを使用してください。

AWS

補足になりますが、AWSなどでの運用は、mail関数での送信は使えないとのことです。
SMTPだけでも使えるわけではなく、スパムメール対処に厳しくしており、Amazon SES(Simple Email Service)を使う前提になっています。
AWSは高機能でサーバーの設計ができるので、「なんでもできる」かもしれませんが、それ相応の知識が必要です。
当メールフォームは基本的にレンタルサーバーでの使用を想定しています。

▼ プレビュー以降 の設定

'enable_preview' => true,
'use_images' => true,
'use_videos' => true,

プレビュー画面を出すか出さないか、ファイル添付機能を使用するか・しないかの設定が可能です。
これ以降は、

true/false

のどちらかを記入し設定します。

注釈があるのでそれにそって、設定をお選びください。
yes/noや0/1などでは動きませんのでご了承ください。

画像添付設定

画像を送信したり、送信前に確認のためUPしたあとのファイルを消す時間の設定ができます。
基本的には使用しないファイルは消しておくのをおすすめします。

'max_image_size' => 2 * 1024 * 1024,

画像の容量も設定できます。上記で、2→3にすると3メガになり3メガまでという設定になります。
ただ、PHPですのでPHP.iniやレンタルサーバーの管理画面で設定を変更すればそちらが優先されます。

基本的にはあまり大きな画像や動画をいくつも扱わないほうが無難です。

'image_path'
'image_url'

上記で一時ファイルの置き場所フォルダを指定することができます。
あまり動かさないほうがおすすめです。

'auto_reply_user' => true,
'auto_reply_admin' => true,

'attach_images_to_user_mail' => false,
'attach_videos_to_user_mail' => false,

動画や自動返信設定も、

true/false

で指定します。

表示制御・ブロック の設定

'admin_mail_subject'
'admin_footer_note'
'user_mail_subject'
'from_name'

表示制御・ブロック以降では意外と重要な、ユーザーへの送信メールのひな型文を設定できます。

'【お問い合わせ】フォームからの送信テキスト',

「’」や「,」が欠けているともちろん構文エラーで動かなくなるため注意してください。

あまり長すぎても見栄えが悪くなるので適切な長さが必要と思います。
また管理者側へのメールも変更できるため、振り分けや集計などに工夫するのにも変更がしやすくしています。

'block_foreign_ip'

簡易的な外国IPアドレスからの送信を防ぐ機能を盛り込んでいます。回線により、スマホから入力してみたところ海外扱いになってしまったこともあり、送信ができない場合はfalseにしてください。
ですが、少しでもいたずらを防ぐため初期ではtrueにしてあります。

'blocked_domains'

ドメインレベルでブロックする機能も付けています。「gmail.com」などにするとGメールはすべてブロックされます。
個別のアドレスは設定不可です。

'redirect_url'

送信後にリダイレクトするファイルです。https://****.com/url/ 等URLを指定してもOKです。
自由なためグーグルアナリティクスやタグマネージャーも設置しやすくしています。

初期設定では同じフォルダのthanks.htmlにパラメータを付けてリダイレクトするようになっています。
send=ok / send=fail で表示が変わります。

'form_url'

index.phpを移動した場合入力します。wordpressなどで別の場所にある場合使用します。
https://****.com/url/ 等 URLを入力すればOKです。
初期値は空白になっており、同フォルダ指定としています。

'recaptcha_secret'

基本的にV2で前提設定になっていますがV3も可能です。

グーグル reCAPTCHAを設定します。
reCAPTCHA

アカウントログインのほかに登録が必要で、同時にグーグルクラウドプラットフォームを登録されそうになったりと、設定するのがわかりにくくなっています。

https://cloud.google.com/recaptcha-enterprise/docs/migrate-recaptcha?hl=ja

↑また変わってしまう可能性もありますが、ログインし reCAPTCHA 管理コンソール から管理画面に行けます。

フォームにも記述が必要です。

<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response">

name=”g-recaptcha-response”を指定するとlemonformでは確認画面にhiddenがでないようになっています。もちろんユーザー送信からも除外されます。


<script src="https://www.google.com/recaptcha/api.js?render=あなたのサイトキー"></script>
<script>
grecaptcha.ready(function() {
    grecaptcha.execute('あなたのサイトキー', {action: 'submit'}).then(function(token) {
        document.getElementById('g-recaptcha-response').value = token;
    });
});
</script>

CSV TO FORMでも設定できるようにはなっています。

message以降

送信メールのひな型です。
オリジナルの物に記述を変更してください。

アップロード

configを編集してサーバーにアップロードしエラーが出ていなければ使用可能です。
サーバーによってはフォルダへの画像保存や作成やパーミッションの変更など手動の作業が必要かもしれません。

configで構文エラーになると動きませんので、バックアップを取っておくことをおすすめします。

サンプルフォーム(無料版)

実際に送信できる、reCAPTCHA付きサンプルを設置しました。ぜひテストしてみてください。
お問い合わせも可能です。

https://rimrt.com/lmform-sample/