2012-01-06 63 views
1

我想用perl的Net :: SMTP模塊發送一封電子郵件,和我有一些代碼,看起來像這樣:Perl的淨:: SMTP錯誤設置「到」值

my $host = 'mail.server.com'; 

my $port = 00; 
my $smtp = new Net::SMTP("$host:$port") or return 1; 

$smtp->mail('[email protected]') or return 1; 
$smtp->to('[email protected]') or return 1; 
$smtp->data() or return 1; 
$smtp->datasend("Subject: blah, blah\n\n"); 
$smtp->datasend($message); 

$smtp->dataend() or return 1; 

$smtp->quit(); 

的問題是它會在嘗試設置'to'值後返回,而我完全被困在原因中。有任何想法嗎?

FWIW,我不是perl開發者。我正在嘗試清理電子郵件的樣式,只需要將其發送給我即可評估我的更改。

+0

什麼錯誤消息(S)弄來?你正在使用'strict'和'warnings',對吧? – 2012-01-06 16:58:25

+0

沒有錯誤或警告拋出... – danwoods 2012-01-06 17:01:11

+0

將'$ smtp->中的雙引號替換爲(「[email protected]」)或將單引號返回1;''。解釋者認爲'@ mail.com'是指雙引號內的數組(插入操作不在單引號內完成)。 – 2012-01-06 17:05:45

回答

1

滻您To部分

$smtp->to('[email protected]') or return 1; 

編輯:

在這種情況下,做一些更多的變化,看看它是否有助於

use strict; 
use warnings; 
my $host = 'mail.server.com'; 
my $port = '00'; 

my $smtp = new Net::SMTP($host:$port) or 
die "Could not connect to server!\n" unless $smtp; 

//Rest of the code as is 
+0

請參閱評論以@ JackManey – danwoods 2012-01-06 17:12:29

+0

@dan,看我的編輯 – Rahul 2012-01-06 17:26:53