用python编写邮件发送功能,代码少,也比较简。可分为http方式默认25端口发送和https方式默认465端口发送。
一..本机发送
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header sender = 'zabbix@qq.com' receivers = ['lao@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码 message = MIMEText('zabbix邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("zabbix邮件发送测试", 'utf-8') message['To'] = Header("测试01", 'utf-8') subject = 'Python SMTP 邮件测试01' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP('smtp.qq.com') smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"
二.用25端口方式
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header # 第三方 SMTP 服务 mail_host = "smtp.qq.com" # 设置服务器 mail_user = "zabbix" # 用户名 mail_pass = "123456" # 口令 sender = 'zabbix@qq.com' receivers = ['lao@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 message = MIMEText('zabbix邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("zabbix邮件发送测试", 'utf-8') message['To'] = Header("测试", 'utf-8') subject = 'Python SMTP 邮件测试' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25) # 25 为 SMTP 端口号 smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"
三.利用465端口方式
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.header import Header # 第三方 SMTP 服务 mail_host = "smtp.qq.com" # 设置服务器 mail_user = "zabbix" # 用户名 mail_pass = "123456" # 口令 sender = 'zabbix@qq.com' receivers = ['lao@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 message = MIMEText('zabbix告警邮件发送测试...', 'plain', 'utf-8') message['From'] = Header("zabbix告警邮件发送测试", 'utf-8') message['To'] = Header("zabbix告警邮件发送测试", 'utf-8') subject = 'Python zabbix告警邮件发送测试' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP_SSL() smtpObj.connect(mail_host, 465) # 465 为 SMTP 端口号 smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers, message.as_string()) print "邮件发送成功" except smtplib.SMTPException: print "Error: 无法发送邮件"