現象:
做了一個郵件告警腳本,python 寫的,名稱 mail.py,內容如下
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_user = '[email protected]'
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端口
測試:
分別在兩臺不同的aliyun機器上執行了修改後的命令
[root@iZm5exxxxxxxxxx ~]# python mail.py '[email protected]' 'teest' 'testtt'
[root@axxxxxx ~]# ./mail.py [email protected] "hello" "hello"
結果如下
成功!
總結:
aliyun發python郵件告警超時,更改端口號