如何用python发邮件
时间: 2023-09-25 13:06:22 浏览: 169
### 回答1:
可以使用Python内置的smtplib库来发送邮件。首先需要连接到SMTP服务器,然后使用SMTP对象的sendmail方法发送邮件。以下是一个简单的Python代码示例:
```python
import smtplib
from email.mime.text import MIMEText
# 邮件内容
msg = MIMEText('这是一封测试邮件', 'plain', 'utf-8')
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = '测试邮件'
# 发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 25
smtp_username = 'sender@example.com'
smtp_password = 'password'
smtp_conn = smtplib.SMTP(smtp_server, smtp_port)
smtp_conn.login(smtp_username, smtp_password)
smtp_conn.sendmail(smtp_username, [msg['To']], msg.as_string())
smtp_conn.quit()
```
需要替换的内容包括:邮件内容、发件人邮箱、收件人邮箱、SMTP服务器地址、SMTP服务器端口、发件人邮箱用户名、发件人邮箱密码。
### 回答2:
使用Python发送电子邮件需要安装 `smtplib` 和 `email` 库。
首先,通过 `smtplib` 建立与邮件服务器的连接。例子中以SMTP服务器为例:
```
import smtplib
# 建立与SMTP服务器的连接
server = smtplib.SMTP('服务器地址', 端口号)
# 例如:server = smtplib.SMTP('smtp.gmail.com', 587) - 使用Gmail的SMTP服务器
# 开启TLS加密(可选)
server.starttls()
# 登录到邮箱账户
server.login("发件邮箱地址", "密码")
```
接下来,使用 `email` 模块创建邮件。例子中以文本邮件为例:
```
from email.mime.text import MIMEText
# 创建邮件
msg = MIMEText("邮件正文内容")
msg['Subject'] = "邮件主题"
msg['From'] = "发件人邮箱地址"
msg['To'] = "收件人邮箱地址"
```
在创建邮件时,可以根据需求选择其他邮件类型,比如带附件的邮件(使用 `email.mime.multipart.MIMEMultipart`)或带HTML内容的邮件(使用 `email.mime.text.MIMEText`,并设置 `msg.ishtml(True)`)等。
最后,通过SMTP服务器发送邮件:
```
# 发送邮件
server.sendmail("发件人邮箱地址", "收件人邮箱地址", msg.as_string())
# 关闭与SMTP服务器的连接
server.quit()
```
以上是使用Python发送邮件的基础流程。具体实现还需要填充具体的服务器地址、端口号、发件人、收件人等信息。
### 回答3:
使用Python发送电子邮件需要使用到SMTP(简单邮件传输协议)库进行操作。以下是使用Python发送邮件的步骤:
1. 导入所需的库
首先,导入smtplib库,该库是Python内置的用于发送邮件的标准库。同时,还需要导入email库来构建邮件内容。
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
```
2. 建立连接
使用smtp对象连接到SMTP服务器,并进行身份验证。需要提供SMTP服务器地址、端口号以及登录信息(发件人邮箱和密码)。
```python
smtp_server = "smtp.example.com"
smtp_port = 587
sender_email = "sender@example.com"
password = "password"
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(sender_email, password)
```
3. 创建邮件内容
使用MIMEMultipart对象创建一个邮件实例,并设置发件人、收件人、主题等信息。可以使用MIMEText对象来添加邮件正文内容。
```python
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = "receiver@example.com"
message["Subject"] = "邮件主题"
text = "邮件正文"
message.attach(MIMEText(text, "plain"))
```
4. 添加附件(可选)
如果需要添加附件,可以使用MIMEBase对象创建一个附件实例,并将其附加到邮件实例中。
```python
from email.mime.base import MIMEBase
from email import encoders
attachment = open("file.txt", "rb")
part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", "attachment", filename="file.txt")
message.attach(part)
```
5. 发送邮件
调用sendmail方法发送邮件。需要提供发件人、收件人和邮件内容。
```python
server.sendmail(sender_email, "receiver@example.com", message.as_string())
```
6. 关闭连接
发送完毕后,调用quit方法关闭与SMTP服务器的连接。
```python
server.quit()
```
以上是使用Python发送邮件的基本步骤,根据需要可以进行相应的调整和扩展。
阅读全文