zabbix郵件警示python指令碼

來源:互聯網
上載者:User

標籤:zabbix   python   指令碼   郵件   linux   

之前儲存了一個zabbix的郵件指令碼,這次在使用中遇到了一些問題,這裡合大家分享一下。

#!/usr/bin/env python#-*- coding: UTF-8 -*-import smtplibimport sysfrom email.mime.text import MIMETextfrom email.header import Headerdef send_mail(to_email,subject,message):    sender = '[email protected]'    receiver = to_email    subject = 'python email test'    smtpserver = 'smtp.163.com'    username = 'xxxxx'    password = 'xxxxx'    msg = MIMEText(message, 'plain', 'utf-8')    msg['Subject'] = subject    msg['from'] = sender    msg['to'] = receiver    smtp = smtplib.SMTP()    smtp.connect(smtpserver)    smtp.login(username, password)    smtp.sendmail(sender, to_email, msg.as_string())    smtp.quit()if __name__ == '__main__':    send_mail(sys.argv[1],sys.argv[2],sys.argv[3])

當程式運行到 smtp.connect(smtpserver) 的時候,就卡住了,在本地Windows PC上使用pycharm執行就沒有問題

當時在網上找了各種資料,什麼加連接埠,ping smtp,dig smtp的,都不好使,最後又被我發現了一個指令碼,使用了其他的方法,不在使用 smtp.connect


指令碼如下:指令碼使在菜鳥教程中找到的

#!/usr/bin/python# -*- coding: UTF-8 -*- import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr my_sender='[email protected]'    # 寄件者郵箱帳號my_pass = 'xxxxxxxxxx'              # 寄件者郵箱密碼my_user='[email protected]'      # 收件者郵箱帳號,我這邊發送給自己def mail():    ret=True    try:        msg=MIMEText('填寫郵件內容','plain','utf-8')        msg['From']=formataddr(["FromRunoob",my_sender])  # 括弧裡的對應寄件者郵箱暱稱、寄件者郵箱帳號        msg['To']=formataddr(["FK",my_user])              # 括弧裡的對應收件者郵箱暱稱、收件者郵箱帳號        msg['Subject']="菜鳥教程發送郵件測試"                # 郵件的主題,也可以說是標題         server=smtplib.SMTP_SSL("smtp.qq.com", 465)  # 寄件者郵箱中的SMTP伺服器,連接埠是25        server.login(my_sender, my_pass)  # 括弧中對應的是寄件者郵箱帳號、郵箱密碼        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括弧中對應的是寄件者郵箱帳號、收件者郵箱帳號、發送郵件        server.quit()  # 關閉串連    except Exception:  # 如果 try 中的語句沒有執行,則會執行下面的 ret=False        ret=False    return ret ret=mail()if ret:    print("郵件發送成功")else:    print("郵件發送失敗")

裡面調用的是 server=smtplib.SMTP_SSL 經過我測試,只要網路波動不是很大,基本郵件都可以發送成功


下面是我更改後的,zabbix調用的指令碼:

#!/usr/bin/env python#_*_ coding:utf-8 _*_import smtplib, sysfrom email.mime.text import MIMETextfrom email.utils import formataddrdef send_mail(to_email, subject, message):    #郵箱地址和郵箱密碼    my_sender = '[email protected]'    my_pass = 'xxxxx'    my_user = to_email    #發送郵件的資訊主體,寄件者,收件者,內容    msg = MIMEText(message, 'plain', 'utf-8')    msg['From'] = formataddr(["Zabbix", my_sender])    msg['To'] = formataddr(["Ops", my_user])    msg['Subject'] = subject    #發送郵件    server = smtplib.SMTP_SSL("smtp.gmail.com", 465)    server.login(my_sender, my_pass)    server.sendmail(my_sender, [my_user, ], msg.as_string())    server.quit()if __name__ == '__main__':    send_mail(sys.argv[1],sys.argv[2],sys.argv[3])


zabbix郵件警示python指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.