图片未在使用Gmail API创建的草稿邮件中呈现

时间:2016-05-30 05:32:24

标签: html-email gmail-api

我正在通过API在GMail中创建草稿消息,原始消息是(在base64urlencoding之前):

X-Sender: sender@sender.com.au
X-Receiver: receiver@receiver.com.au
MIME-Version: 1.0
From: sender@sender.com.au
To: receiver@receiver.com.au
Subject: This email is from API
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<html>
    <style>
        p{margin-top:0px; margin-bottom:0px;}
    </style>
    <body class="setupTab" style=" background-color:#CCCCCC; bEditID:b1st1; bLabel:body;">
        <center >
            <table cellpadding="0" width="500" cellspacing="0" id="topTable" height="450" >
                <tr valign="top" >
                    <td style=" background-color:#FFFFFF; bEditID:r1st1; bLabel:header; vertical-align:top; height:100; text-align:left;">
                        <img border="0" bEditID="r1sp1" bLabel="headerImage" id="r1sp1" src="https://cs31.salesforce.com/servlet/servlet.ImageServer?id=<someid>&oid=<someid>" ></img>
        .... 
    </body>
</html>

然后将用户重定向到https://mail.google.com/mail/u/0/#drafts?compose=<id>以查看该电子邮件,然后发送。

然而,图像(html的一部分)不会被渲染/显示。 html渲染还有一些其他小问题,但图像严重

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要创建一个多部分/相关消息,其中一部分是电子邮件的HTML内容,另一部分是图像。图像部分包含一个Content-ID标头,用于指定图像的ID,HTML图像标签使用格式cid:ID_HERE在src属性中引用该ID。

如果创建这个很难,您可以使用这里提到的脚本和库: creating a MIME email template with images to send with python / django

也是一个类似的问题:GMAIL API for sending Email with attachment

答案 1 :(得分:1)

我尝试使用替代方法,但无需将消息转换为多部分即可使用。

将所有'='符号替换为'= 3D',如下所示:

<img border=3D"0" bEditID=3D"r1sp1" bLabel=3D"headerImage" id=3D"r1sp1" src="https://cs31.salesforce.com/servlet/servlet.ImageServer?id=<someid>&oid=<someid>" ></img>

并使用Contact-Transfer-Encoding: quoted-printable

然后正确地在GMail草稿中渲染图像。