python发邮件

2019-05-06  本文已影响0人  ben大福

使用非常简单,应用到了smtplib库,一般安装python之后默认就有。

需要设置服务器地址(这里以企业qq为例),端口号(在源代码底部现在为25),用户名,密码,发送邮件方地址,邮件内容,主题,发送方信息,具体个人设置应该如何设置可以参考各家邮件给出的三方接入教程

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import smtplib
from email.mime.text import MIMEText

# 设置服务器所需信息
# qq邮箱服务器地址
mail_host = 'smtp.exmail.qq.com'
# 163用户名
mail_user = 'xxx@qq.com'
# 密码(部分邮箱为授权码)
mail_pass = 'xxxxxxsdfklajsdfl'
# 邮件发送方邮箱地址
sender = 'xxx@qq.com'

# 设置email信息
# 邮件内容设置
content = "这里是邮件内容"
message = MIMEText(content, 'plain', 'utf-8')
# 邮件主题
message['Subject'] = "这里是邮件主题"
# 发送方信息
message['From'] = sender
# 接受方信息
# 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
receivers = [
    'xxx@qq.com',
    'xxx@163.com'
]
t = ""
for r in receivers:
    if t == "":
        t = r
    else:
        t = "%s,%s" % (t, r)
message['To'] = t

def send():
    # 登录并发送邮件
    try:
        smtpObj = smtplib.SMTP()
        # 连接到服务器
        smtpObj.connect(mail_host, 25)
        # 登录到服务器
        smtpObj.login(mail_user, mail_pass)
        # 发送
        smtpObj.sendmail(
            sender, receivers, message.as_string())
        # 退出
        smtpObj.quit()
        # print('success')
    except smtplib.SMTPException as e:
        print('error', e)
        # 打印错误


if __name__ == '__main__':
    send()

这个方法我也应用到了自动化打包工具内部,打包完成后自动发送邮件提示内部人员为了安全性我建议吧敏感信息不要写到代码中,可以写到打包服务器中

上一篇 下一篇

猜你喜欢

热点阅读