Gmail API发送邮件时不使用Base64编码 [英] Gmail API send message without using Base64 encode

查看:77
本文介绍了Gmail API发送邮件时不使用Base64编码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此界面: https://developers.google.com/gmail/api/v1/reference/users/messages/send#examples

我正在从网站上的表单测试API请求.它需要原始的Base64编码的字符串,例如:

<预> <代码> TUlNRS1WZXJzaW9uOiAxLjANClJlY2VpdmVkOiBieSAxMC4xOTQuNjguMjI3IHdpdGggSFRUUDsgV2VkLCAyNCBBdWcgMjAxNiAwMjo1OToxNyAtMDcwMCAoUERUKQ0KRGF0ZTogV2VkLCAyNCBBdWcgMjAxNiAxMTo1OToxNyArMDIwMA0KRGVsaXZlcmVkLVRvOiBrcnVub0B1bGl4dHJhdmVsLmNvbQ0KTWVzc2FnZS1JRDogPENBSzB5QmZZeEgwS1dGbng2TzNfZ3ZNRkxtVlB5RVY9NjdnQW5qRWdPaHIzSGZOTkJCUUBtYWlsLmdtYWlsLmNvbT4NClN1YmplY3Q6IFRoaXMgaXMgYSBzdWJqZWN0DQpGcm9tOiBLcnVub3NsYXYgVUxJWFRyYXZlbCA8a3J1bm9AdWxpeHRyYXZlbC5jb20-DQpUbzogS3J1bm9zbGF2IEJhbm92YWMgPGt1bm9rZGV2QGdtYWlsLmNvbT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0wNDdkN2JhZTQ5NjRhMmQ3MzAwNTNhY2U1NWUxDQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQoNClRoaXMgaXMgYSBib2R5DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgNCg0KPGRpdiBkaXI9Imx0ciI-VGhpcyBpcyBhIGJvZHk8YnI-PC9kaXY-DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMS0t

我该如何使用基本参数(例如主题,发件人,收件人,邮件正文)来发送邮件?

解决方案

您首先要构建带有标题的消息,例如您提到的 From Subject ,但是您必须在发送之前对消息进行编码.没有办法解决.

以下是使用JQuery的JavaScript示例:

 //Base64编码的邮件,并使其成为URL安全的//(将所有"+"替换为-",并将所有"/"替换为"_")var encodeMessage = btoa([发件人:sender@gmail.com \ r \ n",收件人:reciever@gmail.com \ r \ n",主题:邮件的主题\ r \ n \ r \ n",这是消息的文本"] .join(")).replace(/\ +/g,'-').replace(/\//g,'_');$ .ajax({方法:"POST",网址:"https://www.googleapis.com/gmail/v1/users/me/messages/send?access_token={access_token}",contentType:"application/json",数据:JSON.stringify({原始:encodedMessage})}); 

I am using this interface: https://developers.google.com/gmail/api/v1/reference/users/messages/send#examples

I was testing API request from the form on the website. It requires raw Base64 encoded string such as:

TUlNRS1WZXJzaW9uOiAxLjANClJlY2VpdmVkOiBieSAxMC4xOTQuNjguMjI3IHdpdGggSFRUUDsgV2VkLCAyNCBBdWcgMjAxNiAwMjo1OToxNyAtMDcwMCAoUERUKQ0KRGF0ZTogV2VkLCAyNCBBdWcgMjAxNiAxMTo1OToxNyArMDIwMA0KRGVsaXZlcmVkLVRvOiBrcnVub0B1bGl4dHJhdmVsLmNvbQ0KTWVzc2FnZS1JRDogPENBSzB5QmZZeEgwS1dGbng2TzNfZ3ZNRkxtVlB5RVY9NjdnQW5qRWdPaHIzSGZOTkJCUUBtYWlsLmdtYWlsLmNvbT4NClN1YmplY3Q6IFRoaXMgaXMgYSBzdWJqZWN0DQpGcm9tOiBLcnVub3NsYXYgVUxJWFRyYXZlbCA8a3J1bm9AdWxpeHRyYXZlbC5jb20-DQpUbzogS3J1bm9zbGF2IEJhbm92YWMgPGt1bm9rZGV2QGdtYWlsLmNvbT4NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0wNDdkN2JhZTQ5NjRhMmQ3MzAwNTNhY2U1NWUxDQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQoNClRoaXMgaXMgYSBib2R5DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgNCg0KPGRpdiBkaXI9Imx0ciI-VGhpcyBpcyBhIGJvZHk8YnI-PC9kaXY-DQoNCi0tMDQ3ZDdiYWU0OTY0YTJkNzMwMDUzYWNlNTVlMS0t

How do I instead use basic parameters (such as subject, sender, reciver, message body) to send mail?

解决方案

You first build the message with headers likeFrom and Subject as you mentioned, but you have to encode the message before sending it. There is no way around that.

The following is an example in JavaScript, with the use of JQuery:

// Base64-encode the mail and make it URL-safe 
// (replace all "+" with "-" and all "/" with "_")
var encodedMessage = btoa([
  "From: sender@gmail.com\r\n",
  "To: reciever@gmail.com\r\n",
  "Subject: Subject of the message\r\n\r\n",

  "This is the text of the message"
].join("")).replace(/\+/g, '-').replace(/\//g, '_');

$.ajax({
  method: "POST",
  url: "https://www.googleapis.com/gmail/v1/users/me/messages/send?access_token={access_token}",
  contentType: "application/json",
  data: JSON.stringify({           
    raw: encodedMessage
  })
});

这篇关于Gmail API发送邮件时不使用Base64编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