簡體   English   中英

電子郵件程序在Perl中不起作用

[英]Email Program not working in Perl

我在Perl玩耍,並且編寫了一個小型電子郵件程序。 它是這樣的:

# -w
#the purpose of this program is to send an email .
print "Hello. Welcome to Paramjot's Mail Program. Please enter your name.\n";
$name = <STDIN>;
chomp ($name);
print "Hello, $name. Please type in the email address you wish to send your email to\n";
$mailadds = <STDIN>;
chomp ($mailadds);              
open  MAIL, "|mail $mailadds";
print "Please type the message you wish to send below.\n";
$message = <STDIN>;
chomp ($message); 
print MAIL "$name says: $message";
close MAIL;

出於某種原因,當我運行該程序時,它將一直運行,直到該程序應詢問消息並改為

mail is not recognized as a batch file, internal or external command, or an application.

我該怎么解決這個問題?

該錯誤消息來自您的操作系統,而不是來自Perl。

您的open語句嘗試啟動運行命令mail $mailadds的新進程,但這失敗了,因為操作系統無法識別command mail 要解決立即出現的錯誤,您需要驗證計算機上是否已安裝mail (或等效程序),並更改open語句以提供該程序的完整路徑和正確的文件名。

總體任務的更好解決方案是從CPAN獲取郵件處理模塊,並使用該模塊代替調用外部程序。 這樣的模塊提供了一個友好的界面,而且它們經常抽象出任何特定於操作系統的細節,例如確定用於發送郵件的程序的正確名稱和位置。

就個人而言,我傾向於為此使用MIME :: Lite ,盡管該模塊的維護者建議不要使用它。 鏈接的文檔包含有關郵件發送模塊的建議,如果您選擇聽取他的建議並且不使用MIME :: Lite,則他認為這是“更好的選擇”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM