9527mwz

SMTP发送邮件

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

Python对SMTP支持有smtplibemail两个模块,email负责构造邮件,smtplib负责发送邮件。

首先,我们来构造一个最简单的纯文本邮件:

from email.mime.text import MIMEText
msg = MIMEText(\'hello, send by Python...\', \'plain\', \'utf-8\')

注意到构造MIMEText对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入\'plain\',最终的MIME就是\'text/plain\',最后一定要用utf-8编码保证多语言兼容性。

import smtplib
from email.mime.text import MIMEText


def send_mail(username, passwd, recv, title, content, mail_host=\'smtp.163.com\', port=25):
    \'\'\'
    发送邮件函数,默认使用163smtp
    :param username: 邮箱账号 xx@qq.com
    :param passwd: 邮箱密码
    :param recv: 邮箱接收人地址,多个账号以逗号隔开
    :param title: 邮件标题
    :param content: 邮件内容
    :param mail_host: 邮箱服务器
    :param port: 端口号
    :return:
    \'\'\'
    msg = MIMEText(content)  # 邮件内容
    msg[\'Subject\'] = title  # 邮件主题
    msg[\'From\'] = username  # 发送者账号
    msg[\'To\'] = recv  # 接收者账号列表
    smtp = smtplib.SMTP(mail_host, port=port)  # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25
    smtp.login(username, passwd)  # 发送者的邮箱账号,密码
    smtp.sendmail(username, recv, msg.as_string())
    # 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串
    smtp.quit()  # 发送完毕后退出smtp
    print(\'email send success.\')


email_user = \'xxxxxxxx@qq.com\'  # 发送者账号
email_pwd = \'ekrpleslkrbrbdge\'  # 发送者密码
maillist = \'xxxxxx@qq.com\' # 接受者邮箱
title = \'测试邮件标题\'
content = \'这里是我的第一个python程序发送的邮件测试内容\'
send_mail(email_user, email_pwd, maillist, title, content)

分类:

技术点:

相关文章: