我在perl脚本中使用unix的mail命令。我指定邮件的'to','cc','subject'和'body'。我没有指定发件人地址。从哪里选择的地址?请帮忙
答案 0 :(得分:3)
有daxim和David 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
。
答案 1 :(得分:1)
现在大多数系统上的mail
命令都是Heirloom mailx。它声称与POSIX兼容,因此我在这里提供的信息应该适用于任何行为良好的mail
命令。
From
地址由:
user@domain
(请参阅shell命令whoami
和domainname -f
以获取不同的访问方式)from
环境变量-r
命令行选项设置(将不推荐使用?)强制性的Clippy:嗨!我看到你正在尝试从Perl发送邮件。您的意思是使用 Email::Sender / Email::Simple 吗?
答案 2 :(得分:1)
不要使用mail命令行命令!使用Net::SMTP。
mail
命令甚至可能不在特定系统上配置,并且在Windows上不起作用。同时,Net::SMTP
是一个标准的Perl模块,应该可以在所有系统上使用。
之前从未使用过它?阅读documentation并试一试。这就是你学习的方式。