每30分钟运行一次perl脚本,并使用IMAP :: Client在icalendar Events中将将任何维护Windows取消通知的邮件转换为我们的路由器。使用IMAP,我仅获得了看不见的邮件。 现在,我们的MailInbox已在Exchange Server上移动。
我已将脚本更改为使用Email :: Folder :: Exchange,并且我可以成功使用它,但是我的问题是邮件没有自动标记为“已读”。 我已经用谷歌搜索了如何完成这项工作,并找到了使用SOAP :: Lite可以实现的方法,但是我不知道如何开始或如何使用从Email :: Folder :: Exchange
$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
use Email::Folder::Exchange;
use Mail::IMAPClient;
use Email::MIME;
use MIME::Parser;
use Spreadsheet::ParseXLSX;
use Spreadsheet::ParseExcel;
require("../.confidence/passdb.inc");
our ($mail_username, $MailUserPassword);
my $mail_debug = 0;
my $SelectedServer = "https://outlook.office365.com/EWS/Exchange.asmx";
my $Mailbox = Email::Folder::Exchange->new($SelectedServer, $mail_username, $MailUserPassword);
my $soap_client = $Mailbox->soap();
if ($soap_client->proxy->is_success) {
my $msgct = $Mailbox->unread_count||'0';
if ($msgct == 0) {
print "no new mails!\n";
exit(0);
} else {
print $msgct . "new unread mails\n" if ($mail_debug);
}
foreach my $message ($Mailbox->messages) {
&ReadMail($message->as_string);
}
&SetAsRead($soap_client);
}
exit(0);
sub ReadMail {
//read Mail and update icalendar
//this works !!
}
sub SetAsRead {
//How should I handel with SOAP
}
在带有Web服务引用的Microsoft文档中,我发现“仅MarkAllItemsAsRead”操作!
非常感谢您的帮助