우리는 O365 로의 전환을 생각하고 있습니다. 그러나 현재 Exchange 서버를 사용하여 오류가 발생했을 때 지원 상자뿐만 아니라 외부 사용자에게 전자 메일을 보내는 소프트웨어를 개발했습니다.
우리가 가지고있는 코드가 O365와 계속 작동하는지 확인하기 위해 이것을 테스트했지만 지금까지는 성공적이지 못했습니다.
.Net의 SmtpClient와 MailKit의 SmtpClient를 사용해 보았는데 어느 것도 작동하지 않는 것 같습니다. 계속 오류가 발생합니다 (MailKit의 오류입니다. .Net 오류는 비슷합니다)
"AuthenticationInvalidCredentials : 5.7.3 인증 실패 [* .prod.exchangelabs.com]"
코드에있는 자격 증명을 사용하여 OWA에 로그인 할 수 있으므로 자격 증명이 유효하다는 것을 알고 있습니다. O356을 통해 이메일을 보낼 수 없습니까? 이를 가능하게하기 위해 Exchange에서 발생해야하는 특별한 구성이 있습니까?
지금까지 시도한 내용은 다음과 같습니다.
MailKit
var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does. Have tried with and without
client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
client.Authenticate(new NetworkCredential("support@mydomain.com", "supportPwd"));
client.Send(msg);
client.Disconnect(true);
}
.Net SmtpClient 코드는 MailKit 코드와 매우 유사했습니다.
- 라이센스 사용자와 O365를 통해 전송하는 방법이 있습니까? (위 코드)
- 이 작업을 수행하기 위해 Exchange 또는 라이센스 사용자에게 필요한 특별한 설정이 있습니까? (1에 대한 답변이 예인 경우)
- 자격 증명을 가진 사용자가 다른 사람 이름으로 보내기 권한을 가진 공유 사서함을 통해 전자 메일을 보낼 수 있습니까?
최신 정보
여전히 같은 오류 메시지가 나타납니다. 도메인 사용자에 대해 MFA를 사용하도록 설정했습니다. 그러나 신뢰할 수있는 위치 (조직의 IP)에서 로그인 할 때 사용자에게 MFA가 필요하지 않은 정책이 있습니다. 또한 IP를 신뢰할 수있는 IP로 표시했습니다. 내 생각에 MFA는 여기서 문제가되어서는 안됩니다.
자격 증명이 올바른지 알고 있습니다. 코드에서 복사하여 M365에 로그인 할 때 로그인 화면에 붙여 넣었습니다.
내가 무엇을 잘못하고 있지?