[英]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.