さくらのレンタルサーバーで、実行ファイル添付のメールを削除(その2)
その1(pearインストール、phpと.mailfilterの動作確認)の続きです
その1の動作チェックで保存した、実行型ファイルを添付したメールのソースファイル(下記では exemail.eml)を利用して Webから基本的なエラーやPEARの利用可を確認しておきます
exemail.php を下記のように書き換えて、Webから開いてみます
上記の解説
// エラー表示
エラーの可視化
// タイムゾーンとPEARのパス
php.ini の設定と重複していますが .mailfilter からの呼び出しには php.iniの情報が使われないようすなので、個別に記載
// PEAR
ライブラリの読み込み
// メール取得
stdinからメールを読み込む代わりに、その1で保存しておいたファイルを取り込みます
// メール読み込み
PEARへメールを読み込ませます
include_bodies, decode_bodies, decode_headers をtrueにします
※デコード類trueは、非ascii 添付ファイル名の解析に必要
作成した exemail.php を Webから開いて、エラーなどを潰していきます
エラーや警告が無く、ok と表示されれば、順調です
ここまでくれば、メールの添付をチェックして、exitで0(実行添付なし)か1(実行添付あり)を返すだけ
その3(完結)へつづく
その1の動作チェックで保存した、実行型ファイルを添付したメールのソースファイル(下記では exemail.eml)を利用して Webから基本的なエラーやPEARの利用可を確認しておきます
exemail.php を下記のように書き換えて、Webから開いてみます
- <?php
- // エラー表示
- ini_set('display_errors', 1);
- // タイムゾーンとPEARのパス
- date_default_timezone_set('Asia/Tokyo');
- set_include_path("/PEARスクリプトの場所/PEAR");
- // PEAR
- require_once("Mail.php");
- require_once("Mail/mimeDecode.php");
- // メール取得
- // $data = file_get_contents("php://stdin");
- // file_put_contents("/スクリプトの場所/exemail.eml", $data);
- $data = file_get_contents("/スクリプトの場所/exemail.eml"); // メール着信の代わり
- // メール読み込み
- $params['input'] = $data;
- $params['include_bodies'] = true;
- $params['decode_bodies'] = true;
- $params['decode_headers'] = true;
- $params['crlf'] = "\r\n";
- $maildata = Mail_mimeDecode::decode($params);
- echo "ok";
- exit(1);
- ?>
上記の解説
// エラー表示
エラーの可視化
// タイムゾーンとPEARのパス
php.ini の設定と重複していますが .mailfilter からの呼び出しには php.iniの情報が使われないようすなので、個別に記載
// PEAR
ライブラリの読み込み
// メール取得
stdinからメールを読み込む代わりに、その1で保存しておいたファイルを取り込みます
// メール読み込み
PEARへメールを読み込ませます
include_bodies, decode_bodies, decode_headers をtrueにします
※デコード類trueは、非ascii 添付ファイル名の解析に必要
作成した exemail.php を Webから開いて、エラーなどを潰していきます
エラーや警告が無く、ok と表示されれば、順調です
ここまでくれば、メールの添付をチェックして、exitで0(実行添付なし)か1(実行添付あり)を返すだけ
その3(完結)へつづく
コメント