Python实现发送邮件:smtplib与MIMEText模块教程
需积分: 0 126 浏览量
更新于2024-08-31
收藏 187KB PDF 举报
"这篇文章主要介绍了如何使用Python编程语言来实现发送邮件的功能,主要涉及的Python模块是smtplib和MIMEText。通过这些模块,我们可以构建一个简单的邮件发送程序,适用于163邮箱。"
在Python中实现发送邮件功能,我们需要使用内置的`smtplib`模块来处理SMTP(Simple Mail Transfer Protocol)协议,以及`email.mime.text`模块来创建邮件内容。首先,确保已经导入了这两个必要的模块:
```python
import smtplib
from email.mime.text import MIMEText
```
为了发送邮件,我们需要定义一个函数,该函数接收一些关键参数,如邮箱服务器、端口号、用户名、密码、收件人地址、邮件标题和邮件内容。这里是一个使用163邮箱作为示例的函数:
```python
def send_mail(username, passwd, recv, title, content, mail_host='smtp.163.com', port=25):
msg = MIMEText(content) # 创建邮件内容对象
msg['Subject'] = title # 设置邮件主题
msg['From'] = username # 设置发件人
msg['To'] = recv # 设置收件人
smtp = smtplib.SMTP(mail_host, port=port) # 连接SMTP服务器
smtp.login(username, passwd) # 登录邮箱,使用授权码而非普通密码
# 发送邮件
smtp.sendmail(username, recv, msg.as_string()) # 将邮件内容转换为字符串并发送
smtp.quit() # 发送完毕后关闭SMTP连接
print('邮件发送成功。')
```
在实际应用中,`send_mail`函数的`recv`参数可以接受一个或多个收件人地址,如果需要发送给多个收件人,只需要用逗号分隔各个地址即可。
请注意,163邮箱的SMTP服务器地址通常是`smtp.163.com`,而端口通常是25。在使用时,需要获取邮箱的授权码,而不是常规的登录密码。授权码是专门用于程序自动化发送邮件的安全密码。
当运行这个程序时,调用`send_mail`函数并提供相应的参数,例如:
```python
if __name__ == '__main__':
username = 'your_email@163.com'
passwd = 'your_authorization_code'
recv = 'recipient@example.com'
title = '邮件标题'
content = '邮件内容'
send_mail(username, passwd, recv, title, content)
```
请确保替换`your_email@163.com`、`your_authorization_code`、`recipient@example.com`、`邮件标题`和`邮件内容`为实际的值。这样,你的Python程序就能成功发送邮件了。这个方法同样适用于其他支持SMTP的邮件服务提供商,只需要更换相应的服务器地址和端口号。
2022-01-06 上传
2024-03-20 上传
2020-09-20 上传
2023-03-31 上传
2023-07-28 上传
2023-06-06 上传
2023-07-13 上传
2023-03-11 上传
2023-05-30 上传
weixin_38628362
- 粉丝: 6
- 资源: 899
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器