2016-12-16 1 views
1

Я потратил два дня, пытаясь отправить письмо через Google OAuth playground без везения. Вот сырьевое сообщение Я пытаюсь отправить:Почему я продолжаю получать ответ «400 недействительных заголовков» при использовании игровой площадки Google GMail?

To: "Stanley Toles" <[email protected]>\r\nContent-type: text/html;charset=iso-8859-1\r\nMIME-Version: 1.0\r\nSubject: this would be the subject\r\n\r\nThis is the email sent by Stanley Toles 

Я base64 закодировать (URL-безопасное кодирование), что, а затем положить кодированные строки в теле запроса, как такой

{ 
    "raw": "VG86ICJTdGFubGV5IFRvbGVzIiA8c3Rhbi50b2xlc0B5YWhvby5jb20-XHJcbkNvbnRlbnQtdHlwZTogdGV4dC9odG1sO2NoYXJzZXQ9aXNvLTg4NTktMVxyXG5NSU1FLVZlcnNpb246IDEuMFxyXG5TdWJqZWN0OiB0aGlzIHdvdWxkIGJlIHRoZSBzdWJqZWN0XHJcblxyXG5UaGlzIGlzIHRoZSBlbWFpbCBzZW50IGJ5IFN0YW5sZXkgVG9sZXM" 
} 

Я тогда нажмите отправить запрос, и я получаю эту ошибку:

HTTP/1.1 400 Bad Request 
Content-length: 188 
X-xss-protection: 1; mode=block 
X-content-type-options: nosniff 
Expires: Fri, 16 Dec 2016 15:27:27 GMT 
Vary: Origin,X-Origin 
Server: GSE 
Cache-control: private, max-age=0 
Date: Fri, 16 Dec 2016 15:27:27 GMT 
X-frame-options: SAMEORIGIN 
Content-type: application/json; charset=UTF-8 
{ 
    "error": { 
    "code": 400, 
    "message": "Invalid to header", 
    "errors": [ 
     { 
     "domain": "global", 
     "message": "Invalid to header", 
     "reason": "invalidArgument" 
     } 
    ] 
    } 
} 

Я следую RFC 2822, так что я понятия не имею, почему я получаю эту ошибку. Почему я получаю эту ошибку?

+0

Try, чтобы сначала создать сообщение с заголовками likeFrom и Subject затем зашифровать сообщение перед его отправкой. Затем следуйте инструкциям [Отправка электронной почты] (https://developers.google.com/gmail/api/guides/sending#sending_messages). – noogui

+0

Работает ли [** этот минимальный пример **] (http://pastebin.com/sKCqra2n)? – Tholle

+0

@noogui Это не связано с фактическим API. Я просто пытаюсь использовать детскую площадку https://developers.google.com/oauthplayground/ –

ответ

3

Я не совсем уверен, почему вы получаете эту ошибку. Это работает, если вы изменить заголовки и кодировать его в base64 URL-сейф:

btoa(
    "From: \"Stanley Toles\" <[email protected]>\r\n" + 
    "To: \"Stanley Toles\" <[email protected]>\r\n" + 
    "Subject: this would be the subject\r\n" + 
    "Content-type: text/html;charset=iso-8859-1\r\n\r\n" + 

    "This is the email sent by Stanley Toles" 
).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); 
Смежные вопросы