使用Perl生成邮件并在Outlook中打开
有人知道如何使用outlook在perl中生成邮件而不发送邮件吗?只需在生成邮件后在屏幕上打开它,让用户验证并发送邮件即可。我正在使用Win32::OLE制作邮件 PFB我正在使用的代码:使用Perl生成邮件并在Outlook中打开,perl,ole,Perl,Ole,有人知道如何使用outlook在perl中生成邮件而不发送邮件吗?只需在生成邮件后在屏幕上打开它,让用户验证并发送邮件即可。我正在使用Win32::OLE制作邮件 PFB我正在使用的代码: sub Final_Mail_Outlook{ my($mailTo,$mailFrom,$subject,$body) = (@_); my $Outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32
sub Final_Mail_Outlook{
my($mailTo,$mailFrom,$subject,$body) = (@_);
my $Outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application');
# Create Mail Item
my $item = $Outlook->CreateItem(0); # 0 = mail item.
unless ($item)
{
die "Outlook is not running, cannot send mail.\n";
}
$item->{'Subject'} = $subject;
$item->{'To'} = $mailTo;
$item->{'Body'} = $body;
$item->{'From'} = $mailFrom;
my $attach = $item->{'Attachments'};
my @outputFiles = glob("$OutputPath\\*.*");
foreach my $file (@outputFiles){
$attach->add($file);
}
$item->Send();
}
这会按照我调用的Send函数发送邮件,但我想验证生成的邮件。那么有没有办法做到这一点呢 我刚刚找到了一个答案,所以我想把它也贴出来,这样其他需要答案的人就可以得到帮助。关键是使用函数Display()而不是Send()。PFB修改代码以打开邮件而不发送邮件
sub Final_Mail_Outlook{
my($mailTo,$mailFrom,$subject,$body) = (@_);
my $Outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application');
# Create Mail Item
my $item = $Outlook->CreateItem(0); # 0 = mail item.
unless ($item)
{
die "Outlook is not running, cannot send mail.\n";
}
$item->{'Subject'} = $subject;
$item->{'To'} = $mailTo;
$item->{'Body'} = $body;
$item->{'From'} = $mailFrom;
my $attach = $item->{'Attachments'};
my @outputFiles = glob("$OutputPath\\*.*");
foreach my $file (@outputFiles){
$attach->add($file);
}
$item->Display();
}