Perl:阅读电子邮件并使用消息内容作为exdin更新的stdin

时间:2014-02-03 08:23:08

标签: excel perl email

我正在寻找启动Perl脚本的一些帮助。我对Perl相对缺乏经验,所以请帮助我们。)

基本上,想要启动一个项目来编写一个脚本,以帮助我及时了解我工作的时间。基本上我希望脚本能够发送电子邮件(使用cron自动化)我提醒我每天发送我的小时数,然后我发回一封电子邮件,上面写着这样的消息 “03/02/14 7.30 18.30” 然后,该脚本将读取数据并更新excel电子表格,并记录小时数。

我知道除了让脚本阅读电子邮件之外该怎么做。我一直在研究MIME :: * MAIL :: *,但我不完全确定哪个软件包最好,以及如何实际使用它。

1 个答案:

答案 0 :(得分:3)

正如@mpapec建议您可以使用IMAP或Linux机箱上的本地邮箱阅读电子邮件。

在Windows中,您可以在Outlook中使用OLE并阅读电子邮件:Perl: Win32::OLE and Microsoft Outlook - Iterating through email attachments efficiently

您可以通过以下方式阅读交换电子邮件:http://metacpan.org/pod/Email::Folder::Exchange

如果我是你,我会使用IMAP访问电子邮件。它是独立于平台的并且不太难使用(我过去使用它并且它是可靠的)。

http://metacpan.org/pod/Net::IMAP::Client

my $imap = Net::IMAP::Client->new(

    server => 'mail.you.com',
    user   => 'USERID',
    pass   => 'PASSWORD');

# select folder
$imap->select('INBOX');
#newest first
my $messages = $imap->search({
    FROM    => 'you',
    SUBJECT => 'your email subjet',
}, [ '^DATE' ]);   
# fetch full message     (newest)
my $data = $imap->get_rfc822_body($messages->[0]);
#process    
store_data_in_excel($data);
#move to archive
$imap->copy([$messages->[0]], 'Archive');
$imap->add_flags(\@msg_ids, '\\Deleted');
$imap->expunge;