2016-12-28 4 views
0

aspnet 코어에서 MimeKit을 사용 중이며 모든 것이 로컬에서 작동하지만 푸른 색 응용 프로그램 서비스에서 이메일을 보내려고하면 "인증 실패"가 나타납니다.MimeKit azure gmail -> 인증 실패

"덜 안전한 응용 프로그램 허용"을 로컬로 작동 시키려면 활성화해야했습니다. _emailOptions.Username 및 _emailOptions.Password 당신은 어떤이 있습니까

 catch (Exception ex) 
     { 
      _log.LogError(new EventId(1), ex, "Username: '{0}', Password: '{1}'", _emailOptions.Username, _emailOptions.Password); 
      throw; 
     } 

던져진 예외를 로그인하여 올바른지 내가 확인한

 using (var client = new SmtpClient()) 
     { 
      await client.ConnectAsync("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect); 
      await client.AuthenticateAsync(_emailOptions.Username, _emailOptions.Password); 
      await client.SendAsync(emailMessage); 
      await client.DisconnectAsync(true); 
     } 

:

내가 사용하고있는 코드입니다 이 문제를 해결하는 방법에 대한 아이디어?

+0

푸른 색 및 로컬 앱에 ** 동일한 ** 사용자 이름과 비밀번호를 사용하고 있는지 알고 싶습니다. –

+0

예, 사용자 이름/암호를 하드 코드했습니다. 로컬에서는 작동하지만 하늘빛에서는 작동하지 않습니다. – user568327

답변

0

내가 MimeKit 및 MailKit 이메일 프레임 워크를 사용하여 이메일을 보낼 샘플을 만들고, 내가 유효한 사용자 이름 & 암호를 입력하고 (계정이 사용하지 보안 수준이 낮은 앱은 Gmail 계정에 액세스 할 수 있도록 허용하는 경우 코드, 지역 및 푸른에서 잘 작동 발견 2 단계 인증). 당신이 사용하는 2 단계 인증을 제공하거나하지 계정이 계정에 액세스 할 보안 수준이 낮은 앱을 사용하는 경우

using (var client = new SmtpClient()) 
{ 
    MimeMessage mes = new MimeMessage(); 
    mes.From.Add(new MailboxAddress("xxx", "[email protected]")); 
    mes.To.Add(new MailboxAddress("xxx", "[email protected]")); 
    mes.Subject = "hello"; 
    mes.Body = new TextPart("plain") 
    { 
     Text = @"hi, 
     i'm azure! " + DateTime.Now.ToString() 
    }; 

    client.Connect("smtp.gmail.com", 465, SecureSocketOptions.SslOnConnect); 
    client.Authenticate("username here", "password here"); 
    client.Send(mes); 
    client.Disconnect(true); 
} 

이 있는지 확인하십시오. 게다가 SendGrid은 클라우드 기반 이메일 서비스이므로 시도해 볼 수 있습니다.

+0

이상합니다. 비동기 버전을 사용하고 있다는 것을 제외하고는 코드가 동일하게 보입니다. – user568327

+0

두 가지 요소 인증을 사용 설정 한 후 및 애플리케이션 비밀번호를 생성 한 후에 작동하도록했습니다. 귀하의 코드가 작동하고 있기 때문에 나는 정확한 답을주고 있습니다. – user568327

0

감사합니다. 나는 푸른 애플 리케이션과 Gmail에서 동일한 문제가있었습니다. 이 페이지를 읽은 후 2 단계 인증을 사용 설정하고 앱 비밀번호를 생성했습니다. 그리고 그게 내 문제를 해결했습니다.