有没有一种方法可以使用Gmail API以提供的用户别名之一而不是用户直接电子邮件发送电子邮件?
我在我的Google组织中有一个普通用户,它有一些别名,例如
以下是我的代码,可以无错误地以指定用户的身份发送电子邮件。
上面是我创建 GmailService 的代码,下面是我执行 SendRequest 的过程。
我在我的Google组织中有一个普通用户,它有一些别名,例如
help@example.com
,support@example.com
,所有这些别名都属于generaluser@example.com
目前它可以正常发送电子邮件,但我的应用程序的不同部分需要将电子邮件作为指定的别名发送。以下是我的代码,可以无错误地以指定用户的身份发送电子邮件。
private static async Task<GmailService> GetAuthorizedGmailService()
{
var serviceAccountEmail = "serviceaccount@gserviceaccount.com";
string AuthFile = HttpContext.Current.Server.MapPath("");
X509Certificate2 certificate = new X509Certificate2(AuthFile,"", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential;
credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
User = "user@email.com",
Scopes = Scopes
}.FromCertificate(certificate));
GmailService service = null;
if (await credential.RequestAccessTokenAsync(CancellationToken.None))
{
service = new GmailService(new BaseClientService.Initializer()
{
ApplicationName = ApplicationName,
HttpClientInitializer = credential,
});
}
return service;
}
上面是我创建 GmailService 的代码,下面是我执行 SendRequest 的过程。
var mimeMessage = MimeKit.MimeMessage.CreateFromMailMessage(mail);
var gmailMessage = new Google.Apis.Gmail.v1.Data.Message
{
Raw = Encode(mimeMessage.ToString())
};
var service = await GetAuthorizedGmailService();
UsersResource.MessagesResource.SendRequest request = service.Users.Messages.Send(gmailMessage, "user@email.co.za");
await request.ExecuteAsync();
有人知道我如何指定使用哪个别名作为发件人地址吗?
我已经尝试在HTTP头的from部分设置它,但仍然从用户直接的电子邮件地址发送消息。我非常希望不必为每个这些别名创建用户帐户,以便我可以使用适当的电子邮件地址发送。
From
标头即可正常工作,例如From: support@example.com
。 - Tholle