我在perl腳本中使用unix的mail命令。我指定郵件的'to','cc','subject'和'body'。我沒有指定發件人地址。從哪裏來的地址?請幫助unix的mail命令
回答
有用於處理電子郵件作爲daxim和大衛·w ^提便攜式庫,但如果你想速戰速決,如果你的mail
命令使用bsd-mailx
(因爲它在我的機器上)這個作品linux下...
#!/usr/bin/env perl
$BODY = "Hello self";
$RECIPIENT = "destination\@email.local";
$FROM = "mike\@localhost";
$SUBJECT = "some subject here";
$CMD = qq(echo "$BODY" | mail -a "From: $FROM" -s $SUBJECT $RECIPIENT);
exec($CMD);
如果您對unix mail
命令有更多疑問,請從shell提示符下嘗試man mail
。
我無法看到upvote按鈕,因爲我的眼睛從所有的uc變量名稱開始流血..反正我只是點了某處;) – 2011-05-23 17:44:58
@mugen,謝謝。你是什麼意思的UC變量名稱? – 2011-05-23 17:46:55
它實際上是一個perl函數http://perldoc.perl.org/functions/uc.html – 2011-05-23 17:49:01
目前大多數系統的mail
命令是Heirloom mailx。它聲稱與POSIX兼容,所以我在這裏給出的信息應該是對於任何行爲良好的mail
命令都是好的。
的From
地址由設置:
- 任
[email protected]
如通過適當的POSIX系統調用(見殼命令whoami
和domainname -f
爲以不同的方式來訪問它們) - 退回或由設置
from
環境變量 - 或由
-r
命令行選項(將被棄用?)設置
必備Clippy:嗨!我看到你正試圖從發送郵件。您的意思是使用Email::Sender/Email::Simple而不是?
請勿使用郵件命令行命令!使用Net::SMTP。
mail
命令甚至可能沒有在特定系統上配置,並且它不能在Windows上運行。同時,Net::SMTP
是一個標準的Perl模塊,應該可用於所有系統。
以前從未使用過嗎?閱讀documentation並嘗試一下。這就是你學習的方式。
我不認爲Net :: SMTP是一個好的建議。要求用戶熟悉衆多的Internet郵件RFC。[在我的答案](http://stackoverflow.com/q/6099796#6101474)中,我指出了一種解決方案,可以將枯燥且容易出錯的低級 – daxim 2011-05-23 19:48:10
@daxim,也許我可以幫助OP找出相關的郵件RFC ......當它發生時,[Net :: SMTP附帶一個示例](http://perldoc.perl.org/Net/ SMTP.html#EXAMPLES)+1 David W – 2011-05-23 19:56:19
- 1. Unix命令
- 2. Unix grep命令
- 3. Unix命令
- 4. Unix dot命令
- 5. Unix命令
- 6. unix find命令
- 7. tee命令UNIX
- 8. SSH UNIX命令
- 9. Unix strace命令
- 10. unix bash命令
- 11. unzip unix命令
- 12. 狗命令UNIX
- 13. UNIX grep命令
- 14. 的Unix grep命令
- 15. Unix的sed命令
- 16. Unix命令錯誤
- 17. 查找命令unix
- 18. Unix Shell - Zip命令
- 19. 管道unix命令
- 20. SED命令在UNIX
- 21. Unix搜索命令
- 22. AIX(vs)Unix命令
- 23. UNIX diff命令usuage
- 24. UNIX導出命令
- 25. 使用UNIX命令
- 26. Unix命令解釋
- 27. 的ProcessBuilder java的UNIX命令
- 28. UNIX tty命令和文件命令?
- 29. UNIX命令「找不到命令」錯誤
- 30. 將Unix命令轉換爲Windows命令
什麼是你的郵件工具?您可以編輯標題以修改發件人地址。 – 2011-05-23 16:05:34