现象:
作了一个邮件告警脚本,python 写的,名称 mail.py,内容以下python
#!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_user = 'admin@axxxxxxxxxxx.cn' mail_pass = '8xxxxxxxxxxxxj' def send_mail(to_list,subject,content): me = "zabbix 监控告警平台"+"<"+mail_user+">" msg = MIMEText(content, 'plain', 'utf-8') msg['Subject'] = subject msg['From'] = me msg['to'] = to_list try: s = smtplib.SMTP("smtpdm.aliyun.com", 25) s.login(mail_user,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() return True except Exception,e: print str(e) return False if __name__ == "__main__": send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
可是在执行python脚本时老是超时,没法执行,而同一个脚本在本身虚拟机上能正常运行,查看了很多资料都是复制粘贴云云,没有此类问题汇总。
本身无心中想到多是aliyun对25端口作了限制,为了验证本身的想法,将脚本中的 smtpdm.aliyun.com 后的 25 改成了 80端口ide
测试:
分别在两台不一样的aliyun机器上执行了修改后的命令测试
[root@iZm5exxxxxxxxxx ~]# python mail.py 'zxxxxxxxx@163.com' 'teest' 'testtt' [root@axxxxxx ~]# ./mail.py zxxxxxxxx@163.com "hello" "hello"
结果以下
成功!阿里云
总结:
aliyun发python邮件告警超时,更改端口号code