Perl unix的mail命令

Perl unix的mail命令,perl,email,unix,Perl,Email,Unix,我在perl脚本中使用unix的mail命令。我指定邮件的“收件人”、“抄送”、“主题”和“正文”。我没有指定发件人地址。从哪里选择发件人地址?请帮助正如daxim和David W所提到的,有一些用于处理电子邮件的可移植库,但是如果您想快速修复,如果您的mail命令使用bsd mailx(就像在我的机器上一样),这在linux下是有效的 如果您对unixmail命令有更多问题,请尝试从shell提示符下使用man mail。有一些可移植的库,用于处理daxim和David W提到的电子邮件,但是

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

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


如果您对unix
mail
命令有更多问题,请尝试从shell提示符下使用
man mail

有一些可移植的库,用于处理daxim和David W提到的电子邮件,但是如果您想快速解决问题,如果您的
mail
命令使用
bsd mailx
(就像在我的机器上一样),这在linux下是有效的


如果您对unix
mail
命令有更多问题,请在shell提示符下尝试
man-mail

现在大多数系统上的
mail
命令都是。它声称与POSIX兼容,因此我在这里提供的信息对于任何行为良好的
mail
命令都是有用的

来自的
地址由以下各项设置:

  • user@domain
    由相应的POSIX系统调用返回(请参阅shell命令
    whoami
    domainname-f
    ,了解访问它们的不同方式)
  • 或由来自环境变量的
    设置
  • 或者由
    -r
    命令行选项设置(是否要弃用?)


克利比:嗨!我看到您正试图从Perl发送邮件。你是不是打算改用/呢?

现在大多数系统上的
邮件
命令都是无效的。它声称与POSIX兼容,因此我在这里提供的信息对于任何行为良好的
mail
命令都是有用的

来自
地址由以下各项设置:

  • user@domain
    由相应的POSIX系统调用返回(请参阅shell命令
    whoami
    domainname-f
    ,了解访问它们的不同方式)
  • 或由来自环境变量的
    设置
  • 或者由
    -r
    命令行选项设置(是否要弃用?)


克利比:嗨!我看到您正试图从Perl发送邮件。你是想改用/吗?

不要使用邮件命令行命令!使用


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


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

不要使用邮件命令行命令!使用


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



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

您的邮件实用程序是什么?您可以编辑邮件头以修改发件人地址。您的邮件实用程序是什么?您可以编辑标题以修改发件人地址。我看不到upvote按钮,因为我的眼睛开始从所有uc变量名中流血。。我只是随便点击了一下;)@穆根,道歉;我的许多同龄人都使用all caps变量名。我使用了很多常量,所以代码可以自我记录。啊,我以前不知道。有道理。感谢您的澄清。答案与问题不符,您可以做得更好,而不仅仅是指向文档的一般指针。@daxim,您的评论毫无意义。我所做的远远不止是指向文档。如果您对我的答案有改进,那么请具体说明。我看不到upvote按钮,因为我的眼睛开始从所有uc变量名中流血。。我只是随便点击了一下;)@穆根,道歉;我的许多同龄人都使用all caps变量名。我使用了很多常量,所以代码可以自我记录。啊,我以前不知道。有道理。感谢您的澄清。答案与问题不符,您可以做得更好,而不仅仅是指向文档的一般指针。@daxim,您的评论毫无意义。我所做的远远不止是指向文档。如果您对我的答案有改进,那么请具体说明。迈克,我取消了您的更改,因为
-a
是用于附件的。好吧,这种说法是错误的,请参阅,我刚才(在Linux上)验证了
-a From:…
给出了错误消息
没有这样的文件或目录
。我认为你的否决票是不合理的。POSIX规定的发送模式下的唯一选项是“
-s”subject“
”。关于From地址的来源,您可能仍然是正确的-尽管POSIX没有强制使用
$From
环境变量或
-r
选项。我也同意使用Perl电子邮件模块而不是
mailx
@daxim,对于那些对我的答案如此迂腐的人来说,也许你应该知道不要抱怨这一点。。。尝试引用
-a
的参数,就像我在回答中所做的那样。顺便说一句,我用的是
mail
,而不是
mailx
,我的评论中的错误值得指出,如果它确实起到了作用的话。精确粘贴您的学究身份:
LANG=C邮件-a'发件人:daxim@localhost“达克辛␤发件人:daxim@localhost:没有这样的文件或目录␤
Mike,我取消了你的更改,因为
-a
是用于附件的。好吧,这种说法是错误的,请参阅,我刚才(在Linux上)验证了
-a From:…
给出了错误消息
没有这样的文件或目录
。我认为你的否决票是不合理的。POSIX规定的发送模式下的唯一选项是“
-s”subject“
”。关于发件人地址的来源,您可能仍然是正确的-tho
#!/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);