如何使用 Python 发送邮件

简介: 如何使用 Python 发送邮件

Python 可以通过使用内置的 smtplib 库来实现自动发送邮件的功能。下面是一个详细的教程和示例代码,演示了如何使用 Python 发送邮件。

 

1. 准备工作

 

首先,你需要一个可用的邮箱账号来发送邮件。这里以 Gmail 为例,需要开启“允许低安全性应用访问”选项。

 

2. 安装依赖库

 

确保已经安装了 `smtplib` 和 `email` 库。

```bash
pip install secure-smtplib
pip install email
```

 

3. 编写代码

 

下面是一个简单的示例代码,演示了如何使用 Python 发送邮件。

 

```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
 
# 邮件发送者和接收者
sender = 'your_email@gmail.com'
receiver = 'recipient_email@gmail.com'
 
# 邮件内容
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = Header('Python 邮件测试', 'utf-8').encode()
 
# 邮件正文
msg.attach(MIMEText('这是一封使用 Python 自动发送的邮件。', 'plain', 'utf-8'))
 
# 连接 SMTP 服务器
smtp_server = 'smtp.gmail.com'
smtp_port = 587
username = 'your_email@gmail.com'
password = 'your_email_password'
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()  # 开启 TLS 加密
server.login(username, password)
 
# 发送邮件
server.sendmail(sender, receiver, msg.as_string())
print('邮件发送成功!')
 
# 关闭连接
server.quit()
```

 

在上面的示例中,需要将 `your_email@gmail.com` 和 `recipient_email@gmail.com` 替换为实际的发件人和收件人邮箱地址,`your_email_password` 替换为发件人邮箱的密码。

 

4. 运行代码

 

运行上面的代码,如果一切正常,你应该能收到一封来自 Python 的测试邮件。

 

在实际应用中,除了基本的文本邮件,还可以发送包含附件的邮件。下面是一个示例,演示如何发送带有附件的邮件:

 

```python
from email.mime.base import MIMEBase
from email import encoders
 
# 创建一个带有附件的邮件
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = Header('Python 邮件测试(带附件)', 'utf-8').encode()
 
# 邮件正文
msg.attach(MIMEText('这是一封带有附件的邮件。', 'plain', 'utf-8'))
 
# 添加附件
filename = 'example.txt'
attachment = open(filename, 'rb')
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="{}"'.format(filename))
msg.attach(part)
 
# 发送邮件
server.sendmail(sender, receiver, msg.as_string())
print('带有附件的邮件发送成功!')
 
# 关闭连接
server.quit()
```

 

在这个示例中,`example.txt` 是你要发送的附件文件名,可以根据需要修改。通过这种方式,你可以发送包含附件的邮件,提供更多样化的邮件内容。

 

发送带有附件的邮件实际上是在构建邮件内容时添加了附件部分。在构建邮件时,我们使用了 `MIMEMultipart` 类来创建一个多部分邮件,其中包含了邮件的文本部分和附件部分。

 

附件部分的内容通过创建一个 `MIMEBase` 对象,并设置其类型和编码方式。然后,将附件内容读取并编码成 base64 格式,再添加到 `MIMEBase` 对象中。最后,通过设置附件的头部信息,指定附件的文件名和格式等信息。

 

当邮件发送时,邮件服务器会根据构建的邮件内容,将邮件发送到指定的收件人邮箱。接收邮件的邮箱客户端会根据邮件的内容格式进行解析,从而正确显示邮件的文本内容和附件信息。

相关文章
|
Python
python实现发送邮件demo
python实现发送邮件demo
64 1
|
数据安全/隐私保护 Python
python 发送邮件demo
python 发送邮件demo
52 1
|
Unix 数据安全/隐私保护 Python
python自动生成Excel表格数据并发送邮件案例
python自动生成Excel表格数据并发送邮件案例
250 0
|
1月前
|
Python
python使用smtp发送邮件
python使用smtp发送邮件
19 0
|
3月前
|
数据安全/隐私保护 Python
如何使用Python自动发送邮件?
如何使用Python自动发送邮件?
76 1
|
5月前
|
Python
python发送邮件
python发送邮件
45 1
|
5月前
|
网络安全 数据安全/隐私保护 Python
Python SMTP发送邮件
Python SMTP发送邮件
|
6月前
|
运维 Shell Linux
第十四章 Python发送邮件(常见四种邮件内容)
第十四章 Python发送邮件(常见四种邮件内容)
|
6月前
|
API Python
Python邮箱API发送邮件的方法和步骤
使用Python发送邮件涉及导入smtplib和email模块,设置发件人、收件人、主题和内容,然后连接SMTP服务器(如示例中的smtp.example.com)并使用SMTP方法发送。完整代码示例包括异常处理,确保邮件发送成功或提供错误信息。通过这种方式,可以实现Python的自动化邮件发送功能。
|
6月前
|
存储 安全 网络安全
使用 Python 发送邮件的简单示例
使用Python发送邮件的简单示例,涉及`smtplib`库。配置SMTP服务器(如163.com)地址、端口、邮箱及密码。设置发送者、接收者、邮件主题和内容。创建SMTP对象,登录,发送邮件,并关闭连接。实际操作时,推荐使用SSL/TLS协议并妥善保管密码。
37 0