SHELL实现邮件发送附件功能

    工作需要,想将一些内网的系统监控信息通过邮件定时发送到外网邮箱,sendmail配置搞不懂,msmtp可以发邮件正文却不能发附件,mutt听说可以但自己的系统装了半天没装成功,因此干脆自己整一个吧。

    当然前提是内网有一台smtp服务器,不然谁帮你发邮件到外网。

    下面是我写的脚本:

  
  
  
  
  1. #bin/sh  
  2.  
  3. filename=$1                                              #附件(参数传入) 
  4. content=`base64 $filename`                               #附件base64编码  
  5. [email protected]                                 #邮件服务器域名  
  6. IP=10.11.12.13 25                                        #邮件服务器IP 端口  
  7. user=`base64 test`                                       #发送邮件账号(base64编码)  
  8. pwd=`base64 123456`                                      #发送邮件口令(base64编码)  
  9. [email protected]                                           #接收邮箱  
  10.  
  11. (  
  12. sleep 1  
  13. echo "helo $mailsvr"                                     #跟服务器打招呼  
  14. sleep 1   
  15. echo "auth login"                                        #登录认证  
  16. sleep 1  
  17. echo $user                                               #输入账号口令  
  18. echo $pwd  
  19. sleep 1  
  20. echo "mail from: $mailsvr"                               #发件人  
  21. sleep 1  
  22. echo "rcpt to: $rcpt"                                    #收件人  
  23. sleep 1  
  24. echo "data"                                              #数据输入开始  
  25. sleep 1  
  26. echo "subject:${filename}                                #邮件主题(这里用附件名)  
  27. Hello xx!                                                #邮件正文  
  28. Content-type:multipart/mixed;Boundary="a"                #附件声明  
  29. --a  
  30. Content-type:text/plain; charset="gb2312"                #中文编码声明  
  31. Content-Transfer-Encoding: base64                        #附件编码声明  
  32. Content-Disposition:Attachment;filename=\"${filename}\"  #附件名  
  33. $content                                                 #附件的内容  
  34. --a  
  35. .  
  36. "  
  37. sleep 1  
  38. echo "quit" 
  39.  )| telnet $IP   

注:利用管道模式,连接过程中要有一些停顿,因此加了一些sleep.

    将脚本保存成mymail.sh,就可以用“mymail.sh 附件名”来发送附件,可以将系统日志等很方便的发送出去,加入crontab更可以实现自动发送。

    完。

本文出自 “JUN的技术笔记” 博客,请务必保留此出处http://junxin.blog.51cto.com/988207/1010843

你可能感兴趣的:(shell,telnet,smtp)