使用 Perl 生成邮件并在 Outlook 中打开它
Generate Mail and Open it in Outlook using Perl
有谁知道我如何使用 outlook 在 perl 中发送邮件而不是发送邮件,只需在发送邮件结束时在屏幕上打开它并让用户验证并发送邮件。我正在使用 Win32::OLE 来制作邮件。
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->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();
}
有谁知道我如何使用 outlook 在 perl 中发送邮件而不是发送邮件,只需在发送邮件结束时在屏幕上打开它并让用户验证并发送邮件。我正在使用 Win32::OLE 来制作邮件。
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->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();
}