如何通过UNIX mailx命令发送电子邮件?

时间:2010-02-17 16:38:48

标签: unix email mailx

如何通过UNIX mailx命令发送电子邮件?

10 个答案:

答案 0 :(得分:100)

一个例子

$ 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

答案 1 :(得分:27)

你在这里:

echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"

PS。身体和主题应保持在双引号内。 在替换电子邮件地址时删除FROM_EMAILTo_EMAIL的引号。

答案 2 :(得分:6)

mailx -s "subjec_of_mail" abc@domail.com < file_name

通过mailx实用程序,我们可以将文件从unix发送到mail server。 在上面的代码我们可以看到 第一个参数是-s "subject of mail" 第二个参数是mail ID,最后一个参数是我们要附加的文件名

答案 3 :(得分:5)

使用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
  1. -c email cc list
  2. -s主题列表
  3. -y发送邮件

答案 4 :(得分:4)

从手册页:

  

发送邮件

     

要向一个或多个人发送消息,可以调用mailx   作为名称的参数   将邮件发送给的人。   然后期望用户输入   接着是他的信息   通过行开头的'control-D'。

换句话说,mailx读取要从标准输入发送的内容,并且可以像往常一样重定向。 E.g:

ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr

答案 5 :(得分:4)

mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress

-c和-b是可选的。

-s:指定主题;如果主题包含空格,请使用引号。

-c:将碳副本发送到以逗号分隔的用户列表。

-b:将盲目碳复制品发送到以逗号分隔的用户列表。

希望我的回答能澄清你的怀疑。

答案 6 :(得分:3)

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

答案 7 :(得分:1)

自定义FROM地址

MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"

echo $MESSAGE | mail  -s "$SUBJECT" $TOADDR  -- -f $FROM

答案 8 :(得分:0)

如果您要发送两个以上的人或DL:

echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com

此处:

  • -s =主题或邮件标题
  • -r =发件人邮件或DL

答案 9 :(得分:0)

这是一个多功能功能,可以处理带有多个附件的邮件发送:

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(正文)