我可以让 google API 只从我的电子邮件发送电子邮件吗

can I make google API that send email just from my email

您好,我正在尝试制作从我的电子邮件向真实用户发送电子邮件的 C# 应用程序,我希望该程序仅从我的帐户发送电子邮件,我是否必须完成制作 api 的完整过程从不同的用户发送电子邮件,或者有一种方法可以只与我的电子邮件建立联系

首先,如果您有 google 工作区帐户。然后,您可以使用具有域范围委托的服务帐户,并委托给您域中的用户。然后,当您 运行 您的应用程序时,就像该用户正在发送电子邮件一样。例如在域上创建一个 noreply 用户,然后从他们那里发送电子邮件。

string ApplicationName = "Gmail API .NET Quickstart";
            const string serviceAccount = "clawskeyboard-smtp@clawskeyboard-api.iam.gserviceaccount.com";

            var certificate = new X509Certificate2(@"D:\Creds.p12", "notasecret", X509KeyStorageFlags.Exportable);

            var gsuiteUser = "noreply@yourdomain.com";

            var serviceAccountCredentialInitializer = new ServiceAccountCredential.Initializer(serviceAccount)
            {
                User = gsuiteUser,
                Scopes = new[] { GmailService.Scope.Gmail }

            }.FromCertificate(certificate);

如果这是我怀疑的标准 gmail 帐户,那么事情会困难得多。首先,您需要设置 oauth2 并将您的应用程序授权为您自己。这可以很容易地完成。

 UserCredential credential;
        using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            credPath = Path.Combine(credPath, ".credentials/Creds.json");
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            GoogleClientSecrets.FromStream(stream).Secrets, Scopes, "user", CancellationToken.None,
            new FileDataStore(credPath, true)).Result;
        }
        return credential;

请记住观看它,但如果刷新令牌过期,您将需要再次授权它。