Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Unhandled Exception: System.Net.Mail.SmtpException: Transaction failed. The server response was: 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied

SmtpClient를 이용한 SMTP 메일 전송에서,

Azure 가상 머신(VM)에서 SMTP 메일 전송하는 방법
; https://www.sysnet.pe.kr/2/0/11994

Microsoft 365 구독 서비스를 이용하는 경우 다음과 같은 오류가 발생한다면?

Unhandled Exception: System.Net.Mail.SmtpException: Transaction failed. The server response was: 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message. 0.35250:0A00A684, 1.36674:0A000000, 1.61250:00000000, 1.45378:02000000, 1.44866:241B0000, 1.36674:0E000000, 1.61250:00000000, 1.45378:291B0000, 1.44866:3A010000, 16.55847:5E0D0000, 17.43559:0000000004020000000000000000000000000000, 20.52176:140F2B890E00101043050000, 20.50032:140F2B897E17000000000000, 0.35180:48050000, 255.23226:0A00BA84, 255.27962:0A000000, 255.27962:0E000000, 255.31418:0A00D384, 0.35250:0A000000, 1.36674:0A000000, 1.61250:00000000, 1.45378:02000000, 1.44866:22000000, 1.36674:32000000, 1.61250:00000000, 1.45378:27000000, 1.44866:01000000, 16.55847:8E000000, 17.43559:0000000000030000000000000000000000000000, 20.52176:140F2B890E0070200A00DC84, 20.50032:140F2B897E1710106B050000, 0.35180:0A00DD84, 255.23226:4800D13D, 255.27962:0A000000, 255.27962:32000000, 255.17082:DC040000, 0.27745:75050000, 4.21921:DC040000, 255.27962...
at System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
at System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
at System.Net.ClosableStream.Close()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Program.Main(String[] args)


NetworkCredential에 입력한 로그인 이메일 계정과 FROM에 입력한 메일 계정이 동일하지 않기 때문입니다.

SmtpClient smtp = new SmtpClient();

MailAddress from = new MailAddress("testuser@test.com");
MailAddress to = new MailAddress("fielduser@outlook.com");
MailMessage msg = new MailMessage(from, to);

smtp.Host = "smtp.office365.com";
smtp.Port = 587;
smtp.EnableSsl = true;

smtp.Credentials = new NetworkCredential("testadm@test.com", "...");

따라서 저 계정 정보를 맞춰주면 정상적으로 동작합니다.




그런데 "Azure 가상 머신(VM)에서 SMTP 메일 전송하는 방법" 글을 쓸 당시에만 해도 제가 SmtpClient.Send 테스트를 할 때 Microsoft 365가 아니라 Outlook의 무료 계정을 사용했어도 정상적으로 동작했었습니다. 그러다 최근에 다시 해당 코드를 테스트했는데 이제는 다음과 같은 오류가 발생합니다. (Microsoft 365 구독 계정이라면 동일한 코드로 정상 동작합니다.)

Unhandled Exception: System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [SL2PR03CA0024.apcprd03.prod.outlook.com]
at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Program.Main(String[] args)


검색해 보면,

5.7.57 SMTP - Client was not authenticated to send anonymous mail during MAIL FROM error
; https://stackoverflow.com/questions/30342884/5-7-57-smtp-client-was-not-authenticated-to-send-anonymous-mail-during-mail-fr

MX 레코드를 맞춰줘야 한다는데,

Create DNS records at any DNS hosting provider for Office 365
; https://learn.microsoft.com/en-us/office365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider?view=o365-worldwide

