我正在嘗試使用Mail::Outlook
創建郵件。我跟着這個答案,我相信這是正確的:如何在Outlook 2007中使用Mail :: Outlook創建郵件
Sending email using Perl
Mail::Outlook CPAN
我創建從教程基於一個簡單的代碼:
use strict;
use warnings;
use Mail::Outlook;
use Data::Dumper;
my $outlook = new Mail::Outlook();
print Dumper($outlook);
print Dumper(Win32::OLE->LastError()); #added in response to comment
my $message = $outlook->create();
$message->To('[email protected]');
$message->Cc('[email protected]');
$message->Subject('Testing sending mail from perl');
$message->Body('Hi, This is the body! wahahah!');
$message->save();
1;
我所使用的電子郵件是真實的,但我在這裏代替它隱私的緣故.. 當我運行腳本時,出現一個錯誤:
$VAR1 = undef;
Can't call method "create" on an undefined value at send_mail.pl line 14.
在new Mail::Outlook()
期間,似乎變量$outlook
未初始化。如果啓動一個新對象失敗,模塊Mail :: Outlook將返回undef
。現在,我想知道爲什麼發生這種情況..我想這是因爲Outlook的安全問題,但我不知道如何調整它。請perl掌握在那裏,如果任何人有相同的經歷或遇到此,這將是有益的。
我在Windows 7中使用Microsoft Outlook 2007,我安裝了ppm install Mail-Outlook
。 我的主要問題是:我怎樣才能在Outlook 2007
UPDATE
我嘗試使用print Dumper(Win32::OLE->LastError());
創建使用Mail :: Outlook中的郵件並打印此錯誤:
$VAR1 = 'Win32::OLE(0.1709) error 0x80080005: "Server execution failed"';
從上新的文件:創建一個新的Outlook郵件對象。成功返回對象或失敗時返回undef。要查看最後一個錯誤,請使用'Win32 :: OLE-> LastError();'。因此,打印該命令的輸出並查看彈出的錯誤消息 –
是的,我也試過'Wind32 :: OLE-> LastError();'但它似乎沒有打印任何東西。 – catzilla
該函數返回值,它不會自己打印任何東西。運行'print Dumper(Win32 :: OLE-> LastError())'(除非你已經這麼做了,在這種情況下,我們沒有什麼可以做的,因爲你沒有錯誤信息可以指導我們) –