사용자 직접 이메일이 아닌 제공된 사용자 별칭 중 하나로 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 : support @ example.com'이 별칭 인 한. – Tholle
불행히도 그것은 나를 위해 일하지 않았습니다. 요청 헤더를 읽고 보낸 사람 주소가 사용자에게 할당 된 별칭 중 하나인지 확인했지만 여전히 사용자의 기본 전자 메일 주소로 왔습니다. 사용자 프로필 또는 Scope 헤더의 설정 일 수 있습니까? 현재 내가 허용하는 것은 https://www.googleapis.com/auth/gmail.send입니다. –