2017-01-25 3 views
2

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セクションに設定しようとしましたが、ユーザーのダイレクトメールアドレスからメッセージを受け取ります。これらのエイリアスごとにユーザーアカウントを作成する必要はないので、適切な電子メールアドレスとして送信することができます。

+0

メッセージの「From」ヘッダーを変更するだけで動作します。エイリアスである限り、「From:support @ example.com」 – Tholle

+0

残念ながら、それは私のために働いていません。私はリクエストヘッダーを読んで、送信元アドレスがユーザーに割り当てられたエイリアスの1つであることを確認しましたが、依然としてユーザーのプライマリ電子メールとして送信されました。おそらくユーザープロファイルの設定か、Scopeヘッダーの設定ですか?現在のところ、私が許可しているのはhttps://www.googleapis.com/auth/gmail.sendです –

答えて

0

Tholleのコメントが正しいです。 Fromヘッダーにエイリアスを追加すると、エイリアスが使用されます。

問題は、ユーザーにエイリアスが割り当てられているときに、ユーザーのGmail設定のようにメールを送信する必要があることです。

私がしなければならなかったのは、そこにエイリアスを追加してから、Fromヘッダーをユーザーのプライマリアドレスで上書きしないということでした。

設定は次のとおりです:設定>集計>メールを次のように送信してください:

関連する問題