Изображение HTML не отображается в сообщении MIME, отправленном через API Gmail в VBA, используется 3D

Я отправляю электронные письма в формате HTML через Gmail REST API в VBA, а изображение HTML не отображается в отправленном сообщении. Я добавил тег заголовка img, я пробовал утвержденную версию изображения "ci3.googleusercontent.com" в качестве источника, пробовал png и jpg. Поскольку я отправляю информацию по электронной почте в теле запроса POST, я не думаю, что мне нужно использовать Base64. Пробелов нет, поэтому не нужно беспокоиться о% 20 и преобразовании в +.

Есть другие идеи?

Sub SendGmail()
    Dim result As String, myURL As String, postData As String
    Dim winHttpReq As Object
    Dim x As Integer

    Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

    myURL = "https://www.googleapis.com/upload/gmail/v1/users/me/messages/send"
    postData = "From: 'Michael F' <[email protected]>" & vbCr & _
            "Subject: Test Message " & Now() & vbCr & _
            "Reply-To: [email protected]" & vbCr & _
            "To: [email protected]" & vbCr & _
            "Content-Type: text/html; charset=utf-8" & vbCr & _
            "Content-Transfer-Encoding: quoted-printable" & vbCr & vbCr & _
            "<b>Test Message</b><p>" & vbCr & vbCr & _
            "<img alt='ExampleLogo' " & _
            "title='ExampleLogo' src='http://www.example.com/LogoSignature.png'>"

            '*Putting 3D right after src= solved the problem!*

    winHttpReq.Open "POST", myURL, False
        winHttpReq.SetRequestHeader "Host", "www.googleapis.com"
        winHttpReq.SetRequestHeader "Content-Length", Len(postData)
        winHttpReq.SetRequestHeader "Content-Type", "message/rfc822"
        winHttpReq.SetRequestHeader "Authorization", "Bearer <mycode>"
        winHttpReq.Send (postData)
        Set winHttpReq = Nothing   
End Sub

Вот выдержка из полученного источника электронного письма в формате HTML. Отправленное письмо в моей папке «Отправленные» тоже не показывает изображение, но HTML есть, что тоже странно ...

MIME-Version: 1.0
X-Received: by 10.50.30.9 with SMTP id o9mr838664igh.36.1434063589114; Thu, 11
 Jun 2015 15:59:49 -0700 (PDT)
Received: from 4.apps.googleusercontent.com named unknown by
 gmailapi.google.com with HTTPREST; Thu, 11 Jun 2015 18:59:48 -0400
From: "'Michael F'" <[email protected]>
Reply-To: [email protected]
Date: Thu, 11 Jun 2015 18:59:48 -0400
Message-ID: <[email protected]>
Subject: Test Message 6/11/2015 17:59:51
To: [email protected]
Content-Type: multipart/alternative; boundary=047d7bd76aead100b6051845f2ef

--047d7
Content-Type: text/plain; charset=UTF-8

*Test Message*

--047d7
Content-Type: text/html; charset=UTF-8

<b>Test Message</b><p>

<img></p>

--047d7--

person michaelf    schedule 11.06.2015    source источник


Ответы (1)


Я нашел решение, но надеюсь, что кто-то сможет объяснить, что происходит. У меня возникли проблемы с отображением HTML-изображения в электронных письмах, отправленных из Gmail REST. Однако я обнаружил, что если я поставлю "3D" перед источником изображения, то есть <img src=3D'http://www.example.com/logo.png'> изображение будет отображаться в электронном письме. Некоторые поисковые запросы показывают, что 3D имеет какое-то отношение к цитате, но я этого не понимаю. Какова цель 3D? Есть ли опасность при его использовании?

Нашел этот старый поток SO, в котором объясняется:

person michaelf    schedule 11.06.2015