python发送邮件(smtplib、email、zmail)

本文介绍了如何使用Python的smtplib和email库发送邮件,包括邮箱配置、SMTP连接和授权。此外,还提到了zmail库作为替代方案,并提供了安装和使用示例。
摘要由CSDN通过智能技术生成

1、邮箱账号准备

        首先需要注册一个个人邮箱,本文以126邮箱为例。

        打开设置(网页版)中的POP3/SMTP/IMAP设置,开启POP3/SMTP服务,如果开启了会给出一串授权密码。开启后POP3/SMTP会显示已开启状态。

python登录邮箱的所需信息:

服务器地址smtp.126.com
服务器端口号25
邮箱账号邮箱名xxx@126.com
邮箱密码16位授权密码

2、smtplib库发送邮件

        python发送邮件主要使用smtplib和email这两个内置库,他们分别用于登录邮箱账号和构建邮件内容(因为邮件内容包含了主题、发件人、收件人、正文等,所以需要email来构建邮箱内容):

常用库:

import smtplib
from email.message import EmailMessage
from email.headerregistry import Address

示例代码:

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


def send_email(to_addrs):
    # 创建 SMTP 对象
    smtp = smtplib.SMTP()

    # 连接(connect)指定服务器
    smtp.connect("smtp.126.com", port=25)

    # 登录,需要:登录邮箱和授权码
    smtp.login(user="xxxx2@126.com", password="XXXXXXBCFLGLF")

    # 构造MIMEText对象,参数为:正文,MIME的subtype,编码方式
    message = MIMEText('亲爱的{}:\n    美好的一天开始了,快乐度过,微笑生活,我能行!早安,愿您好心情,加油!'.format(to_addrs), 'plain', 'utf-8')
    message['From'] = Header("Friend <XXXXXX992@126.com>", 'utf-8')  # 发件人的昵称
    message['To'] = Header(to_addrs, 'utf-8')  # 收件人的昵称
    message['Subject'] = Header('亲爱的{},早安'.format(to_addrs), 'utf-8')  # 定义主题内容
    print(message)

    smtp.sendmail(from_addr="XXXXXX92@126.com", to_addrs=to_addrs, msg=message.as_string())
    smtp.quit()


if __name__ == '__main__':
    send_email('XXXXXX92@qq.com')

注意:上述代码xxx.gmail.com谷歌邮箱发送失败! 可以选择下述内容zmail库。

3、zmail库发送邮件

zmail库使用时需要安装:

pip install zmail

示例代码:

import zmail


def base_user():
    server = zmail.server('xxx992@126.com', 'GIYCQAPBCFLGLF')
    info = {
        'subject': '早上好',
        'from': 'xxx',
        'content_text': 'Have a good time!'
    }
    res = server.send_mail('xxxx92@qqq.com', info)
    print(res)


if __name__ == '__main__':
    base_user()

参考博文:

# smtplib - 连接邮箱服务器、登录邮箱import smtplib_hpsym的博客-CSDN博客_import smtplib

Python通过smtplib发送邮件(2020最新最全版)_酒坛坛儿^_^的博客-CSDN博客_smtplib

python发送邮件_我是一个对称矩阵的博客-CSDN博客

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值