用python实现通过smtp 发送邮件
时间: 2023-07-18 07:03:03 浏览: 48
利用 Python 发送邮件需要使用到 smtplib 库。
具体实现步骤如下:
1. 导入 smtplib, email.mime.text 和 email.mime.multipart 库
```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
```
2. 设置发件人、收件人、抄送人、邮件主题等信息
```python
from_addr = '发件人邮箱地址'
to_addr = '收件人邮箱地址'
cc_addr = '抄送人邮箱地址'
password = '发件人邮箱密码'
smtp_server = 'smtp.邮箱服务器地址:端口号'
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Cc'] = cc_addr
msg['Subject'] = '邮件主题'
```
3. 添加邮件正文内容和附件等信息
```python
# 添加邮件正文
text = '邮件正文'
msg.attach(MIMEText(text, 'plain'))
# 添加附件
with open('附件路径', 'rb') as f:
attach_file = MIMEText(f.read(), 'base64', 'utf-8')
attach_file['Content-Type'] = 'application/octet-stream'
attach_file.add_header('Content-Disposition', 'attachment', filename='附件名称')
msg.attach(attach_file)
```
4. 登录邮箱服务器并发送邮件
```python
# 登录邮箱服务器并发送邮件
s = smtplib.SMTP_SSL(smtp_server)
s.login(from_addr, password)
s.sendmail(from_addr, [to_addr, cc_addr], msg.as_string())
s.quit()
```
完整代码示例:
```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from_addr = '发件人邮箱地址'
to_addr = '收件人邮箱地址'
cc_addr = '抄送人邮箱地址'
password = '发件人邮箱密码'
smtp_server = 'smtp.邮箱服务器地址:端口号'
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Cc'] = cc_addr
msg['Subject'] = '邮件主题'
# 添加邮件正文
text = '邮件正文'
msg.attach(MIMEText(text, 'plain'))
# 添加附件
with open('附件路径', 'rb') as f:
attach_file = MIMEText(f.read(), 'base64', 'utf-8')
attach_file['Content-Type'] = 'application/octet-stream'
attach_file.add_header('Content-Disposition', 'attachment', filename='附件名称')
msg.attach(attach_file)
s = smtplib.SMTP_SSL(smtp_server)
s.login(from_addr, password)
s.sendmail(from_addr, [to_addr, cc_addr], msg.as_string())
s.quit()
```