python 使用HTML正文和内联附件发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用HTML正文和内联附件发送邮件相关的知识,希望对你有一定的参考价值。

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import sys
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders

# GMAIL
username = 'fullUser@address.com'
password = 'password'

# MESSAGE SETTINGS
SUBJECT = 'Subject String'
EMAIL_FROM = 'Email From String <name@domain.com>'
MAIL_TO = ''.join(sys.argv[1])
MAIL_TO_LIST = ['some@mail.com', MAIL_TO]

# COMPOSE MESSAGE
msg = MIMEMultipart()
msg['Subject'] = SUBJECT 
msg['From'] = EMAIL_FROM
#msg['Bcc'] = ', '.join(MAIL_TO)

# BODY
htmlBody = """\
<html>
  <head>
  <style type="text/css">
  </style>
  </head>
  <body>
  <img src="cid:attachTag" alt="Attached Imagef">
  </body>
</html>
"""
messageBody = MIMEText(htmlBody, 'html', 'utf-8')
msg.attach(messageBody)

# ATTACHMENT
attach = MIMEBase('application', "octet-stream")
attach.set_payload(open("full/path/to/file", "rb").read())
Encoders.encode_base64(attach)

attach.add_header('Content-ID', '<attachTag>')
attach.add_header('Content-Disposition', 'attachment; filename="String Filename"')
msg.attach(attach)

# SERVER AND SEND 
# ex: GMAIL
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username,password)

server.sendmail(EMAIL_FROM, MAIL_TO_LIST, msg.as_string())

以上是关于python 使用HTML正文和内联附件发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

在使用 Excel VBA 发送的电子邮件中内联附加图像

在 Python 中发送带有 HTML+plain_text 电子邮件的 PDF 附件

如何使用python发送包含正文和附件的邮件

使用 Django 在 HTML 电子邮件模板中将图像作为内联附件发送

Python - 发送带有多个图像附件的电子邮件

发送包含这些附件、htmlbody、内联图像或所有这些附件的 mime 消息?