我如何通过UNIX mailx
命令发送电子邮件?
一个例子
$ 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
给你:
echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"
注意:邮件主体和收件人应该放在双引号中。
在替换电子邮件地址时,请从FROM_EMAIL
和To_EMAIL
中删除引号。
mailx -s "subjec_of_mail" abc@domail.com < file_name
通过mailx
实用程序,我们可以从unix
发送文件到邮件服务器
。
在上面的代码中,我们可以看到:
第一个参数是-s“邮件主题”
第二个参数是邮件ID
,最后一个参数是我们要附加的文件名。
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress
-c和-b是可选的。
-s:指定主题;如果主题包含空格,请使用引号。
-c:将副本发送给以逗号分隔的用户列表。
-b:将暗送副本发送给以逗号分隔的用户列表。
希望我的回答解决了您的疑问。
MUTT命令可以使其更快
echo "Body Of the Email" | mutt -a "File_Attachment.csv" -s "Daily Report for $(date)" -c cc_mail@g.com to_mail@g.com -y
echo "" | mutt -s "test" -a ./file -- name@mail.com -y
- subtleseeker从手册页中可以看到:
发送邮件
要向一个或多个人发送消息,可以使用 mailx 带有收件人名称的参数来调用。然后用户需要输入他的消息,紧接着在行首输入“control-D”。
换句话说,mailx 从标准输入读取要发送的内容,并且可以像正常情况下一样进行重定向。例如:
ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr
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'" "destination" "list of attachments separated by space"
注意:在调用中删除双引号
此外,请记得在使用该函数之前,外部定义电子邮件的$titulo(主题)和$cuerpo(正文)
MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"
echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM
mail
和mailx
命令,具有不同的选项。 - tripleee如果您想发送超过两个人或分发列表:
echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com
这里:
mail
命令。 - hafichukuuencode
是一种过时的技术,来自一个已经过去的千年,它不能产生我们今天所说的“附件”。它基本上在消息文本末尾放置了一段机器可读的混乱代码。在当今这个时代,您最好使用一个正确支持MIME的邮件客户端。不幸的是,没有一种通用支持MIME功能的mailx
替代品,但如果您有mutt
,那可能是最简单的解决方案。 - tripleee