SharedIT | 묻고 답하기(AMP)

ERP 서버에서 smtp.office365.com 을 이용한 메일 발송 실패

안녕하세요~


도저히 혼자 해결을 할 수가 없어 문의드립니다!

원인과 해결방법을 아시는 분의 답변을 기다립니다 ㅠㅠ 살려주세요


1. 현재 증상

- 저희는 Ksystem ERP를 사용중입니다 (Ksystem이 설치된 서버는 VM).

- 메일은 o365를 사용하고 있습니다.


- 지난 12월에 Ksystem에서 직원들의 급여명세서를 메일로 발송했는데, 그때는 정상적으로 발송이 됐는데, 1월부터인가 발송이 안되더라구요.

Ksystem에서 SMTP 서버는 : smtp.office365.com / 포트 : 587 로 설정되어 있습니다.


- 당시 Powershell 에서 
Send-MailMessage -From xxxxx@xxxx.com -To xxxxx@xxxx.com -Subject "Test Email" -Body "Test SMTP Service from Powershell on Port 587" -SmtpServer smtp.office365.com -Credential $creds -UseSsl -Port 587

명령으로 발송 테스트를 했을 땐 정상 발송 되었는데, 현재는 아래의 에러가 발생합니다.

Send-MailMessage : 전송 연결 net_io_connectionclosed에서 데이터를 읽을 수 없습니다.
위치 줄:1 문자:1
+ Send-MailMessage -From xxxxx@xxxx.com -To xxxxx@xxxx.com ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage


smtp.office365.com 만 에러가 발생하며 smtp.naver.com으로 발송하면 정상 발송됩니다.

이번에 SPAMHAUS에 NATIP가 등록되어 있어 새로운 NATIP로 변경하였는데도, 에러가 동일하네요 ㅠ


혹시 원인 알고 계신 분 있으시면 답변 부탁드립니다!! ㅠㅠ



Tags : 태그가 없습니다.

5개의 답변이 있습니다.

미생
  0 추천 | 2년 이하 전

이건은 아니지만 관련해서 구글쪽도 구세대 메일 클라이언트를 위한 보안 수준 저하를 막아가는 추세입니다.

아마 5월중 진행일거라 관련 업무 보시는 분들이라면 대응하셔야 할거 같아요.

미생 | 2년 이하 전

https://support.google.com/accounts/answer/6010255

kryuk
  0 추천 | 2년 이하 전

안녕하세요. MS 파트너사에서 엔지니어로 근무하고있습니다.

ERP 시스템(ex. 더존 등)에서 메일발송 시 TLS 1.0 /1.1 을 사용하는데,

최근 Office 365 에서 기본발송을 TLS 1.2로 변경하고, 레거시방식(1.0/1.1)을 사용못하게 막아서 그렇습니다.

Exchange Online 파워쉘 접속 후 하기 2개 명령 내려주시면 해결되실겁니다.

Set-TransportConfig -AllowLegacyTLSClients $true


Set-TransportConfig -SmtpClientAuthenticationDisabled $false

 

zekco7 | 2년 이하 전

와... 정말 대단하십니다.

이걸로 한번에 해결했네요!!!

Exchange Online이 뭔지 몰라 조금 헤맸지만 잘 해결됐습니다 ^^

정말 감사해요~~~ 사랑합니다

kryuk | 2년 이하 전

제 업무니까요..ㅎㅎ; 감사합니다 ^.^

zekco7 | 2년 이하 전

죄송한데 한가지 더 문의드려도 될까요? ㅠ

저희가 모든 시스템을 TLS1.2 로 변경하고 있는데, 혹시 위 명령어로 세팅했을 경우에 보안감사등에서 문제는 없을까요?!

제가 이쪽으로 지식이 없다보니 어렵네요 ㅠ

kryuk | 2년 이하 전

하기 명령은 클라이언트에서 Legacy TLS 버전인 1.0/1.1 버전 전송을 허용해주는 옵션일뿐입니다.

저도 보안감사 규정은 잘 모르는지라..

