Gmail APIを使用して、ユーザーの直接メールではなく、提供されたユーザーの別名として送信する方法はありますか?ユーザーエイリアスとしてメッセージを送信
は、私は私のGoogleの組織における一般的なユーザーを持っており、それが私のアプリの罰金が異なるセクションでは、電子メールを送信する必要が送信現時点で[email protected]
に属するすべてのような[email protected]
、[email protected]
いくつかの別名を持っています指定されたエイリアスとして。
以下はエラーなしで指定されたユーザーとして電子メールを送信する私のコードです。
private static async Task<GmailService> GetAuthorizedGmailService()
{
var serviceAccountEmail = "[email protected]";
string AuthFile = HttpContext.Current.Server.MapPath("");
X509Certificate2 certificate = new X509Certificate2(AuthFile,"", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential;
credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
User = "[email protected]",
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, "[email protected]");
await request.ExecuteAsync();
誰もが知っていますか?
私はHTTPヘッダーのfromセクションに設定しようとしましたが、ユーザーのダイレクトメールアドレスからメッセージを受け取ります。これらのエイリアスごとにユーザーアカウントを作成する必要はないので、適切な電子メールアドレスとして送信することができます。
メッセージの「From」ヘッダーを変更するだけで動作します。エイリアスである限り、「From:support @ example.com」 – Tholle
残念ながら、それは私のために働いていません。私はリクエストヘッダーを読んで、送信元アドレスがユーザーに割り当てられたエイリアスの1つであることを確認しましたが、依然としてユーザーのプライマリ電子メールとして送信されました。おそらくユーザープロファイルの設定か、Scopeヘッダーの設定ですか?現在のところ、私が許可しているのはhttps://www.googleapis.com/auth/gmail.sendです –