<?php
require_once 'Mail/mimeDecode.php';
// 取得邮件内容
$params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;
$params['input'] = file_get_contents("php://stdin");
$params['crlf'] = "\r\n";
$structure = Mail_mimeDecode::decode($params);
//取得发送邮件地址
if(preg_match("/<(.*)>/", $mail_from, $matches)) {
$mail_from = $matches[1];
}
//取得目标邮件地址
$mail_to = $structure->headers['to'];
if(preg_match("/<(.*)>/", $mail_to, $matches)) {
$mail_to = $matches[1];
}
// 取得邮件标题
$mail_subject = $structure->headers['subject'];
switch(strtolower($structure->ctype_primary)){
case "text": // 只有一个Part(文本邮件)
$mail_body = $structure->body;
break;
case "multipart": // 有多个Part(图片等)
foreach($structure->parts as $part){
switch(strtolower($part->ctype_primary)){
case "text": // 正文
$mail_body = $part->body;
break;
case "image": // 图片
//取得图片文件扩展名并转为小写
$type = strtolower($part->ctype_secondary);
//检查是否为JPEG格式(同样可以检查是否为GIF或者PNG格式)
if($type != "jpeg" and $type != "jpg"){
continue;
}
//把附件保存到文件
$file_mame = $part->ctype_parameters['name'];
$fp = fopen("/tmp/$file_mame", "w" );
$length = strlen( $part->body );
fwrite( $fp, $part->body, $length );
fclose( $fp );
break;
}
}
break;
default:
$mail_body = "";
}
/*
* 其他处理,如:把邮件地址、标题、正文、图片等信息保存到数据库
*/
?>
以上代码只是个框架,可以根据自己的需要修改和扩充。运行该代码需要 Pear 的 Mail 及 Mail_MIME 包,安装方法如下:
$ pear install -a Mail $ pear install -a Mail_MIMERead More