linux使用telnet自动发送mail.

本文转载自http://blog.csdn.net/vilicwh/article/details/46426267


自己学习或者工作中,遇到的一些问题,第一次文字记录,希望对人对己,都是一种帮助。

文章出发点: 需要在linux环境,做某些自动化测试工作,最终将测试结果,自动mail至同事们,这样省时方便,又有测试记录。

无奈自己才疏学浅,刚开始遇到这个问题,也不清楚改实现这个功能,只是知道应该有现成的工具mail,mailx等等,可以实现发送mail的功能;

但参考网上种种文章,说的都是乱七八糟的,怎么对这些工具进行配置也不知道,后搜到到可以使用telnet来完成邮件发送功能,

只需知道公司内服的smtp服务器地址及相应端口即可,简单方便,也无需配置,正好也符合自身的需求,故分享如下:

#!/bin/bash

#
#完成功能:
# 		1.自动测试将结果重定向至log,
#		2.将最终测试LOG上传至FTP保存,
#		3.自动mail通知人员,
#


#定义LOG FTP的地址/账户/密码
LOGFTP=`172.0.0.1`
LOG_USER="test"
LOG_PASSWD="test"

autoTest()
{
    local s_DATE=`date +%Y-%m-%d`
    local s_time=`date +%Y%m%d_%H%M%S`
    logname="${s_time}_test.log"   
    自定义测试过程 > /home/testlog/${s_DATE}/$logname 
	DATE=${s_DATE}
}

#当初验证公司内部,无需身份认证,如若需要,可参考网上,增加base64身份验证即可
sendMail()
{
  #定义了邮件发送者姓名,mail主题,smtp服务器的地址和端口
  _fromPerson="xxx@xxxx.com.cn" 
  _subject="Auto-Test-Result"
  _smptServer=172.0.0.2
  _smptPort=25
  
  (echo "EHLO localhost"			 
   sleep 2
   echo "MAIL FROM: ${_fromPerson}"
   sleep 2
   
   #使用shift用法,mail发送多位人员
   list=$@
   until [ $# -eq  0 ];do   
		echo "RCPT TO: $1"
		sleep 2
		shift
   done
   
   echo "DATA"
   echo "from:${_fromPerson}"
   echo "subject:${_subject}"
   for i in $list;do
		echo "to: $i"
		sleep 2
done

   echo ""
   echo "Dear all,"
   echo "The auto-test result as below:"
   echo ""
   cat $logname
   echo ""
   echo "ftp log path: ftp://TestLog/${LOGPATH}/$DATE/$logname"
   echo ""
   echo .
   sleep 2
   echo "QUIT") | telnet ${_smptServer} {_smptPort}  
   
}


echo "auto testing..."
autoTest

//自动上传测试结果至FTP,
//按年月日自动建立ftp文件夹
//按时分秒命名的LOG存放至相应文件夹(保证LOG唯一性 )
ftp -n 2>1 1>& /dev/null << EOF
open $LOGFTP
user ${LOG_USER} ${LOG_PASSWD}
ascii
prompt
mkdir TestLog
cd TestLog
mkdir $DATE


以上,只是基本完成功能,可以根据自己的需要来更改,此外上传ftp和sendmail时候,都将标准错误和标准输出,重定向至/dev/null;

毕竟我不想在我去拿机器的时候,看到满屏幕的动作。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值