unix的邮件命令

时间:2011-05-23 16:02:18

标签: perl email unix

我在perl脚本中使用unix的mail命令。我指定邮件的'to','cc','subject'和'body'。我没有指定发件人地址。从哪里选择的地址?请帮忙

3 个答案:

答案 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地址由:

设置
  • 由适当的POSIX系统调用返回的user@domain(请参阅shell命令whoamidomainname -f以获取不同的访问方式)
  • 或由from环境变量
  • 设置
  • 或由-r命令行选项设置(将不推荐使用?)

强制性的Clippy:嗨!我看到你正在尝试从Perl发送邮件。您的意思是使用 Email::Sender / Email::Simple 吗?

答案 2 :(得分:1)

不要使用mail命令行命令!使用Net::SMTP

mail命令甚至可能不在特定系统上配置,并且在Windows上不起作用。同时,Net::SMTP是一个标准的Perl模块,应该可以在所有系统上使用。

之前从未使用过它?阅读documentation并试一试。这就是你学习的方式。