2012-01-06 44 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