2013-08-06 24 views
0

不知道我在哪裏做錯了,但是當我在「$ from」變量中放置$ hostname變量時,sendmail不會在主題行內打印任何內容,否則它可以正常工作。Sendmail格式

我想把「from」作爲noreply @ hostname。

下面是代碼:

my $f="test.txt"; 
my $h=`hostname`;  

if (-s "$f") { 

my $to='[email protected]'; 
my $from= "noreply\@$h"; 
my $subject='Test Error'; 

open(MAIL, "|/usr/sbin/sendmail -t"); 

## Mail Header 
print MAIL "To: $to\n"; 
print MAIL "From: $from\n"; 
print MAIL "Subject: $subject\n\n"; 
## Mail Body 
print MAIL "Test Body\n"; 

close(MAIL); 
} 

回答

2

$h有它的結尾加上換行符。

添加chomp解決它:

my $h=`hostname`;  
chomp $h; 

而且,這是一個好主意,使用詞法變量而不是全局文件句柄,並open的三個參數的形式:

open my $mail, '|-', '/usr/sbin/sendmail -t'; 

## Mail Header 
print $mail "To: $to\n"; 
print $mail "From: $from\n"; 
print $mail "Subject: $subject\n\n"; 
## Mail Body 
print $mail "Test Body\n"; 

close $mail; 
+0

謝謝,假設我需要從文件中放置內容,放置代碼的位置,請將