如何通过UNIX mailx
命令发送电子邮件?
Answers:
一个例子
$ echo "something" | mailx -s "subject" recipient@somewhere.com
发送附件
$ uuencode file file | mailx -s "subject" recipient@somewhere.com
并发送附件并编写邮件正文
$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com
uuencode
是过去千年的遗留技术,它不能产生我们今天所说的“附件”。基本上,它在消息文本的末尾添加了一个机器可读的杂物。在当今时代,正确识别MIME的邮件程序将为您提供更好的服务。不幸的是,目前还没有普遍支持的mailx
MIME功能替代,但是如果您有mutt
,那可能是阻力最小的途径。
这个给你 :
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
PS。正文和主题应使用双引号引起来。从取出的报价FROM_EMAIL
和To_EMAIL
而替代电子邮件地址。
mailx -s "subjec_of_mail" abc@domail.com < file_name
通过mailx
实用程序,我们可以从发送文件unix
到mail server
。在上面的代码中,我们可以看到第一个参数是-s "subject of mail"
第二个参数mail ID
,最后一个参数是我们要附加的文件名
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c和-b是可选的。
-s:指定主题;如果主题包含空格,请使用引号。
-c:将复本发送给以逗号分隔的用户列表。
-b:将密件抄送发送给以逗号分隔的用户列表。
希望我的回答能澄清您的疑问。
echo "Sending emails ..."
NOW=$(date +"%F %H:%M")
echo $NOW " Running service" >> open_files.log
header=`echo "Service Restarting: " $NOW`
mail -s "$header" abc.xyz@google.com, \
cde.mno@yahoo.com, \ < open_files.log
这是处理带有多个附件的邮件发送的多功能功能:
enviaremail() {
values=$(echo "$@" | tr -d '\n')
listargs=()
listargs+=($values)
heirloom-mailx $( attachment=""
for (( a = 5; a < ${#listargs[@]}; a++ )); do
attachment=$(echo "-a ${listargs[a]} ")
echo "${attachment}"
done) -v -s "${titulo}" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://$1 \
-S from="${2}" \
-S smtp-auth-user=$3 \
-S smtp-auth-password=$4 \
-S ssl-verify=ignore \
$5 < ${cuerpo}
}
函数调用:enviaremail“ smtp.mailserver:port”“ from_address”“ authuser”“'pass”“”目标“”用空格分隔的附件列表“
注意:删除通话中的双引号
此外,请记住在使用该功能之前在外部定义电子邮件的$ titulo(主题)和$ cuerpo(正文)
如果要发送两个以上的人或DL:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
这里: