python 发邮件带上附件
时间: 2023-10-24 08:05:15 浏览: 88
利用Python发送邮件或发带附件的邮件
要使用Python发送带附件的电子邮件,你可以使用smtplib和email库。以下是一个简单的示例代码:
```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
# SMTP服务器地址和端口
smtp_server = 'your_smtp_server'
smtp_port = 587
# 发件人和收件人
sender_email = 'your_email@example.com'
receiver_email = 'recipient_email@example.com'
# 构建邮件对象
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = 'Python Email with Attachment'
# 邮件正文
body = 'This is the body of the email.'
message.attach(MIMEText(body, 'plain'))
# 附件路径和文件名
attachment_path = '/path/to/attachment.pdf'
attachment_filename = 'attachment.pdf'
# 读取附件文件并添加到邮件对象中
with open(attachment_path, 'rb') as attachment:
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename= {attachment_filename}')
message.attach(part)
# 连接SMTP服务器并发送邮件
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(sender_email, 'your_password')
server.send_message(message)
```
请注意,你需要将 `your_smtp_server` 替换为你的SMTP服务器地址,`your_email@example.com` 替换为发件人电子邮件地址,`recipient_email@example.com` 替换为收件人电子邮件地址,`/path/to/attachment.pdf` 替换为附件的实际路径(注意替换为你自己的路径),并提供正确的发件人密码以进行SMTP身份验证。
该示例使用了TLS加密与SMTP服务器建立安全连接。如果你的SMTP服务器不要求加密,请删除 `server.starttls()` 行。
希望以上信息对你有所帮助!如果有任何疑问,请随时问我。
阅读全文