以用户别名身份发送消息

3
有没有一种方法可以使用Gmail API以提供的用户别名之一而不是用户直接电子邮件发送电子邮件?
我在我的Google组织中有一个普通用户,它有一些别名,例如help@example.comsupport@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
很不幸,这对我没有起作用。我已经阅读了请求头,并确保发件地址是分配给用户的别名之一,但它仍然以用户的主要电子邮件地址发送。也许这是用户配置文件中的设置或者是范围头?因为目前我只允许使用https://www.googleapis.com/auth/gmail.send。 - Adrian van Wyk
1个回答

1

Tholle所发表的评论是正确的。在“From”标题中添加别名使其使用该别名。

我的问题在于,尽管用户已被分配别名,但您还必须将其添加到用户Gmail设置中的“发送邮件作为”中。

我所要做的就是前往那里添加别名,然后它就不会用用户的主要地址覆盖“From”标题了。

设置位置:设置 > 帐户 > 发送邮件作为:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接