>カゴヤで添付された画像を保存するサンプル

2010/05/06 13:14

>fowardファイルとかは別途用意しておくこと

#!/usr/local/bin/php -q
//これはデフォでカゴヤにはいっている
require(“Mail.php”);
//これはhttp://pear.php.net/package/Mail_mimeDecode/download/からもってくる
require_once(“./mimeDecode.php”); // PEAR MimeDecode
//メールソースを標準入力から読み込み
$source = file_get_contents(“php://stdin”);
if(!$source) {
exit(); // 読み込み失敗
}
//メール解析
$params[‘include_bodies’] = true;
$params[‘decode_bodies’] = true;
$params[‘decode_headers’] = true;
$decoder = new Mail_mimeDecode($source);
$structure = $decoder->decode($params);
//送信者のメールアドレスを抽出
$mail = $structure->headers[‘from’];
$mail = addslashes($mail);
$mail = str_replace(‘”‘,”,$mail);
//署名付きの場合の処理を追加
preg_match(“/<.*>/”,$mail,$str);
if($str[0]!=””){
$str=substr($str[0],1,strlen($str[0])-2);
$mail = $str;
}

// 件名を取得。これがIDとなっているとする
$diary_subject = $structure->headers[‘subject’];
//半角英数字のみ
if(!mb_ereg(‘[^0-9a-zA-Z]’, $diary_subject)){

switch(strtolower($structure->ctype_primary)){
case “text”: // シングルパート(テキストのみ)
$diary_body = $structure->body;
break;
case “multipart”: // マルチパート(画像付き)
$i=1;
foreach($structure->parts as $part){
switch(strtolower($part->ctype_primary)){
case “text”: // テキスト
//ignore
case “image”: // 画像
//添付内容をファイルに保存
$tmp=date(‘U’);
$fp = fopen(‘/home/●●●/public_html/●●●/hostprof/img’.$i.”_”.$i.$tmp.”picture.jpg”,”w” );
$length = strlen( $part->body );
fwrite( $fp, $part->body, $length );
fclose( $fp );
//パーミッションを忘れずにかえる。デフォは600になる模様
chmod(‘/home/●●●/public_html/●●●/hostprof/img’.$i.”_”.$i.$tmp.”picture.jpg”, 0666);
continue;
}

}

break;
default:
$diary_body = “”;
}

?>

コメントを投稿

次の HTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">

コメントはまだありません。