python3 发送电子邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 发送电子邮件相关的知识,希望对你有一定的参考价值。

使用python3发送电子邮件,我之前在网上找了好几篇文章不论是都不行,最后在网上找到这篇文章了!

首先在163邮箱开启授权码

技术分享图片


记住这个授权密码,我们在python代码里面用的就是这个密码

不然会出现这个报错

技术分享图片

# -*- coding:utf-8 -*-

import smtplib
from email.header import Header
from email.mime.text import MIMEText

# 第三方 SMTP 服务
mail_host = "smtp.163.com"      # SMTP服务器
mail_user = "[email protected]"                  # 用户名
mail_pass = "08556220"               # 授权密码,非登录密码

sender = '[email protected]' #发邮件人
receivers = '[email protected],[email protected]' #收邮件人

content = 'test mail的内容' #邮件内容
title = 'test mail'  # 邮件主题

def sendEmail():

    message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
    message['From'] = "{}".format(sender)
    message['To'] = receivers
    message['Subject'] = title

    try:
        smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
        smtpObj.login(mail_user, mail_pass)  # 登录验证
        smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
        print("mail has been send successfully.")
    except smtplib.SMTPException as e:
        print(e)

# def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
#     email_client = smtplib.SMTP(SMTP_host)
#     email_client.login(from_account, from_passwd)
#     # create msg
#     msg = MIMEText(content, 'plain', 'utf-8')
#     msg['Subject'] = Header(subject, 'utf-8')  # subject
#     msg['From'] = from_account
#     msg['To'] = to_account
#     email_client.sendmail(from_account, to_account, msg.as_string())

#     email_client.quit()

if __name__ == '__main__':
    sendEmail()
    # receiver = '***'
    # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

文章借鉴

http://blog.csdn.net/sunhuaqiang1/article/details/70833199

以上是关于python3 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Python3:自动发送账单邮件

python3使用stmplib发送邮件

在 Python3 中使用 smtplib 发送多部分电子邮件,但未显示第二部分

python3 发送邮件携带附件(可携带多个不同格式的附件)

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

超实用的php代码片段