2006 年 07 月 12 日
对E-mail的分解,提取邮件图片和文字等
在Linux下对邮件进行分解,并提取其中的图片和文字。
OS: Linux
App. : PHP,Qamil,Pear MIME,SHELL
多数可以使用在使用邮件向Blog投稿等。
- 发送一个带有图片或者其他附件的邮件。
- vpopmail中对邮件进行过滤。 这里我们将发送到 name-0000@foo.com 的邮件全部列为对象邮件。
- mailimg.php代码(部分)
这里 “0000”可以替代任何字符。
Vpopmail 的设置:
建立: /home/vpopmail/domains/foo.com/.qmail-name-default 文件
| /usr/local/bin/php /home/foo/mailimg.php
// PEAR
require_once("PEAR.php");
// PEAR Mail_Mime
require_once("Mail/mimeDecode.php");
// Paramas for Mime
$params['include_bodies'] = TRUE;
$params['decode_bodies'] = TRUE;
$params['decode_headers'] = TRUE;
// Decode mail message
$decode = new Mail_mimeDecode($mailsource);
$mail = $decode->decode($params);
// 获取Header部分
$header = $mail->headers;
// 获取 TO 和 FROM
$header['to'] = preg_replace("/.*<(\S+)>.*/","$1", $header['to']);
$header['from'] = preg_replace("/.*<(\S+)>.*/","$1", $header['from']);
//判断是否是 muiltipart E-mail
if ($mail->ctype_primary == 'multipart' || count($mail->parts) > 1) {
echo("TRUE");
}
// 判断是否是图片
if (!eregi("text", $contenttype)) {
$part_body = $parts->body;
$img_file = $IMG_DIR. $contentfilename;
// 分离图片文件
if ($IMAGE = fopen($img_file, 'w')) {
fwrite($IMAGE, $part_body);
fclose($IMAGE);
}
}
(END)
br> br>