我在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. unzip unix命令
- 2. Unix grep命令
- 3. Unix命令
- 4. UNIX grep命令
- 5. Unix strace命令
- 6. unix bash命令
- 7. Unix命令
- 8. Unix命令
- 9. 的Unix grep命令
- 10. 查找命令unix
- 11. Unix Shell - Zip命令
- 12. UNIX导出命令
- 13. Unix搜索命令
- 14. Unix命令解释
- 15. AIX(vs)Unix命令
- 16. 管道unix命令
- 17. 的ProcessBuilder java的UNIX命令
- 18. UNIX tty命令和文件命令?
- 19. 将Unix命令转换为Windows命令
- 20. python中的Unix命令与&
- 21. Windows中的ctime unix命令
- 22. Unix MQ命令的用法?
- 23. Perl中的Unix命令?
- 24. Unix中的屏幕命令
- 25. 通过Oracle的Unix命令
- 26. Unix的:命令返回码
- 27. 来自C#的Unix命令
- 28. unix pipe命令的问题
- 29. SMTP:简单的Unix命令
- 30. Unix touch命令的用法
什么是你的邮件工具?您可以编辑标题以修改发件人地址。 – 2011-05-23 16:05:34