linux利用telnet调用远程smtp服务发送邮件

Linux下有很多地方需要发送邮件给管理员,比如系统资源使用情况、磁盘空间预警、重要数据自动备份等。

通常情况下,我们会采用mail命令发送邮件,但前提是系统安装了sendmail且正常配置。

最近入手了vps,简化的linux,很多功能被阉割不能调用mail命令,于是想到了利用telnet调用远程smtp服务发送邮件(smtp.163.com)

以下是实现的shell代码:

#!/bin/sh

send_mail()

{

  (for i in "ehlo luocheng" "AUTH LOGIN" "username" "userpwd" "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 "luocheng@163.com" "5456588@qq.com" "test" "ok!" "smtp.163.com" "25"

注意,函数中的username和userpwd需要base64加密

原文地址:https://www.cnblogs.com/aggavara/p/2760371.html