2017-01-25 1 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 헤더의 시작 부분에서 설정을 시도했지만 여전히 사용자의 직접 이메일 주소에서 메시지를받습니다. 각 별칭에 대한 사용자 계정을 만들지 않아도되므로 적절한 이메일 주소로 보낼 수 있습니다.

+0

메시지의 '보낸 사람'헤더 만 변경하면 작동합니다. 'From : support @ example.com'이 별칭 인 한. – Tholle

+0

불행히도 그것은 나를 위해 일하지 않았습니다. 요청 헤더를 읽고 보낸 사람 주소가 사용자에게 할당 된 별칭 중 하나인지 확인했지만 여전히 사용자의 기본 전자 메일 주소로 왔습니다. 사용자 프로필 또는 Scope 헤더의 설정 일 수 있습니까? 현재 내가 허용하는 것은 https://www.googleapis.com/auth/gmail.send입니다. –

답변

0

Tholle 님의 코멘트가 정확했습니다. From 헤더에 별명을 추가하면 별명이 사용됩니다.

내가 겪고있는 문제는 사용자에게 별칭이 할당되어있는 동안 사용자 Gmail 설정에서 메일 보내기에 추가해야한다는 것입니다.

내가 할 일은 별칭을 거기에 추가 한 다음 사용자 기본 주소가있는 From 헤더를 무시하지 않아도된다는 것입니다.

설정은 다음 위치에 있습니다. 설정> 용량> 다음으로 메일 보내기 :