Office365 공유 사서함을 통해 SMTP 전자 메일을 보낼 수 있습니까?


13

우리는 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 코드와 매우 유사했습니다.

  1. 라이센스 사용자와 O365를 통해 전송하는 방법이 있습니까? (위 코드)
  2. 이 작업을 수행하기 위해 Exchange 또는 라이센스 사용자에게 필요한 특별한 설정이 있습니까? (1에 대한 답변이 예인 경우)
  3. 자격 증명을 가진 사용자가 다른 사람 이름으로 보내기 권한을 가진 공유 사서함을 통해 전자 메일을 보낼 수 있습니까?

최신 정보

여전히 같은 오류 메시지가 나타납니다. 도메인 사용자에 대해 MFA를 사용하도록 설정했습니다. 그러나 신뢰할 수있는 위치 (조직의 IP)에서 로그인 할 때 사용자에게 MFA가 필요하지 않은 정책이 있습니다. 또한 IP를 신뢰할 수있는 IP로 표시했습니다. 내 생각에 MFA는 여기서 문제가되어서는 안됩니다.

자격 증명이 올바른지 알고 있습니다. 코드에서 복사하여 M365에 로그인 할 때 로그인 화면에 붙여 넣었습니다.

내가 무엇을 잘못하고 있지?

답변:


7
  1. 그래 넌 할수있어.

  2. 사용자 설정: 관리 센터의 스크린 샷 이메일 앱 관리의 스크린 샷

서버 설정 : https://support.office.com/en-us/article/POP-IMAP-and-SMTP-settings-for-Outlook-com-d088b986-291d-42b8-9564-9c414e2aa040

SMTP server name smtp.office365.com

SMTP port 587

SMTP encryption method STARTTLS
  1. 아니 당신은 할 수 없습니다. SMTP를 통해 메일을 보내려면 라이센스 사용자가 필요합니다.

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin/set-up-smtp-relay-with-shared-mailbox/d7b98214-9564-432c-b098-525a98c529fb

우리 고객은 TYPO3로 설정된 뉴스 레터 시스템을 보유하고 있으며이를 위해 새 사서함을 만들어야했습니다. 그러나 가벼운 것만으로도 충분합니다. Office 365 Business Premium 대신 Office 365 F1 라이센스 만 할당했습니다.

편집 : 또한 이것을 찾았습니다 : Office365 공유 사서함이 SMTP를 사용할 수 있습니까?


공유 사서함에 관한 질문에 대답하는 것 같습니다. 그러나 초기 코드에서 라이센스 사용자와 함께 일하고 있는데 작동하지 않습니다.
RHarris

@RHarris 그렇습니다. 수정 된 답변을 참조하십시오. 불완전한 첫 번째 답변에 대해 죄송합니다.
볼프강 자크

0

비슷한 문제가있는 사람은 내 문제가 조건부 액세스 정책이라는 것을 알았습니다. Microsoft는 Baseline Policy: Block Legacy AuthenticationAAD에서 켜져있는 기능을 제공합니다 .

정책을 살펴보면 MFA가 필요하지 않은 인증 메커니즘을 차단하도록 설계되었습니다. 여기에는 POP 및 SMTP와 같은 것들이 포함됩니다. 이 정책을 비활성화하면 위에 나열된 코드가 정상적으로 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.