【Python】实现邮件发送功能

导读:本篇文章讲解 【Python】实现邮件发送功能,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

SMTP协议

SMTP(Simple Mail Transfer Protocol),简单邮件传送协议,是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。

常见SMTP服务器

电子邮件提供商 SMTP服务器域名
google smtp.google.com
网易163邮箱 smtp.163.com
网易126邮箱 smtp.126.com
腾讯 smtp.qq.com
新浪 smtp.sina.com
微软 smtp.live.com

开启SMTP服务(以126邮箱示例)

  1. 打开设置面板
    打开设置

  2. 验证
    验证

  3. 授权完成,获取授权码(这里就不展示授权码了)
    获取授权


发送一封纯文本邮件

sendText.py

import smtplib
from email.mime.text import MIMEText

# 填写SMTP服务器的域名和端口号
SMTP_SERVER = "smtp.126.com"
SMTP_PORT = 25


def send_mail(user, pwd, to, subject, text):
    msg = MIMEText(text)
    msg['From'] = user
    msg['To'] = to
    msg['Subject'] = subject

    smtp_server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
    print("连接SMTP服务器成功")
    try:
        print("开始加密会话")
        smtp_server.starttls()
        print("登录中...")
        smtp_server.login(user, pwd)
        print("开始发送邮件")
        smtp_server.sendmail(user, to, msg.as_string())
    except Exception as err:
        print(f"发送失败,原因: {err}")
    else:
        print("发送成功")
    finally:
        smtp_server.quit()


def main():
    send_mail('你的邮箱', '授权码',
              '对方的邮箱', '纯文本邮件', '这是一封纯文本邮件')


if __name__ == '__main__':
    main()

注意:需要先在main函数里写入自己的邮箱、SMTP服务授权码以及对方的邮箱等信息

$ python sendText.py
连接SMTP服务器成功
开始加密会话
登录中...
开始发送邮件
发送成功

打开邮箱查看已发送邮件
查看已发送邮件


发送一封带有附件的邮件

由于标准库smtplib添加各种附件比较麻烦冗杂,因此我们使用开源第三方库yagmail来发送带附件的邮件。首先安装yagmail

$ pip install yagmail

$ pip3 install yagmail

sendAttach.py

import yagmail

# SMTP服务器的域名和端口号
SMTP_HOST = 'smtp.126.com'
SMTP_PORT = 465

# content存放文件路径,这里我们以上面出现的几张图为例,一次编号为1.png、2.png、3.png、4.png
content = ['1.png', '2.png', '3.png', '4.png']
with yagmail.SMTP(user='你的邮箱', password='授权码', host=SMTP_HOST, port=SMTP_PORT) as yag:
    yag.send('对方的邮箱', '附件测试', '这是一封带有附件的邮件', content)

注意:需要先填写好自己的邮箱、SMTP服务授权码以及对方的邮箱等信息

$ python sendAttach.py

打开邮箱查看已发送邮件
查看已发送邮件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97116.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!