我可以让 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;
请记住观看它,但如果刷新令牌过期,您将需要再次授权它。
您好,我正在尝试制作从我的电子邮件向真实用户发送电子邮件的 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;
请记住观看它,但如果刷新令牌过期,您将需要再次授权它。