rui live note

WordPress、PHP、子育て、ブログ、将棋、コワーキング、子育て、群馬等に関する日々感じたことを書いているブログです

*

Contact Form 7 で大きいサイズの添付ファイルが送れない時の確認ポイント

      2017/05/12   WordPress, 開発 ,

  • このエントリーをはてなブックマークに追加
  • Pocket

tumblr_ndyvukSjNl1tubinno1_1280

WordPress の Contact Form 7 プラグインには添付ファイルを送れる機能もありますが、大きいサイズのファイルを添付とするとエラーが出て送れない場合があります。

そんな問題が起きたときに確認するべきポイントをまとめてみます。

Contact Form 7 の設定

まず何はともあれ Contact Form 7 自身の設定です。

何も指定していない場合、デフォルトで送信できるファイルサイズは 1MB(1048576 バイト)までという制限がかかっているので、そのチェックに引っかかっている可能性があります。

設定画面にて、ファイルのアップロード用タグのオプションに「limit」を追加することで、その制限値を指定することができます。

(例)limit にファイルサイズを指定
[file your-file limit:1048576]

limit の指定は数字だけ書けばバイト単位、kb(キロバイト)、mb(メガバイト)の単位を指定することも可能です。

(例)いずれも 1MB に指定する場合
[file your-file limit:1048576]
[file your-file limit:1024kb]
[file your-file limit:1mb]

PHP の設定

次に Web サーバの PHP 設定の確認です。

PHP にはファイルアップロードに影響する設定項目がいくつかありますので、そのどれかの制限に引っかかっているかもしれません。

upload_max_filesize

1ファイルあたりの最大アップロードサイズです。

post_max_size

1回の POST データの最大サイズです。

注意点として、upload_max_filesize は1ファイルあたり、post_max_sizeは1リクエストあたりの制限なので、例えばアップロードするファイルが2つあるとしたら post_max_size は upload_max_filesize の2倍は指定しておかないといけないわけですね。

memory_limit

PHP スクリプトが実行される時のメモリ使用量の上限です。

max_execution_time

PHP スクリプトが強制終了されるまでの最大時間(秒)です。

max_input_time

スクリプトが POST、GET などの入力を パースする最大時間(秒)です。

ファイルサイズが大きい場合はその分アップロードする時間がかかりますので、この設定にも気を付けておきます。

max_file_uploads

1リクエストで同時にアップロードできるファイルの最大数です。

設定例

使っているサーバ環境によって設定できる方法は異なると思いますが、php.ini や .htaccess で設定するサンプルを記載しておきます。

まず、php.ini の場合です。

; メモリ使用量の上限
memory_limit = 256M

; POST データの最大サイズ
post_max_size = 200M

; 1ファイルあたりの最大サイズ
upload_max_filesize = 10M

; スクリプト終了までの最大時間(秒)
php_value max_execution_time 600

; 入力をパースするまでの最大時間(秒)
php_value max_input_time 600

; アップロードできるファイル最大数
php_value max_file_uploads = 20

続いて、.htaccess の場合です。

# メモリ使用量の上限
php_value memory_limit 256M

# POST データの最大サイズ
php_value post_max_size 200M

# 1ファイルあたりの最大サイズ
php_value upload_max_filesize 10M

# スクリプト終了までの最大時間(秒)
max_execution_time = 600

# 入力をパースするまでの最大時間(秒)
max_input_time = 600

# アップロードできるファイル最大数
max_file_uploads = 20

SMTP サーバの設定

なかなか気が付かないところで、SMTP サーバ(メールサーバ)によって添付ファイルのサイズ制限がかかっている場合があります。

例えば、Postfix を使っている場合です。

まず、下記コマンドで添付ファイルの最大サイズを確認します。

$ postconf message_size_limit
message_size_limit = 10240000

上記の場合、10MB の制限がかかっていることになるので、設定ファイルの /etc/postfix/main.cf を編集して制限値を変更します。

$ sudo vi /etc/postfix/main.cf
message_size_limit = 10240000
   ↓
# 20MBに変更
message_size_limit = 20480000

変更した設定をリロードして反映させます。

$ sudo service postfix reload

まとめ

以上の点を確認すれば、ほとんどのケースで解決するかと思います。

ちなみに大きなサイズの添付ファイルをメールで送るのは、相手によっては迷惑をかけたり、送信先のセキュリティ環境ではじかれたりする場合もあります。そもそもの運用にも注意が必要ですね。

ad

この記事が気に入ったらシェアしてもらえると嬉しいです!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • follow us in feedly
  • RSS

  関連記事

クエスチョンマーク
EC-CUBEでプラグインインストール後に「’DOMDocument’ not found」エラーが出る場合の解決策

EC-CUBE でとある新しいプラグインを入れて有効化したら、システムエラーが出 …

ゴミの分別
だいぶスッキリ。WordPressのカテゴリーを整理してみた。

当ブログのカテゴリーを整理してみました。 今までカテゴリーは無計画に作っていまし …

テスト
「SonicGarden Study #05」を見てテストについて感じたこと

先日、Ustreamで配信されたソニックガーデンさん主催のオンライン勉強会「So …

IPアドレス
IPエイリアスで一つのNICに複数IPアドレスを割り当てる設定手順(CentOS)

IPエイリアス機能を使って、一つのネットワークインターフェースに複数のIPアドレ …

棋士出身地マップ
将棋棋士データベースで遊ぶ(4)〜OpenStreetMapで棋士出身地マップを作る〜

※この記事は「将棋 Advent Calendar 2016 – A …

Dropbox
BackWPupプラグインでDropboxへのバックアップがAPIエラーになる場合の対処方法

BackWPup というプラグインを使って、WordPress のバックアップを …

棋士出身地マップ
将棋棋士データベースで遊ぶ(5)〜棋士出身地マップに女流棋士を追加〜

※この記事は「将棋 Advent Calendar 2016 – A …

git2xserver
XSERVER に Git をインストールする手順

知人の XSERVER で作業をする機会があったのですが、標準で Git が入っ …

鍵
WordPressで不正アクセス履歴がチェックできるプラグイン「Crazy Bone(狂骨)」でセキュリティ意識を高めよう

とあるサイトのお客さんから、WordPress管理画面のログイン履歴が確認したい …

コンソール
さくらVPSでGNU GLOBALをインストールした時のメモ

先日から使い始めたさくら VPS 環境にGNU GLOBALをインストールした時 …