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

我如何通过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" 

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

它用MUTT命令更快

回声“身体的电子邮件”| mutt -a“File_Attachment.csv”-s“$(日期)的每日报告”-c cc_mail@g.com to_mail@g.com -y

  1. -c电子邮件cc列表
  2. -s主题列表
  3. – 发送邮件
 mailx -s "subjec_of_mail" abc@domail.com < file_name 

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

从手册页:

发送邮件

为了向一个或多个人发送消息,可以用参数来调用mailx,这些参数是邮件将被发送到的人的名字。 然后用户需要输入他的信息,然后在行首输入“control-D”。

换句话说,mailx从标准输入读取要发送的内容,并可以像正常一样重定向。 例如:

 ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr 
 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 

FOR通过下面的mailx使用发送附件

使用mailx中的新附件开关(-a)发送邮件附件。 -a选项更容易使用uuencode命令。

 # mailx -a file.txt -s "Subject" user@domain.com 

上面的命令将打印一个新的空白行。 在此处输入信息正文,然后按[Ctrl] + [d]发送。 这将正确地将文件附加到出站电子邮件与正确的内容类型和边界标题。

为了使这个更“可脚本化”,你可以发送消息没有身体与以下内容:

 # mailx -a file.txt -s "Subject" user@domain.com < /dev/null 

要发送邮件正文,请将上述命令中的/ dev / null替换为邮件正文文件。

自定义FROM地址

 MESSAGE="SOME MESSAGE" SUBJECT="SOME SUBJECT" TOADDR="u@u.com" FROM="DONOTREPLY" echo $MESSAGE | mail -s "$SUBJECT" $TOADDR -- -f $FROM