iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python批量发送邮件
  • 370
分享到

Python批量发送邮件

2023-06-02 05:06:51 370人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1.SMTP协议SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一个相对简单的基于文本的协议, 在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以

1.SMTP协议

  • SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一个相对简单的基于文本的协议, 在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用tcp端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) DNS

2.python的smtplib库

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

  • smtplib.SMTP(host="",port=0,local_hostname=None,[timeout,]source_address=None):SMTP类定义作为SMTP的构造函数定义了一个SMTP客户端会话对象,功能是与smtp服务器建立连接,在连接成功后就可以向服务器发送相关请求,比如登陆、校验、发送、退出等。参数host是远程smtp主机地址、port是链接端口,默认25、local_hostname是将本地主机的FQDN(完整域名)发送 HELO/EHLO(标识用户身份)的指令、timeout为链接或尝试链接多少秒后超时、source_address是绑定到具有多个网络接口的计算机中的某个特定源地址上或特定的TCP端口,它需要一个元组(主机,端口);

3.开启邮箱SMTP协议

在使用SMTP协议发送邮件之前需要先查看发件人的邮箱是否开启SMTP协议,如qq邮箱的开启协议的方式是:找到邮箱的设置—>在设置页面中选择账户设置—>选择开启服务中的SMTP服务开启,点击开启后会弹出一个验证保密窗口,验证成功后就会自动生成授权码,这个授权码在发送邮件时会用到;

4.使用SMTP发送邮件

  • 在使用SMTP发送邮件发送邮件之前我们需要先导入smtplib模块和email.mime.text模块中的MIMEText

  • 然后构造一个MIMEText消息对象,其中第一个参数就是邮件正文、第二个参数是MIME的格式,第三个参数是编码。将发件人、收件人、主题都传入这个对象中;

  • 然后模拟登录服务器,使用smtplib库中的SMTP类创建SMTP的操作对象并连接smtp目标服务器,可以是163、QQ等,如果是163邮箱服务器地址是smtp.163.com,如果是qq邮箱服务器地址是smtp.qq.com。 访问邮箱的服务器之后需要使用login('邮箱地址','邮箱授权码')方法根据自己的账号登录服务器(这里的授权码就是之前开启SMTP协议生成的授权码),如果不登录是不能发邮件的;

  • 登录之后再使用send_message()方法将发送邮件的消息传递给SMTP对象,开始发送邮件;

import smtplibfrom email.mime.text import MIMETextfrom const_file import passwddef send_email(from_addr, to_addr, subject, passWord):    msg = MIMEText("邮件正文",'html','utf-8')    msg['From'] = from_addr    msg['To'] = to_addr    msg['Subject'] = subject    smtp_server = smtplib.SMTP('smtp.qq.com')    smtp_server.login(from_addr, password)    smtp_server.send_message(msg=msg)if __name__ == "__main__":    # passwd填写认证密码,不是登录密码    send_email("邮箱地址", "邮箱地址", "这是一封测试邮件", passwd)

5.邮件的批量发送

import smtplibfrom email.mime.text import MIMETextfrom const_file import passwddef send_email(from_addr, to_addr, subject, password):    msg = MIMEText("邮件正文",'html','utf-8')    msg['From'] = from_addr    msg['To'] = to_addr    msg['Subject'] = subject    smtp_server = smtplib.SMTP('smtp.qq.com')    smtp_server.login(from_addr, password)    smtp_server.send_message(msg=msg)if __name__ == "__main__":    send_list = ['a@163.com', 'b@163.com', 'c@163.com']    for to_addr in send_list:        send_email("邮箱地址", to_addr, "这是一封测试邮件", passwd)

参考:https://www.9xkd.com/user/plan-view.html?id=3823903948

--结束END--

本文标题: Python批量发送邮件

本文链接: https://www.lsjlt.com/news/228939.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作