현재 각 메일서비스들(MS, 구글 등)이 보안수준을 TLS 1.2 를 기본적으로 사용하게 변경중에 있습니다. 

다른분들 말씀처럼 송신방식을 TLS 1.2 로 선언하여 송신을 하시는게 안전하지 않을까 합니다..


topkslee
  0 추천 | 2년 이하 전

그 즈음에 MS M365 업데이트 되면서 보안 강화로인 인해

인증방식이 업데이트되어 안되는 문제입니다.


 다행히 구글링해서 수정해서 해결했던 기억이 있네요.

저희는 .Net에서는 mailkit component 설치해서 해결했고

Oracle send.smtp 패키지는 STARTTLS 추가 설정해서 해결했습니다.  

powershell에서 아래와 같이 코드 수정해서 테스트 한번 해보세요.

# Get the credential

$credential = Get-Credential

## Define the Send-MailMessage parameters

$mailParams = @{

SmtpServer = 'smtp.office365.com'

Port = '587'

UseSSL = $true

Credential = $credential

From = 'sender@yourdomain.com'

To = 'recipient@yourdomain.com', 'recipient@NotYourDomain.com'

Subject = "SMTP Client Submission - $(Get-Date -Format g)"

Body = 'This is a test email using SMTP Client Submission'

Attachment = 'C:\Test.txt' # Here you can change your attachment

DeliveryNotificationOption = 'OnFailure', 'OnSuccess'

}


## Send the message

Send-MailMessage @mailParams


M365가 한번씩 업데이트 될때 보안 강화를 안되는 경우가 생기네요.

도움이 되었으면 좋겠네요. 

Genghis Khan | 2년 이하 전

좋은정보네요

직접 해결도 하셨으니 신뢰가 가네요

zekco7 | 2년 이하 전

답변 감사드립니다.

ERP서버가 설치된 서버는 윈서버2016 입니다.
혹시 OS쪽에서 건드려줘야 할 게 있을까요?

아래 말씀해주신 명령어로는 동일한 에러가 발생합니다.

그런데 이상한건, ERP서버가 아닌 제 노트북에서 실행하면 정상 발송이 된다는 점입니다.
구글링 해보니 VM서버에서 그런 문제가 발생하는 것 같기도 한데 도저히 모르겠네요 ㅠㅠ


topkslee | 2년 이하 전

TLS 보안 버전 업데이트 적용으로

기본적으로 .net framework 4.6이상이 설치되어 있어야 적용 될 것 입니다.

send-MailMessage 앞단에 

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 선언해주시고

아래에 

Send-MailMessage 구문으로 한번 해보세요.


적용 예제 페이지 참고하세요.

https://support.sparkpost.com/docs/integrations/ms-windows-powershell

은빛유니콘
  0 추천 | 2년 이하 전

smtp.office365.com 에서 발송하기 위해서 변동 사항이 생긴 것 아닐까요?


영림원과 오피스365에 각각 문의해보셔야 되겠네요.

zekco7 | 2년 이하 전

영림원과 오피스에 각각 문의했는데,

늘 듣는 레파토리 구사하더라구요.. 자기네 쪽 문제 아니라고.
저도 영림원, 네트워크 업체, 인프라업체, MS쪽 다 문의해봤는데 모두 자기네 쪽에 정보가 오는게 없다고 하더라구요..

여튼 답변 감사합니다 ^^

wansoo
  0 추천 | 2년 이하 전

스팸 처리로 인해서 발생한 문제일 가능성도 높아 보이고요.

우선적으로 메일 서버와의 통신이 정상적으로 진행되는지 부터 Test해 보아야 할 것 같네요.

아래 링크 자료를 참고해서 SMTP 서버 접속 및 메일 발송 Test를 해 보면서 좀 더 구체적인 원인을 확인해 보면 문제 해결에 도움이 될 수 있을 거라 보여지네요.

https://docs.microsoft.com/ko-kr/exchange/mail-flow/test-smtp-with-telnet?view=exchserver-2019


zekco7 | 2년 이하 전

답변 감사드립니다.!

링크 참조해보겠습니다.