当前位置:优草派 > 问答 > Python问答

如何使用python发邮件?

标签: Python  Python  作者: zyg1321

回答:

Python是一种流行的编程语言,它在许多领域都有广泛的应用。其中一个重要的应用就是发送电子邮件。Python中有几个库可以用来发送电子邮件,包括smtplib、email和email.mime。在本文中,我们将从多个角度分析如何使用Python发送电子邮件。

一、设置SMTP服务器

在发送电子邮件之前,我们需要先设置SMTP服务器。SMTP是指简单邮件传输协议,它是用于发送电子邮件的标准协议。SMTP服务器的设置将依赖于您使用的电子邮件服务提供商。以下是一些常见的SMTP服务器设置:

1. Gmail

SMTP服务器:smtp.gmail.com

端口:587

安全连接类型:STARTTLS

2. Hotmail

SMTP服务器:smtp.live.com

端口:587

安全连接类型:STARTTLS

3. Yahoo

SMTP服务器:smtp.mail.yahoo.com

端口:587

安全连接类型:STARTTLS

4. Outlook.com

SMTP服务器:smtp.office365.com

端口:587

安全连接类型:STARTTLS

5. 163邮箱

SMTP服务器:smtp.163.com

端口:25

安全连接类型:无

请注意,有些SMTP服务器可能需要您先在电子邮件服务提供商的网站上启用SMTP访问权限。

二、使用smtplib库发送电子邮件

smtplib库是Python中用于发送电子邮件的标准库。以下是使用smtplib库发送电子邮件的基本步骤:

1. 导入smtplib库和email库

```python

import smtplib

from email.mime.text import MIMEText

```

2. 设置SMTP服务器

```python

smtp_server = 'smtp.gmail.com'

smtp_port = 587

smtp_username = 'your_email@gmail.com'

smtp_password = 'your_email_password'

smtp_conn = smtplib.SMTP(smtp_server, smtp_port)

smtp_conn.starttls()

smtp_conn.login(smtp_username, smtp_password)

```

3. 创建电子邮件

```python

msg = MIMEText('Hello World!')

msg['From'] = 'sender_email@gmail.com'

msg['To'] = 'recipient_email@gmail.com'

msg['Subject'] = 'Test Email'

```

4. 发送电子邮件

```python

smtp_conn.sendmail('sender_email@gmail.com', 'recipient_email@gmail.com', msg.as_string())

```

5. 关闭SMTP连接

```python

smtp_conn.quit()

```

三、使用email和email.mime库发送电子邮件

除了使用smtplib库发送电子邮件外,还可以使用email和email.mime库创建电子邮件。以下是使用email和email.mime库发送电子邮件的基本步骤:

1. 导入email库和email.mime库

```python

import email

import email.mime.text

```

2. 创建电子邮件

```python

msg = email.mime.text.MIMEText('Hello World!')

msg['From'] = 'sender_email@gmail.com'

msg['To'] = 'recipient_email@gmail.com'

msg['Subject'] = 'Test Email'

```

3. 使用smtplib库发送电子邮件

```python

smtp_server = 'smtp.gmail.com'

smtp_port = 587

smtp_username = 'your_email@gmail.com'

smtp_password = 'your_email_password'

smtp_conn = smtplib.SMTP(smtp_server, smtp_port)

smtp_conn.starttls()

smtp_conn.login(smtp_username, smtp_password)

smtp_conn.sendmail('sender_email@gmail.com', 'recipient_email@gmail.com', msg.as_string())

smtp_conn.quit()

```

四、使用Python发送带附件的电子邮件

有时候我们需要发送带附件的电子邮件。可以使用email.mime库中的MIMEBase类来创建带附件的电子邮件。以下是使用Python发送带附件的电子邮件的基本步骤:

1. 导入email.mime库和os库

```python

import os

import email.mime.multipart

import email.mime.text

import email.mime.image

import email.mime.application

```

2. 创建带附件的电子邮件

```python

msg = email.mime.multipart.MIMEMultipart()

msg['From'] = 'sender_email@gmail.com'

msg['To'] = 'recipient_email@gmail.com'

msg['Subject'] = 'Test Email with Attachment'

# 添加正文

body = email.mime.text.MIMEText('Hello World!')

msg.attach(body)

# 添加图片附件

with open('image.jpg', 'rb') as f:

img = email.mime.image.MIMEImage(f.read())

img.add_header('Content-Disposition', 'attachment', filename='image.jpg')

msg.attach(img)

# 添加其他附件

with open('document.pdf', 'rb') as f:

attach = email.mime.application.MIMEApplication(f.read())

attach.add_header('Content-Disposition', 'attachment', filename='document.pdf')

msg.attach(attach)

```

3. 使用smtplib库发送电子邮件

```python

smtp_server = 'smtp.gmail.com'

smtp_port = 587

smtp_username = 'your_email@gmail.com'

smtp_password = 'your_email_password'

smtp_conn = smtplib.SMTP(smtp_server, smtp_port)

smtp_conn.starttls()

smtp_conn.login(smtp_username, smtp_password)

smtp_conn.sendmail('sender_email@gmail.com', 'recipient_email@gmail.com', msg.as_string())

smtp_conn.quit()

```

五、

TOP 10
  • 周排行
  • 月排行