用Linux shell 发送电子邮件

老家的Openwrt路由器上挂了一些脚本每天都完成一系列工作。通过e-mail 发送每天的记录。因为路由器的ROM空间有限,尽量只靠shell和自带的命令完成,这个邮件也不例外。主要部分来自互联网,只增加编码(因为日志都是gbk编码的,直接发送会乱码)

 

#!/bin/sh
sendmail(){
        smtp="smtp.126.com 25" # 邮件服务器地址+25端口
        smtp_domain="126.com" # 发送邮件的域名,即@后面的
        FROM="dindog@126.com" # 发送邮件地址
        RCPTTO=$1 # 收件人地址
        username_base64="xxxxxxx" # 用户名base64编码
        password_base64="xxxxxxx" # 密码base64编码
        ( for i in "ehlo $smtp_domain" "AUTH LOGIN" "$username_base64" "$password_base64" "MAIL FROM:<$FROM>" "RCPT TO:<$RCPTTO>" "DATA";do
                echo $i
                sleep 4
        done
        echo "From:<$FROM>"
        echo "To:<$RCPTTO>"
        echo "Subject:server alert"
        echo 'Content-Type: text/plain; charset="gbk"' #编码
        echo ""
        echo "this is a mail sent by telnet"
        echo "other content"
        echo ""
        echo "."
        sleep 2
        echo "quit" )|telnet $smtp
}
#sendmail xxx@163.com # 这里参数为收信地址

 

 

posted on 2015-12-19 22:34  dindog  阅读(269)  评论(0)    收藏  举报

导航