【问题标题】:Insufficient Permission [403] sending email权限不足 [403] 发送电子邮件
【发布时间】:2018-11-08 15:36:15
【问题描述】:

我正在尝试在我的网络应用程序(当前在本地主机)中发送电子邮件,我正在使用我用于控制台应用程序的下一个代码(及其工作),它应该打开一个网页询问谷歌帐户:

public async Task<String> SendEmail(String from, String text)
{
    try
    {
        UserCredential credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
            new ClientSecrets
            {
                ClientId = "-------------",
                ClientSecret = "----------"
            },
            new[] { GmailService.Scope.GmailSend },
            "user",
            CancellationToken.None,
            new FileDataStore(this.GetType().ToString()));

        // Create Gmail API service.
        var service = new GmailService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = this.GetType().ToString()
        });

        string plainText = "To: -------@gmail.com," + from + "\r\n" +
                           "Subject: T2S\r\n" +
                           "Content-Type: text/html; charset=us-ascii\r\n\r\n" +
                           text;

        var newMsg = new Google.Apis.Gmail.v1.Data.Message();
        newMsg.Raw = Base64UrlEncode(plainText.ToString());
        service.Users.Messages.Send(newMsg, "me").Execute();
        return "Done";
    }
    catch (Exception ex)
    {
        System.Console.WriteLine(ex.Message);
        return "False";
    }
}

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

我收到了错误:

Google.Apis.Requests.RequestError

权限不足 [403]

错误[消息[权限不足]位置[-] 原因[insufficientPermissions] 域[全局]

【问题讨论】:

  • Web 应用程序应该如何打开 GMail 网页?
  • 对于控制台应用程序是自动的
  • 将“用户”更改为“XXXX”并尝试为我重新授权,如果解决了请告诉我
  • @CamiloTerevinto .net 客户端库会自动处理打开 google 身份验证的窗口。至于发送需要打开 gmail 网页,这不是 gmail api。
  • @DaImTo 这在控制台(即用户应用程序)上有意义,而不是在不应有任何用户登录以查看新的 Chrome 窗口弹出窗口的托管应用程序上......

标签: c# google-api google-oauth gmail-api google-api-dotnet-client


【解决方案1】:

谢谢DalmTo,确实它在更改后工作得非常好:

将“用户”更改为“XXXX”

【讨论】:

    猜你喜欢
    • 2015-10-11
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2015-04-21
    相关资源
    最近更新 更多