2015-06-11 1 views
0

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

Любые другие идеи?

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-- 

ответ

0

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

Найдено old SO thread который объясняет: