2015-01-12 2 views
2

Я пытаюсь отправить html-адрес электронной почты с помощью gmail API, но по некоторым причинам он случайно отправляет электронное письмо как обычный/текстовый. Похоже, Google изменяет заголовок типа контента, который я установил. Есть ли причина для этого? Содержимое электронной почты точно такое же все время (как я его тестирую). Является ли API еще экспериментальным? Иногда, когда он работает, он также добавляет Content-Type: multipart/alternative; (хотя я никогда не устанавливал его).Почему gmail API отправляет html-письма в виде обычного текста?

Процесс кодирования выглядит, как показано ниже. Код - Go, но я думаю, что он сам объясняет, и процесс является агностиком языка.

header := make(map[string]string) 
    header["From"] = em.From.String() 
    header["To"] = em.To.String() 
// header["Subject"] = encodeRFC2047(em.Subject) 
    header["Subject"] = em.Subject 
    header["MIME-Version"] = "1.0" 
    header["Content-Type"] = "text/html; charset=\"utf-8\"" 
// header["Content-Transfer-Encoding"] = "base64" 
    header["Content-Transfer-Encoding"] = "quoted-printable" 
    var msg string 
    for k, v := range header { 
     msg += fmt.Sprintf("%s: %s\r\n", k, v) 
    } 

    msg += "\r\n" + em.Message 
    gmsg := gmail.Message{ 
     Raw: encodeWeb64String([]byte(msg)), 
    } 
    _, err = gmailService.Users.Messages.Send("me", &gmsg).Do() 
+1

Вопрос аналогичен http://stackoverflow.com/questions/26841905/sending-email-multipart-signed-rfc-3156-via-gmail-apis – SGC

ответ

1

Хм, вы уверены, что это не ошибка в вашей программе? Вы можете распечатать всю строку и вставить ее здесь?

Я просто использовал API Gmail для отправки по электронной почте, как:

 
To: <redacted> 
Subject: test html email 2015-01-14 09:45:40 
Content-type: text/html 

<html><body><b>hello</b>world</body></html> 

и это выглядело, как ожидается, к концу получателя в Gmail. Ну, на самом деле выглядит, как он получил завернул в многочастной/альтернативе и добавил текст/равнинную часть, а также (хорошо IMO):

 
<random trace headers> 
MIME-Version: 1.0 
From: <redacted> 
Date: Wed, 14 Jan 2015 09:46:41 -0800 
Message-ID: 
Subject: test html email 2015-01-14 09:45:40 
To: <redacted> 
Content-Type: multipart/alternative; boundary=089e0141a9a2875c38050ca05201 

--089e0141a9a2875c38050ca05201 
Content-Type: text/plain; charset=UTF-8 

*hello*world 

--089e0141a9a2875c38050ca05201 
Content-Type: text/html; charset=UTF-8 

<html><body><b>hello</b>world</body></html> 
--089e0141a9a2875c38050ca05201-- 

В любом случае, это делают некоторые синтаксическое/дезинфицирующее но делает разрешить отправку текста/html электронной почты.

+1

Из вашего ответа 'content-type: text/html' это помогло мне. – Nakilon

 Смежные вопросы

  • Нет связанных вопросов^_^