unix 的邮件命令

发布于 2024-11-09 09:19:25 字数 92 浏览 0 评论 0原文

我在 perl 脚本中使用 unix 的 mail 命令。我指定邮件的“收件人”、“抄送”、“主题”和“正文”。我没有指定发件人地址。 from地址是从哪里选取的?请帮忙

I am using the mail command of unix in a perl script. I specify the 'to', 'cc', 'subject' and 'body' of the mail. I do not specify the from address. Where is the from address picked from? Pls help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南风起 2024-11-16 09:19:25

正如 daxim 和 David W 提到的,有用于处理电子邮件的可移植库,但如果您想要快速修复,如果您的 mail 命令使用 bsd-mailx (如在我的机器上是这样)...

#!/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

There are portable libraries for handling email as daxim and David W mention, but if you want a quick fix, this works under linux if your mail command uses bsd-mailx (as it does on my machine)...

#!/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);

If you have more questions about the unix mail command, try man mail from your shell prompt.

浮世清欢 2024-11-16 09:19:25

现在大多数系统上的 mail 命令是 Heirloom mailx。它声称与 POSIX 兼容,因此我在这里提供的信息应该适用于任何运行良好的 mail 命令。

From 地址通过以下方式设置:

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

强制 Clippy:嗨!我看到您正在尝试从 Perl 发送邮件。您是否打算使用 Email::Sender/Email::Simple 代替?

The mail command on most system nowadays is Heirloom mailx. It claims compatibility with POSIX, so the information I give here should be good for any well-behaving mail command.

The From address is set by:

  • either the user@domain as returned by the appropriate POSIX system calls (see shell commands whoami and domainname -f for a different way to access them)
  • or set by the from environment variable
  • or set by the -r command line option (going to be deprecated?)

Obligatory Clippy: Hi! I see you are trying to send mail from Perl. Did you mean to use Email::Sender/Email::Simple instead?

聊慰 2024-11-16 09:19:25

不要使用邮件命令行命令!使用 Net::SMTP

mail 命令甚至可能未在特定系统上配置,并且它无法在 Windows 上运行。同时,Net::SMTP 是一个标准 Perl 模块,应该在所有系统上可用。

以前没用过吗?阅读文档并尝试一下。这就是你学习的方式。

Don't use the mail command linecommand! Use Net::SMTP.

The mail command may not even be configured on a particular system, and it won't work on Windows. Meanwhile, Net::SMTP is a standard Perl module that should be available on all systems.

Never used it before? Read the documentation and try it out. That's how you learn.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文