Python实现发送邮件:smtplib与MIMEText模块教程
需积分: 0 64 浏览量
更新于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 上传
2021-01-20 上传
2023-03-31 上传
2020-09-18 上传
2020-09-21 上传
2020-09-20 上传
2020-12-23 上传
weixin_38628362
- 粉丝: 6
- 资源: 897