有没有办法使用Gmail API作为提供的用户别名之一而不是用户直接发送电子邮件?
我的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部分设置它,但我仍然从用户的直接电子邮件地址获取消息。我非常希望不必为每个别名创建一个用户帐户,这样我就可以发送相应的电子邮件地址。
答案 0 :(得分:0)
Tholle发表的评论是正确的。在From头中添加别名使其使用别名。
我遇到的问题是当用户分配了别名时,您还必须像在用户Gmail设置中一样将其添加到发送邮件。
我只需要在那里添加别名,然后它就不会覆盖带有用户主地址的From标头。
设置位于:设置&gt;附件&gt;发送邮件为: