2010-07-29 60 views
1

我使用下面的代碼發送電子郵件發送郵件通過的Perl

#!/usr/bin/perl 

sub BEGIN { 
     unshift (@INC,'/opt/dev/common/mds/perlLib'); 
} 

use Mail::Sender; 

$sender = new Mail::Sender 
{smtp => 'xxx.xxx.x.xx', from => '[email protected]'}; 
$sender->MailFile({to => '[email protected]', 
subject => 'Here is the file', 
msg => "I'm sending you the list you wanted."}); 

$sender->Close; 

但是,它未發送郵件的。我的代碼有什麼問題?

+4

嘗試使用strict和warnings(在#!行後添加:「use strict; use warnings」)並修復發生的任何警告;另外,發佈你得到的錯誤。 – mfontani 2010-07-29 11:45:49

回答

2

我不使用這個模塊,因爲MIME :: Entity工作得更好,但從使用郵件,我可以告訴你,你正在超越自己,做出假設而不是扣除。

該模塊上的perldoc顯示了幾種方法 - 而MailFile則用於附加和發送文件。如果在發送沒有附加文件的消息時失敗,我不得不說我並不感到驚訝。那在其他地方工作過嗎?

你能使MailMsg()工作嗎?如果你不能,(語法非常相似,但出錯的東西更少),那麼連接到服務器可能會有問題。從xxx.xxx.xxx.xxx位,我不得不假設你正在使用一個IP地址。嘗試一個主機名。另外,將on_errors設置爲die()或者warn(),然後查看是否可以捕獲錯誤。在連接到服務器/創建對象期間,大多數郵件嘗試失敗 - 然後發送嘗試將按定義失敗,但通常不會告訴您爲什麼。

如果您無法連接,請確保您不需要向服務器進行身份驗證。