c# - 权限不足 [403] 发送电子邮件

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

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

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

Insufficient Permission [403]

Errors [Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]

最佳答案

谢谢DalmTo事实上,它在变化中工作得很好:

将“用户”改为“XXXX”

关于c# - 权限不足 [403] 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593523/

相关文章:

google-api - Google Calendar Javascript API列出了所有日历中的所有事件

.net - 带有 .NET Core 应用程序的 Google API

google-api - 谷歌类 API 补丁

google-oauth - OAuth 2.0 客户端 ID 的域名更改导致谷歌开发者控制台出错

php - 谷歌 YouTube API (v3) : how to access my unlisted/private videos from my server?

c# - 检测 UWP 应用中存在哪些 API

c# - 多线程 C# 环境中的 Mysql 事务

c# - 使用 Task.Factory.StartNew 新创建的线程启动非常慢

c# - 等待来自多个对象的任务

java - 如何在 Java 中将 Google 日历客户端与 GoogleCredentials 集成