我正在处理在Solaris服务器上运行的KornShell(ksh)脚本,该脚本将在满足错误条件时发送电子邮件.我通过mailx发送电子邮件.
问题: 如何在mailx命令中设置"发件人"电子邮件地址?
现行代码:
echo ${msg_txt} | mailx -s "Script Failure" ${to_email}
Run Code Online (Sandbox Code Playgroud)
注意:该命令工作正常,但是,"From"是我正在运行脚本的用户的名称,我希望将其用于另一个电子邮件地址.
我怎么做到这一点?
我想用Mailx发送一条HTML消息.当我尝试以下命令时
mailx -s "Subject" user@gmail.com < email.html
Run Code Online (Sandbox Code Playgroud)
我以纯文本格式获取了email.html的内容.在消息中,标题Content-Type设置为text/plain.-a选项尝试发送文件,因此我没有找到如何修改标头.这个答案几乎可行,它将Content-Type设置为text/html,但不替换默认的Content-Type,即text/plain.
mailx -s "$(echo -e "This is the subject\nContent-Type: text/html")" user@gmail.com < email.html
Run Code Online (Sandbox Code Playgroud)
给出了这个结果:
From: send@gmail.com
To: user@gmail.com
Subject: This is the subject
Content-Type: text/html
Message-ID: <538d7b66.Xs0x9HsxnJKUFWuI%maikeul06@gmail.com>
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
boundary="=_538d7b66.z5gaIQnlwb1f/AOkuuC+GwF1evCaG/XIHQMbMMxbY6satTjK"
This is a multi-part message in MIME format.
--=_538d7b66.z5gaIQnlwb1f/AOkuuC+GwF1evCaG/XIHQMbMMxbY6satTjK
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
<html>
<body>
<p>Helo wolrd</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
PS:我也试过用uuencode.当我尝试在网络邮件中显示消息时,我得到一个空白页面...
我的要求是将所有.csv文件附加到一个文件夹中,并通过一个邮件发送它们.
这是尝试过的,
mutt -s "subject" -a *.csv -- abc@gmail.com < subject.txt
Run Code Online (Sandbox Code Playgroud)
上面的命令不起作用(它不识别多个文件)并抛出错误
Error sending message, child exited 67 (User unknown.).
Could not send the message.
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用多个-a
选项,如下所示,
mutt -s "subject" -a aaa.csv -a bbb.csv -- abc@gmail.com < subject.txt
Run Code Online (Sandbox Code Playgroud)
这按预期工作. 但这对于100个文件来说是不可行的.我应该能够使用文件掩码(就像*.csv一样来获取所有csv文件).我们有什么方法可以像单个命令一样使用*.csv吗?
谢谢
我正在尝试使用mailx命令从Linux命令行发送邮件.我可以从我的本地域发送没问题,但我想设置邮件从我的Gmail帐户发送以及接收发送到我的Gmail帐户的邮件.
配置我的mail.rc后如下:
account gmail {
set smtp=smtps://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=USERNAME@gmail.com
set smtp-auth-password=PASSWORD
set ssl-verify=ignore
}
Run Code Online (Sandbox Code Playgroud)
我会得到错误:
Resolving host smtp.gmail.com . . . done.
Connecting to 74.125.25.109 . . . connected.
Missing "nss-config-dir" variable.
"/home/USERNAME/dead.letter" 11/354
. . . message not sent.
Run Code Online (Sandbox Code Playgroud)
查找什么"NSS-配置-目录"是经过这里,我所在的certN.db和keyN.db文件,并补充说,我mail.rc像这样:
account gmail {
set smtp=smtps://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=USERNAME@gmail.com
set smtp-auth-password=PASSWORD
set ssl-verify=ignore
set nss-config-dir=/home/USER/.mozilla/firefox/LOCATION.default
}
Run Code Online (Sandbox Code Playgroud)
现在当我尝试使用此命令发送邮件时:
echo "sent from gmail account" | mailx -v -A gmail -s "Command line mail" SomeEmail@domain.com
Run Code Online (Sandbox Code Playgroud)
我明白了:
Resolving host …
Run Code Online (Sandbox Code Playgroud) 我一直在用
mail -s "here is a log file" "person@example.com" < log/logfile.log
Run Code Online (Sandbox Code Playgroud)
过去常见的标题:
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Run Code Online (Sandbox Code Playgroud)
但现在文件更长我得到非名字附件因为这个:
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Run Code Online (Sandbox Code Playgroud)
所以如果一切都失败了,请查看手册man mail
......
NAME
mailx - send and receive Internet mail
SYNOPSIS
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops]
[-A account] [-S variable[=value]] to-addr . . .
Run Code Online (Sandbox Code Playgroud)
这些选项都没有用,所以我怎么强迫Content-Type: text/plain
?
我需要通过mailx或邮件发送文件,但我发送它作为附件而不是在正文消息中.有什么方法可以做到吗?最终在solaris中是否还有其他可用于此类程序的工具?谢谢
我写的是shell script
用Linux发送电子邮件Mailx
,电子邮件必须包含文件附件和邮件正文.
目前正在发送附件的电子邮件:
output.txt | mail -s "Daily Monitoring" james@dell.com
Run Code Online (Sandbox Code Playgroud)
我想添加一个消息正文.我该怎么办?
Linux Mailx:
mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
Run Code Online (Sandbox Code Playgroud) 嗨,我在RHS5上安装了ssmtp ssmtp-2.61-22.el5.i386.rpm
我的/etc/ssmtp/ssmtp.conf更新如下: -
AuthUser=mymail@gmail.com
AuthPass=mypassword
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
UseTLS=Yes
RewriteDomain=gmail.com
Run Code Online (Sandbox Code Playgroud)
还重新评估如下:
root:mymail@gmail.com:smtp.gmail.com:587
Run Code Online (Sandbox Code Playgroud)
我有关闭sendmail服务
当我尝试使用ssmtp发送电子邮件时,我得到以下错误
[root@ctmtest ssmtp]# echo "test" | ssmtp -vvv mymail@gmail.com
[<-] 220 smtp.gmail.com ESMTP v26sm42795996pfi.56 - gsmtp
[->] EHLO ctmtest
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
ssmtp: Cannot open smtp.gmail.com:587
Run Code Online (Sandbox Code Playgroud)
我用这个错误搜索了很多标签,但无法解决这个问题
我的系统能够在端口587上连接smtp.gmail.com
[root@ctmtest ssmtp]# telnet smtp.gmail.com 587
Trying 74.125.200.108...
Connected to smtp.gmail.com (74.125.200.108).
Escape character is '^]'.
220 smtp.gmail.com ESMTP o90sm11695907pfi.17 - gsmtp
Run Code Online (Sandbox Code Playgroud)
有人修过这个吗?请建议
我想发送一封HTML电子邮件.
有一个纯文本文件,如下所示:
From: "name" <name@email.com>
To: name@email.com
Subject: First Email
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
Content-Disposition: inline
<strong>Hello, World!</strong>
Run Code Online (Sandbox Code Playgroud)
我mailx
像这样跑,
mailx -t -S smtp=server.com name@email.com < file
Run Code Online (Sandbox Code Playgroud)
它发送一个纯文本电子邮件,然后打印:
Ignoring header field "MIME-Version: 1.0"
Ignoring header field "Content-Type: text/html; charset=us-ascii"
Ignoring header field "Content-Disposition: inline"
Run Code Online (Sandbox Code Playgroud)
为什么?
如何发送HTML电子邮件?
其他消息来源说使用-a
标志并指定内容类型,
但-a
在我的版本mailx
是附件; 所以这不起作用.