2016-10-20 26 views
0

我想發送一封郵件給我自己,我不能讓mailx正常工作。這裏是我有的整個perl文件:Mailx不發送電子郵件在Perl中

#!/usr/bin/perl 

sub emailSender{ 
    $RECIPIENT = "test\@test.com"; 
    $FROM = "test\@test.com"; 
    $SUBJECT = "test subject"; 
    $BODY = @_[0]; 

    open (MAIL, "|mailx -s \"$SUBJECT\" $RECIPIENT"); 
    print MAIL $BODY; 
    close MAIL; 
} 

emailSender("This is a test"); 

我在運行腳本時沒有收到任何錯誤或警告。它運行正常,但不發送電子郵件。我在這裏錯過了什麼嗎?我在手冊中找不到任何東西。

+0

你確定這是整個Perl的文件?什麼是「MAIL」? – m0skit0

+2

總是把'use strict;使用警告;'!!! –

+1

並檢查'open'的返回值,對於管道,可能'close'。 –

回答

2

測試OK(注意mail -v):

#!/usr/bin/perl 

use strict; use warnings; 

sub emailSender{ 
    my $RECIPIENT = '[email protected]'; 
    my $FROM = '[email protected]'; 
    my $SUBJECT = "test subject"; 
    my $BODY = shift; 

    open (MAIL, "|mail -v -s \"$SUBJECT\" $RECIPIENT"); 
    print MAIL $BODY; 
    close MAIL; 
} 

emailSender("This is a test"); 

但對於編碼風格,我會保持大寫變量只爲系統或Perl內部

相關問題