使用python发送HTML丰富的电子邮件

蛋糕面包师

我正在尝试发送HTML丰富的电子邮件,到目前为止,代码可以正常工作,但是当我检查发送到的邮箱时,我在html消息内容中使用的颜色格式未显示。

到目前为止,这里是代码:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import smtplib

class EMail(object):
        """ Class defines method to send email of attachment
        """
        def __init__(self, sendto, mailFrom, server, usrname, password, files, debug=False, subjt=None):
                self.debug = debug
                self.mailto = sendto
                self.mailFrom = mailFrom
                self.smtpserver = server
                self.EMAIL_PORT = 587
                self.usrname = usrname
                self.password = password
                self.subject = subjt

                # self.send(files)

        def sendMessage(self, msgContent, files):

                #collect info and prepare email
                if files:
                    if self.subject == "":
                        #Subject should contains of file attached
                        if len(files) <=3: subjAdd = ','.join(files)
                        if len(files) > 3: subjAdd = ','.join(files[:3]) + '...'
                        self.subject= self.systemLogin() +" sent mail from maya "+ os.path.basename(subjAdd)
                print "subject: ", self.subject
                msg = self.prepareMail(self.mailFrom, self.mailto, self.subject, msgContent, files)

                # connect to server and send email
                server=smtplib.SMTP(self.smtpserver, port=self.EMAIL_PORT)
                server.ehlo()
                server.starttls()#use encrypted SSL mode
                server.ehlo() # to make starttls work
                server.login(self.usrname, self.password)
                server.set_debuglevel(self.debug)
                try:
                        failed = server.sendmail(From, to, msg.as_string())
                except Exception as er:
                        print er
                finally:
                        server.quit()

        def prepareMail(self, From, to, subject, msgHTML, attachments):
                msg = MIMEMultipart()
                msg['From'] = From
                msg['To'] = to
                msg['Date'] = formatdate(localtime=True)
                msg['Subject'] = subject

                #The Body message
                msg.attach(MIMEText(msgHTML, 'html'))
                msg.attach(MIMEText("Sent from maya by Mini Me"))
                if attachments:
                    for phile in attachments:
                            #we could check for MIMETypes here
                            part = MIMEBase('application',"octet-stream")
                            part.set_payload(open(phile, "rb").read())
                            Encoders.encode_base64(part)
                            part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(phile))
                            msg.attach(part)
                return msg

这是我要发送的HTML格式的文本,(由于CSS,我已经删除了很长的HTML标题部分)

<body class="body_foreground body_background" style="font-size: normal;" >
<pre>

---
 send.py | 4 <span class="ansi32">+</span><span class="ansi31">---</span>
 1 file changed, 1 insertion(+), 3 deletions(-)

<span class="ansi1">diff --git a/send.py b/send.py</span>
<span class="ansi1">index 87126d5..abb1fd8 100644</span>
<span class="ansi1">--- a/send.py</span>
<span class="ansi1">+++ b/send.py</span>
<span class="ansi36">@@ -49,14 +49,12 @@</span> class EMail(object):
                        server.quit()

        def prepareMail(self, From, to, subject, msgHTML, attachments):
<span class="ansi31">-              msg = MIMEMultipart('alternative')</span>
<span class="ansi32">+</span>               <span class="ansi32">msg = MIMEMultipart()</span>
                msg['From'] = From
                msg['To'] = to
                msg['Date'] = formatdate(localtime=True)
                msg['Subject'] = subject

<span class="ansi31">-              print msgHTML</span>
<span class="ansi31">-</span>
                #The Body message
                msg.attach(MIMEText(msgHTML, 'html'))
                msg.attach(MIMEText("Sent from maya by Mini Me"))
-- 
1.8.3.4 (Apple Git-47)


</pre>
</body>

</html>

似乎只有预标签格式无法正常工作的CSS ..为什么会这样?

佐德

Gmail不支持<style>阻止。您可以在此处查看流行邮件客户端之间的CSS支持比较:电子邮件中的CSS支持指南

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python发送富HTML电子邮件

来自分类Dev

使用python发送多封电子邮件

来自分类Dev

电子邮件的丰富数据

来自分类Dev

使用PHPMailer和html模板发送html电子邮件

来自分类Dev

使用PHPMailer和html模板发送html电子邮件

来自分类Dev

链接到对HTML丰富的Outlook电子邮件无效的部分

来自分类Dev

使用HTML文件在Appengine [PYTHON]中发送HTML电子邮件

来自分类Dev

Python:通过SMTP发送html格式的电子邮件

来自分类Dev

如何使用AngularJS发送HTML电子邮件?

来自分类Dev

使用Gmail API发送HTML电子邮件

来自分类Dev

如何使用R发送HTML电子邮件

来自分类Dev

HTML电子邮件未使用php发送

来自分类Dev

使用Laravel发送HTML电子邮件模板

来自分类Dev

如何使用HTML发送Google App脚本电子邮件

来自分类Dev

如何使用Django在电子邮件中发送HTML?

来自分类Dev

从HTML网页发送电子邮件而不使用Outlook

来自分类Dev

使用HTML / CSS发送PHP电子邮件

来自分类Dev

尝试使用PHP从html表单发送电子邮件

来自分类Dev

如何使用AngularJS发送HTML电子邮件?

来自分类Dev

使用Gmail API发送HTML电子邮件

来自分类Dev

Android-使用样式HTML发送电子邮件

来自分类Dev

使用PHP通过电子邮件发送HTML表单

来自分类Dev

使用php从html表单发送电子邮件

来自分类Dev

使用 HTML 表单发送电子邮件

来自分类Dev

如何使用 Python 电子邮件模块在电子邮件中发送文件?

来自分类Dev

使用Namecheap电子邮件发送Nodemailer电子邮件

来自分类Dev

使用Python发送带有HTML + plain_text电子邮件的PDF附件

来自分类Dev

在电子邮件python中发送多行熊猫数据帧,最好使用html格式

来自分类Dev

使用Python发送带有HTML + plain_text电子邮件的PDF附件

Related 相关文章

热门标签

归档