gpt4 book ai didi

c# - 如何创建 Gmail API 消息

转载 作者:太空狗 更新时间:2023-10-29 22:30:34 24 4
gpt4 key购买 nike

我想使用 Google 的 Gmail API 发送消息。我已成功通过身份验证,正在尝试使用 GmailService 发送消息。

我想用这个:

myService.Users.Messages.Send(myMessage, "me").Execute();

其中 myService 是 Google.Apis.Gmail.v1.GmailService,myMessage 是 Google.Apis.Gmail.v1.Data.Message

myService 很好,我已经完成了 OAuth 舞蹈。我可以从我的收件箱中获取消息等等。但是我不知道如何构造myMessage。我有一个标准的 .NET MailMessage,具有人类可读的主题、正文、收件人、发件人等。

但 Google Message 类采用字段 PayloadRaw。将完整的 MailMessage 转换为可以设置为 PayloadRaw 属性的字符串的最简单方法是什么?或者这根本不是我应该做的?

The documentation for the Message class .

最佳答案

我找到了一个解决方案。奇怪的是,.NET 似乎并不原生/轻松地支持这一点。不过有一个不错的 nuget 包,称为 AE.Net.Mail,它可以将易于创建的消息对象写入流。

Here's the sample code that pointed me in that direction .

复制粘贴代码,因为网站似乎已关闭,Google 的缓存可能不会永远存在:

using System.IO;
using System.Net.Mail;
using Google.Apis.Gmail.v1;
using Google.Apis.Gmail.v1.Data;

public class TestEmail {

public void SendIt() {
var msg = new AE.Net.Mail.MailMessage {
Subject = "Your Subject",
Body = "Hello, World, from Gmail API!",
From = new MailAddress("[you]@gmail.com")
};
msg.To.Add(new MailAddress("yourbuddy@gmail.com"));
msg.ReplyTo.Add(msg.From); // Bounces without this!!
var msgStr = new StringWriter();
msg.Save(msgStr);

var gmail = new GmailService(Context.GoogleOAuthInitializer);
var result = gmail.Users.Messages.Send(new Message {
Raw = Base64UrlEncode(msgStr.ToString())
}, "me").Execute();
Console.WriteLine("Message ID {0} sent.", result.Id);
}

private static string Base64UrlEncode(string input) {
var inputBytes = System.Text.Encoding.UTF8.GetBytes(input);
// Special "url-safe" base64 encode.
return Convert.ToBase64String(inputBytes)
.Replace('+', '-')
.Replace('/', '_')
.Replace("=", "");
}
}

关于c# - 如何创建 Gmail API 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com