[Perl][Mail]关于邮件的几个模块
来源:互联网 发布:mysql my.ini文件下载 编辑:程序博客网 时间:2024/05/29 19:45
这几天净捣鼓收取邮件的问题了,一开始用了些基本的模块,很多问题解决不了,查找了文档才有点眉目.
先说说环境:
Cygwin+Perl5.8+Mail::POP3Client+MIME::Parser+MIME::Entity+Time::HiRes
Mail::POP3Client 封装了基本的Net::POP3,使用起来更简单
MIME::Parser是MIME::Entity的子类,就是用来解析格式的
Time::HiRes用来计算消耗时间
看看代码:
===========================================================================
#!/usr/bin/perl -w
use strict;
use Mail::POP3Client;
use Time::HiRes qw(gettimeofday tv_interval);
use MIME::Parser;
use MIME::Entity;
my $start_time = [gettimeofday];
my $host = 'pop3.163.com';
my $user = '####@163.com';
my $passwd = '******';
my $client = new Mail::POP3Client( $user, $passwd, $host );
my $parser = MIME::Parser->new;
my $mgrnum = $client->Count;
print "当前共有邮件[$mgrnum]封!/n";
for ( my $i = 1 ; $i <= $mgrnum ; $i++ ) {
my $headandbody = $client->HeadAndBody($i);
my $entity = $parser->parse_data($headandbody);
$parser->decode_headers(1);
print "From = ",$entity->head->get('From');
print "To = ",$entity->head->get('To');
print "Cc = ",$entity->head->get('Cc');
print "Subject = ",$entity->head->get('Subject');
print "MIME type = ",$entity->mime_type,"/n";
print "Parts = ",scalar $entity->parts,"/n";
my $part_num = scalar $entity->parts;
for my $part ($entity->parts){
print "/t",$part->mime_type,"/t",$part->bodyhandle,"/n";
}
print "=========================================================/n";
exit if ( (scalar $entity->parts) == 1 );
#exit if ($i >= 3);
}
my $interval = tv_interval( $start_time, [gettimeofday] );
print "it take the time : $interval seconds/n";
==============================================================================
前面始终没有闹明白为什么邮件头里面Subjects中文总是乱码不能解析,翻了翻RFC的文档,看看MIMR::Parser才知道有一个decode函数
### Automatically attempt to RFC 2047-decode the MIME headers?
$parser->decode_headers(1); ### default is false
解析还是很方便的,呵呵
在$parser->parse_data($headandbody)的时候会将邮件body保留在本地msg-PID-#.txt文件中,附件也保留在相应目录下!
- [Perl][Mail]关于邮件的几个模块
- 使用perl的Mail::SendEasy模块来发送邮件
- 使用scrapy的mail模块发送邮件
- linux perl mail 发邮件
- Perl Mail::Sender发送带附件的邮件
- 几个关于database mail的表
- 关于Perl几个基本操作的Demo
- perl模块之MIME::Lite发送有附件的邮件
- perl模块之MIME::Lite发送有附件的邮件
- perl模块之MIME::Lite发送有附件的邮件
- perl 关于时间,日期的模块
- 关于php发邮件mail函数的一些处理
- 关于pear mail的发送中文邮件乱码可以参考
- PHP中关于邮件E-mail的发送案例
- 关于使用Java Mail发邮件的问题
- Perl Email处理几个模块之间的关系
- python邮件【mail】相关模块简单操作
- Open-falcon 邮件模块mail-provider
- tcl/tk参考——控制结构while
- blogonline
- 简单的xml处理类.
- Eclipse报告内存不足和PermSize space错误
- 深入探索Symbian活动对象开发
- [Perl][Mail]关于邮件的几个模块
- velocity学习笔记
- 水一个:组合数学生成作业的程序,算法很垃圾,有兴趣的帮我改一下啊
- TextBox的扩展,支持文件夹和各类文件的拖入,同时可设置过滤文件格式!
- Kernel下检测还原正确的SSDT
- 關于在WIN32調用一些Zw系列的文件操作函數.
- 谷歌人肉搜索引擎
- Linux 2.6.19.x 内核编译配置选项简介
- ZwSetSystemInformation的使用