首页 > 生活常识 >

Python发送email的3种方法Python教程

2025-05-20 15:39:05

问题描述:

Python发送email的3种方法Python教程,有没有人理理我呀?急死啦!

最佳答案

推荐答案

2025-05-20 15:39:05

Python发送email的3种方法:轻松实现邮件自动化

在现代编程中,Python以其简洁优雅的语法和强大的库支持,成为处理各种任务的理想工具。其中,发送电子邮件是一项常见的需求,无论是用于通知、提醒还是批量发送信息,Python都能轻松应对。本文将介绍三种使用Python发送电子邮件的方法,帮助你快速掌握这一技能。

方法一:使用`smtplib`模块

`smtplib`是Python标准库中的一个模块,专门用于发送电子邮件。通过它,我们可以轻松地与SMTP服务器通信并发送邮件。

```python

import smtplib

from email.mime.text import MIMEText

def send_email():

sender = 'your_email@example.com'

receiver = 'recipient@example.com'

password = 'your_password'

message = MIMEText('这是一封测试邮件', 'plain', 'utf-8')

message['From'] = sender

message['To'] = receiver

message['Subject'] = 'Python发送邮件测试'

try:

smtp_server = smtplib.SMTP_SSL('smtp.example.com', 465)

smtp_server.login(sender, password)

smtp_server.sendmail(sender, [receiver], message.as_string())

print("邮件发送成功")

except Exception as e:

print(f"邮件发送失败: {e}")

finally:

smtp_server.quit()

if __name__ == "__main__":

send_email()

```

注意事项:

- 确保启用SMTP服务,并获取正确的SMTP服务器地址和端口。

- 如果你的邮箱服务商启用了双重认证,可能需要生成应用专用密码。

方法二:使用`yagmail`库

`yagmail`是一个简单易用的第三方库,旨在简化邮件发送过程。只需几行代码即可完成复杂的邮件发送任务。

```bash

pip install yagmail

```

```python

import yagmail

def send_email_yagmail():

sender = 'your_email@example.com'

password = 'your_password'

receiver = 'recipient@example.com'

yag = yagmail.SMTP(sender, password)

contents = ['这是一封测试邮件', '附件内容']

yag.send(to=receiver, subject='Python发送邮件测试', contents=contents)

if __name__ == "__main__":

send_email_yagmail()

```

优点:

- 无需手动设置邮件格式。

- 支持HTML内容和附件。

方法三:使用`email`库构建复杂邮件

对于需要发送带附件或HTML内容的邮件,`email`库提供了更灵活的选项。

```python

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.base import MIMEBase

from email import encoders

import smtplib

def send_complex_email():

sender = 'your_email@example.com'

receiver = 'recipient@example.com'

password = 'your_password'

msg = MIMEMultipart()

msg['From'] = sender

msg['To'] = receiver

msg['Subject'] = 'Python发送复杂邮件测试'

body = "这是邮件正文"

msg.attach(MIMEText(body, 'plain'))

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', f"attachment; filename= {filename}")

msg.attach(part)

text = msg.as_string()

try:

server = smtplib.SMTP('smtp.example.com', 587)

server.starttls()

server.login(sender, password)

server.sendmail(sender, receiver, text)

print("邮件发送成功")

except Exception as e:

print(f"邮件发送失败: {e}")

finally:

server.quit()

if __name__ == "__main__":

send_complex_email()

```

适用场景:

- 需要发送带有附件或HTML内容的邮件时,此方法尤为实用。

以上三种方法分别适用于不同的场景和需求。无论你是初学者还是有经验的开发者,都可以根据实际情况选择最适合的方式。希望这篇文章能帮助你更好地掌握Python发送电子邮件的技术!如果还有其他问题,欢迎随时交流。

---

希望这篇文章能够满足您的需求!如果有任何进一步的要求,请随时告诉我。

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。