【发布时间】:2022-10-06 04:40:31
【问题描述】:
我正在尝试将 Google 的 Gmail API 集成到我的 .Net Core (c#) 控制台应用程序中。我有使用日历、文档和表格 API 的概念证明,但我不知道如何使用 Gmail API 起草电子邮件。
我能找到的唯一指南使用 Java (https://developers.google.com/gmail/api/guides/drafts),但我不确定如何翻译以下部分,特别是 Properties、Session 和 MimeMessage 类型:
// Encode as MIME message
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
MimeMessage email = new MimeMessage(session);
email.setFrom(new InternetAddress(fromEmailAddress));
email.addRecipient(javax.mail.Message.RecipientType.TO,
new InternetAddress(toEmailAddress));
email.setSubject(messageSubject);
email.setText(bodyText);
我不想发送电子邮件,我只想创建一个将出现在我的草稿文件夹中的草稿。这是我到目前为止所拥有的:
static void Main(string[] args){
string[] gmailScopes = { GmailService.Scope.GmailCompose };
var credential = GetCredentialsFromFile(gmailScopes);
GmailService service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = APPLICATION_NAME
});
//*** create a MimeMessage??? ***
string messageHtml = \"This is a test<br/><h1>Hello, World</h1>\";
//string messageHtmlEncoded = Base64UrlEncoder.Encode(messageHtml);
Draft draft = new Draft
{
Message = new Message
{
//Raw = messageHtmlEncoded
}
};
}
private GoogleCredential GetCredentialsFromFile(string[] scopes)
{
GoogleCredential credential;
using var stream = new FileStream(\"client_secrets.json\", FileMode.Open, FileAccess.Read);
credential = GoogleCredential.FromStream(stream).CreateScoped(scopes);
return credential;
}
任何有关如何使用 Google api 创建草稿的帮助将不胜感激。
一个附带的问题,一旦我能够得到这个工作,草稿会驻留在用于身份验证的服务帐户中还是会在我的草稿文件夹中?
提前致谢。
标签: c# .net-core google-api gmail-api