3月 18

Linux系统下shell用telnet通过smtp发邮件

之前shell中都是使用mail命令发邮件,但是出现一个问题,服务器在内网,必须使用smtp
服务。实现发邮件有两种方法。一、修改sendmail的配置,然后还是用mail命令,二、使用telnet
方式来发邮件。我将第二种方法记录下来。
我的smtp不需要认证服务,调用函数需要传入的参数依次为:发送人的邮件地址、收件人的
邮件地址、邮件主题、邮件内容、smtp的IP地址、smtp的端口

send_mail()
{
    (for i in "ehlo localhost.localdomain" "mail FROM:<${1}>" "rcpt TO:<${2}>" "data";
     do 
         sleep 1
         echo ${i}
         sleep 2
     done 
     echo "from:<${1}>"
     echo "subject:${3}"
     echo "to:<${2}>"
      echo ""
     echo "${4}"
     echo "."
     sleep 2 
     echo "QUIT")|telnet ${5} ${6}
}

#调用并传入参数
send_mail “simon-zzm@163.com” “test@test.com” “test” “ok!” “192.168.11.1” “25”