该程序位于/usr/bin/mail. 执行后,Version 8.1.2 01/15/2001显示。
输入list产品:
Commands are:
next, alias, print, type, Type, Print, visual, top, touch, preserve,
delete, dp, dt, undelete, unset, mail, mbox, pipe, |, more, page, More,
Page, unread, Unread, !, copy, chdir, cd, save, source, set, shell,
version, group, write, from, file, folder, folders, ?, z, headers,
help, =, Reply, Respond, reply, respond, edit, echo, quit, list, xit,
exit, size, hold, if, else, endif, alternates, ignore, discard, retain,
saveignore, savediscard, saveretain, …Run Code Online (Sandbox Code Playgroud) mail -s "subject" xxxxx@gmail.com <test.html
有效,但仅适用于纯文本电子邮件。
使用 Linux 命令发送 HTML 电子邮件的正确方法是什么mail?
使用该mail命令,它会显示我拥有的消息并将我放入提示中,但我无法弄清楚如何列出这些消息。这是邮件的帮助屏幕:
Mail Command Description
------------------------- ---------------------------------------------
t [message list] type messages(s).
more [message list] read message(s), through the $PAGER
n goto and type next message.
e [message list] edit message(s)
f [message list] give head lines of messages.
d [message list] delete message(s).
s [message list] <file> append message(s) to file.
u [message list] undelete message(s).
R [message list] reply to message sender(s).
r [message list] reply to message sender(s) and all recipients.
p [message list] print message …Run Code Online (Sandbox Code Playgroud) 我的收件箱中有大约 1k+ 封邮件(旧的 cronjob 标准输出)。如何批量删除它们?
我在Solaris 8和我只有mail可用的,没有pine或mutt或类似的“UI”为基础的客户端。
内联帮助和手册页仅d #用于删除特定邮件。例如,我尝试过,d 1 - 100但没有运气。我不想做d1000 次。
任何想法如何清理这个收件箱?我实际上想清除所有超过 x 天的邮件。
我正在尝试通过密件抄送发送 unix mail( heirloom-mailx)。
$ mail -V
12.5 6/20/10
Run Code Online (Sandbox Code Playgroud)
我的 MTA 是 exim,它通过 Gmail SMTP 发送。
我可以执行以下操作:
echo -e "body" | mail -s 'subject' -b hidden1@server.com,hidden2@server.com visible@server.com
Run Code Online (Sandbox Code Playgroud)
所有地址都会收到电子邮件,但密件抄送并未隐藏。即在发送给 的电子邮件中hidden1@server.com,我仍然看到:
To: visible@server.com
Bcc: hidden1@server.com,hidden2@server.com
Run Code Online (Sandbox Code Playgroud)
如何mail正确发送密送?
当我尝试mail从 bash 脚本中的函数内部执行时,它会创建类似于 fork 炸弹的东西。为了澄清,这会产生问题:
#!/bin/bash
mail() {
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
}
mail
exit 0
Run Code Online (Sandbox Code Playgroud)
有时您可以终止命令,它会终止子进程,但有时您必须killall -9.
它不在乎邮件是否已发送。该叉炸弹创建两种方式。而且它似乎没有为退出代码添加任何检查,例如if ! [ "$?" = 0 ],帮助。
但下面的脚本按预期工作,要么输出错误,要么发送邮件。
#!/bin/bash
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
exit 0
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?您将如何检查邮件命令的退出代码?
我有一个与 nagios 一起使用的 bash 脚本,它通过电子邮件发送通知。它的关键部分如下所示:
# $1 (FROM) | $2 (TO) | $3 (SUBJECT) | $4 (BODY)
/usr/bin/printf "%b" "$4" | /bin/mail -s "$3" "$2" -- -f $1
Run Code Online (Sandbox Code Playgroud)
我知道我可以sendmail直接使用该命令(像这样),但这意味着重新编写一些脚本来处理构建包括所有标题在内的整个消息。
有什么方法可以使用 指定其他 SMTP 标头/bin/mail,在我自己的情况下,我试图添加Importance: high标头?
我正在运行 exim 4.63 作为我的 MTA 和 CentOS 5.6 x64。
我一直在尝试通过在 Linux 服务器上从 mailx 发送 html 电子邮件来工作。
几点注意事项:
对于我的案例,我在关于 stackoverflow 的大多数帖子中看到的内容:
mailx -v -S smtp=SERVER -s "$(echo -e "This is the subject\nContent-Type: text/html")" -r FROM TO < htmlmail.txt
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这只是返回一个纯文本电子邮件。
所以这是我迄今为止尝试过的:
尝试 1:
我在帖子中看到添加 Content-Disposition: inline。
mailx -v -S smtp=SERVER -s "$(echo -e "This is the subject v1\nContent-Type: text/html\nMIME-Version: 1.0\nContent-Disposition: inline")" -r FROM TO < htmlmail.txt
Run Code Online (Sandbox Code Playgroud)
这最终会发送一封 html 电子邮件,但由于标题包含在正文中,因此它输出如下:
内容处置:内联消息 …
mail-command ×10
email ×4
linux ×3
html ×2
mailx ×2
bash ×1
exim ×1
shell-script ×1
solaris ×1