DNS 서비스가 없는 일반 Outlook 사용자라면 방법이 없습니다. 혹시나 다른 방법으로 저 오류를 해결하신 분이 있다면 덧글 부탁드립니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/7/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 31  32  [33]  34  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
13148정성태10/26/202215353오류 유형: 824. msbuild 에러 - error NETSDK1005: Assets file '...\project.assets.json' doesn't have a target for 'net5.0'. Ensure that restore has run and that you have included 'net5.0' in the TargetFramew
13147정성태10/25/202214547오류 유형: 823. Visual Studio 2022 - Unable to attach to CoreCLR. The debugger's protocol is incompatible with the debuggee.
13146정성태10/24/202215936.NET Framework: 2060. C# - Java의 Xmx와 유사한 힙 메모리 최댓값 제어 옵션 HeapHardLimit
13145정성태10/21/202215941오류 유형: 822. db2 - Password validation for user db2inst1 failed with rc = -2146500508
13144정성태10/20/202216246.NET Framework: 2059. ClrMD를 이용해 윈도우 환경의 메모리 덤프로부터 닷넷 모듈을 추출하는 방법파일 다운로드1
13143정성태10/19/202217001오류 유형: 821. windbg/sos - Error code - 0x000021BE
13142정성태10/18/202222023도서: 시작하세요! C# 12 프로그래밍
13141정성태10/17/202217372.NET Framework: 2058. [in,out] 배열을 C#에서 C/C++로 넘기는 방법 - 세 번째 이야기파일 다운로드1
13140정성태10/11/202217220C/C++: 159. C/C++ - 리눅스 환경에서 u16string 문자열을 출력하는 방법 [2]
13139정성태10/9/202214811.NET Framework: 2057. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프로부터 모든 닷넷 모듈을 추출하는 방법파일 다운로드1
13138정성태10/8/202217715.NET Framework: 2056. C# - await 비동기 호출을 기대한 메서드가 동기로 호출되었을 때의 부작용 [1]
13137정성태10/8/202215824.NET Framework: 2055. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프로부터 닷넷 모듈을 추출하는 방법
13136정성태10/7/202215920.NET Framework: 2054. .NET Core/5+ SDK 설치 없이 dotnet-dump 사용하는 방법
13135정성태10/5/202216710.NET Framework: 2053. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프를 분석하는 방법 - 두 번째 이야기 [1]
13134정성태10/4/202213147오류 유형: 820. There is a problem with AMD Radeon RX 5600 XT device. For more information, search for 'graphics device driver error code 31'
13133정성태10/4/202214676Windows: 211. Windows - (commit이 아닌) reserved 메모리 사용량 확인 방법 [1]
13132정성태10/3/202214698스크립트: 42. 파이썬 - latexify-py 패키지 소개 - 함수를 mathjax 식으로 표현
13131정성태10/3/202218408.NET Framework: 2052. C# - Windows Forms의 데이터 바인딩 지원(DataBinding, DataSource) [2]파일 다운로드1
13130정성태9/28/202214530.NET Framework: 2051. .NET Core/5+ - 에러 로깅을 위한 Middleware가 동작하지 않는 경우파일 다운로드1
13129정성태9/27/202215172.NET Framework: 2050. .NET Core를 IIS에서 호스팅하는 경우 .NET Framework CLR이 함께 로드되는 환경
13128정성태9/23/202218097C/C++: 158. Visual C++ - IDL 구문 중 "unsigned long"을 인식하지 못하는 #import [1]파일 다운로드1
13127정성태9/22/202216496Windows: 210. WSL에 systemd 도입
13126정성태9/15/202216788.NET Framework: 2049. C# 11 - 정적 메서드에 대한 delegate 처리 시 cache 적용
13125정성태9/14/202217082.NET Framework: 2048. C# 11 - 구조체 필드의 자동 초기화(auto-default structs)
13124정성태9/13/202217267.NET Framework: 2047. Golang, Python, C#에서의 CRC32 사용
13123정성태9/8/202217210.NET Framework: 2046. C# 11 - 멤버(속성/필드)에 지정할 수 있는 required 예약어 추가
... 31  32  [33]  34  35  36  37  38  39  40  41  42  43  44  45  ...