我试图安装已安装bsd-mailx软件包的实用程序,但是我想知道错误。
这是我得到的错误:
Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud) mail 和 mailx 有什么区别?
我正在尝试解决一个问题,我可以使用此echo $MESSAGE | mail -s "$SUBJECT" -r $FROM $RECIPIENTS命令从服务器 A 发送邮件,但从服务器 B 执行相同的命令会引发此错误(两台服务器都是 RHEL)
mail: invalid option -- r
Usage: mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr ...
[-- sendmail-options ...]
mail [-iInNv] -f [name]
mail [-iInNv] [-u user]
Run Code Online (Sandbox Code Playgroud)
现在......通过邮件联机帮助页了解发生man mail了什么,给了我这个:
在服务器 A
MAILX(1) User Commands MAILX(1)
NAME
mailx - send and receive Internet mail
SYNOPSIS
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h …Run Code Online (Sandbox Code Playgroud) 我知道我们可以mail在终端中使用命令mail以交互模式开始使用程序。
但是,我想以mail非交互方式使用命令阅读电子邮件。
有没有类似的命令
$ mail -optionToReadMail -mailNumber 1;
Run Code Online (Sandbox Code Playgroud)
这将在 stdout 中显示电子邮件的内容?
我正在尝试通过密件抄送发送 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正确发送密送?
我想下载旧电子邮件服务器中的所有电子邮件。它使用 POP3,我对“收件箱”和“已发送”文件夹中的电子邮件感兴趣。下载完所有邮件后,我想制作一个脚本,将我的电子邮件地址和某个电子邮件地址之间的所有电子邮件按时间顺序列出到单个文本文件中。
但是,首先,我想我需要将所有消息下载到一个包含日期的标题的单个文件中,然后创建一个排序脚本。如何处理这个问题?
我在发送邮件的脚本中使用了 mailx,但是是否可以使用 mailx 将所有邮件从 POP3 服务器下载到一个文件中?
我一直在尝试通过在 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 电子邮件,但由于标题包含在正文中,因此它输出如下:
内容处置:内联消息 …
我正在尝试使用该mailx程序发送电子邮件。
我希望此人的姓名 像 Microsoft Outlook 或 gmail 帐户上的普通姓名一样包含在toaddress@domain.com 中,例如"Thomas<tmuller@gmail.com>"
ls -l $HOME | mailx -r "fromaddress@domain.com" -s "The content of my home directory" toaddress@domain.com
Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,即 gmail 阻止了使用 mailx 发送的电子邮件。我通过设置一个合适的 ~/.mailrc 解决了这个问题,它看起来像:
set smtp-use-starttls
set nss-config-dir=/home/theuser/.certs
set ssl-verify=ignore
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=xxx
set smtp-auth-password=yyy
set from="rabbitovh@thehologram.com(Rabbit Server)"
Run Code Online (Sandbox Code Playgroud)
所以现在当我运行时:
echo "hi" | mailx xxx@gmail.com
Run Code Online (Sandbox Code Playgroud)
我的电子邮件以用户和 root 身份成功发送。
现在我希望 cron 也能工作。我更改了“/etc/sysconfig/crond”以强制它使用mailx,使用:
CRONDARGS="-m /usr/bin/mailx"
Run Code Online (Sandbox Code Playgroud)
我有 ~/.mailrc 设置:
但无论我做什么,echo 输出都没有成功通过电子邮件发送。
crontab 看起来像(我已经检查过,脚本正在运行并完成它们的工作,并且回显,只是 cron 不发送电子邮件):
MAILTO="xxx@gmail.com"
# Every minute check processes are running, restart if necessary and send an email.
* * * * * source /home/theuser/.bashrc; global audit_regular
# Every day, send an email …Run Code Online (Sandbox Code Playgroud) 我无法mailx在 CentOS 9 上安装。
yum install mailx -y
Last metadata expiration check: 0:04:13 ago on Sat 09 Apr 2022 07:55:59 PM UTC.
No match for argument: mailx
Error: Unable to find a match: mailx
Run Code Online (Sandbox Code Playgroud) 我有一个运行脚本的 cron 作业,该脚本在 sql 数据库中编写错误检查并将错误写入日志文件。日志文件在运行脚本的命令中提供。我只想在脚本发现错误时收到一封电子邮件,我希望将日志包含在电子邮件中。如果脚本没有发现任何错误,我不想收到电子邮件。显然,当脚本发现或没有发现错误时,脚本会写入日志(我没有写这个脚本)。
20 6-10 * * 1-5 ~/job_failure_test.sh -o ~/job_fail.log 2>&1 /dev/null | mail -s "Errors" myemail@something.com < ~/job_fail.log
Run Code Online (Sandbox Code Playgroud)
到目前为止,当有错误写入日志时,这一行会向我发送电子邮件,但它不会向我发送更新的日志。它向我发送了上次执行 cron 作业的日志。