shell下脚本实现发送邮件

来源:互联网 发布:数据堂怎么兼职 编辑:程序博客网 时间:2024/06/16 07:46

Shell脚本实现自动发邮件

    博客分类: 
  • 脚本编程
 

1、编辑用户Home目录下的.muttrc文件,设置发信环境。(可不做)

Java代码  收藏代码
  1. # cat /root/.muttrc   
  2. set envelope_from=yes  
  3. set from=owinux@sina.cn  
  4. set realname="Owinux"  
  5. set use_from=yes  
  6. set rfc2047_parameters=yes  
  7. set charset="utf-8"  
 

3、简要说明:


 [root@stb mapreduce]# cat map_shell_mail.sh 
#!/bin/bash
#
# send mail to fangchong@cucrz.com
#
from_name="fangchong@cuc-rz.com"


DATE=`date +%Y%m%d`
DATEM=`date +%Y-%m-%d"日  "%k:%M`
results=`tail -1 /home/mapreduce/$DATE-mapreduce.log`
sed -e 's/$/\r/' /home/mapreduce/$DATE-mapreduce.log > /home/mapreduce/$DATE-mapreduces.log
email_content=/home/mapreduce/$DATE-mapreduces.log
temp=/home/mapreduce/temp.txt
echo " $DATEM 开始检查 " &> $temp
echo "  " &>> $temp
echo "  " &>> $temp
echo "       $results" &>> $temp
echo "  " &>> $temp
echo "       附件成功结果,请注意查收 " &>> $temp
cat /home/mapreduce/temp.txt | mail -s " mapreduce The execution result report " -a $email_content $from_name

-s:指定主题

-a:附件

-c:抄送,需要抄送多人的话,须使用多个 -c 选项

 

使用上面的发信环境可以保证在页面查看邮件的时候,附件名不出现乱码。

其中 .muttrc 的 "set from"可以随便设置,可以是不存在的邮箱地址,当然正确的最好。

比如:

Java代码  收藏代码
  1. set from=abc@owinux.com  
 

不过也并不是你设置的正确的邮箱地址就一定能发送成功。

Java代码  收藏代码
  1. set from=owinux@126.com  
 

我新注册了一个 owinux@126.com,然后将 set from 设置为owinux@126.com,就没有成功。

原因在于126邮箱报了 550 MI:SPF 错误,连接到126 企业退信的常见问题? 发现

Java代码  收藏代码
  1. 550 MI:SPF 发信IP未被发送域的SPF许可。  
  
原创粉丝点击