Microsoft IIS는 SMTP의 역할을 아주 잘 수행할 수 있지만 설정하는 데 몇 가지 단계가 필요합니다. 다행히도, 저는 IIS SMTP 릴레이 서버를 설정하고 모든 단계를 문서화했습니다!
이 문서에서는 Office 365로 나가는 이메일을 보내기 위해 SMTP 릴레이 서버를 성공적으로 설정하기 위해 필요한 모든 단계를 다룰 것입니다. 기술적으로, 이 SMTP 릴레이를 사용하여 Office 365로 이메일을 릴레이하는데 사용할 수 있으며, 일반적인 SMTP 릴레이 메일 전달 목적으로도 빠르게 작동할 수 있습니다.
사전 요구 사항
IIS를 설정하고 제가 따라 할 수 있도록 하려면 Windows Server 2016 기기가 있어야 합니다. 또한 관리자로 서버에 로그인한 것으로 가정합니다.
IIS SMTP 서버 Windows 기능 설치
IIS SMTP 릴레이를 설정하려면 먼저 IIS SMTP 서버를 설치해야 합니다. SMTP 서버 Windows 기능을 설치해야 합니다.
서버 관리자 사용
서버 관리자를 통해 Windows 기능을 설치하는 방법에 익숙하지 않은 경우, 다음 문서인 역할, 역할 서비스 또는 기능 설치 또는 제거를 참조하십시오.
PowerShell 사용
SMTP 서버 기능을 설치하면 많은 클릭이 제거됩니다. 관리자 권한으로 PowerShell 콘솔을 열고 아래 명령을 실행하십시오:
설치가 완료될 때까지 기다리십시오. 다음과 유사한 출력이 표시됩니다.

인증서 가져오기 (TLS 전용)
TLS를 통해 이메일을 보낼 경우 (Office 365), IIS SMTP 서버를 구성하기 전에 서버의 로컬 머신 개인 인증서 저장소에 SSL 인증서를 가져와야합니다. Office 365 SMTP 릴레이가 비-TLS 인 경우 이 단계를 건너 뛸 수 있습니다.
인증서가 없는 경우 내부 PKI (있는 경우) 또는 LetsEncrypt, Digicert 등의 서비스를 사용하여 공용 인증서를 얻을 수 있습니다.
인증서를 가져온 후 로컬 머신 개인 인증서 저장소에 가져와야합니다. 인증서 MMC를 사용하여 인증서를 가져오는 방법에 대해 익숙하지 않은 경우 인증서 가져오기 및 내보내기 – Microsoft Windows를 확인하십시오.
성공적으로 완료되면 이와 유사한 확인 창이 표시됩니다. 확인하려면 OK (1)을 클릭하십시오.

주 요약 창으로 돌아가서 개인 > 인증서 폴더를 새로 고침하면 가져온 인증서가 표시됩니다.
인증서 유효성 검사
수입 한 후, 인증서 체인이 완전하고 오류가 없는지 확인하세요. 모든 것이 정상이라면, 인증서를 열어서 유효 기간 필드가 현재인지 확인하고 인증서와 관련된 개인 키가 있는지 확인해야 합니다. 아래에 예시가 표시되어 있습니다.

인증 경로 탭에서 인증서가 OK라고 표시된 인증서 상태도 확인해야 합니다. 아래에 표시된 것과 같이.

IIS SMTP 서버 구성
이 시점에서 SMTP 서버를 성공적으로 설치했습니다. 그러나 사용하기 전에 서버 설정을 구성해야 합니다.
SMTP 서버는 IIS6 호환 모드에서 실행되며 내장된 PowerShell 지원은 제공되지 않습니다. 이는 IIS6 관리 콘솔을 사용하여 설정을 수동으로 구성해야 한다는 것을 의미합니다.
시작 -> 실행으로 이동하여 inetmgr6을 입력하고 Enter를 누릅니다. 이렇게 하면 IIS 6 콘솔이 열립니다.
콘솔이 열리면 [SMTP 가상 서버 #1] (1)을 마우스 오른쪽 버튼으로 클릭한 다음 속성 (2)을 선택합니다.

속성 창에서 로그 기능 사용 (1)을 확인한 다음 속성 (2)를 클릭합니다.

고급 탭으로 이동하여 목록에서 모든 상자를 선택 (1)한 다음 확인 (2)를 클릭합니다.

속성 창으로 돌아가서 전달 탭으로 이동하고 고급 (1)을 클릭합니다.

고급 배송 창에서 목적지 SMTP 메일 서버에 사용할 완전한 도메인 이름 (1)을 입력하십시오. 이는 컴퓨터 자체의 FQDN과 동일할 필요는 없습니다. Office 365에서 이 SMTP 서버를 구성하는 경우, 스마트 호스트 (2) 필드에서 Office 365 MX 엔드포인트를 정의하고 OK (3)를 클릭하십시오.

IIS SMTP 서버에서 허용된 IP 추가
이제 테스트하려는 장치가 있다면, 우선 릴레이 제한에 해당 IP 주소를 추가해야 합니다. 이 예제에서는 IP 주소 192.168.0.3이 릴레이 제한에 추가됩니다. 이 IP 주소는 서버와 동일한 네트워크에 있는 컴퓨터에 속합니다.
릴레이 제한에 허용된 IP를 추가하려면 액세스 탭으로 이동한 다음 릴레이 (1)을 클릭하십시오.

릴레이 제한 창에서 추가 (1)

을 클릭하십시오. 그런 다음 IP 주소 (1)를 입력하고 OK (2)를 클릭하십시오.

릴레이 제한 창으로 돌아가 IP 주소가 목록에 추가되었는지 확인한 다음 OK (1)을 클릭하여 속성 창을 닫으십시오.

SMTP 서버에서 인증서가 감지되고 TLS 암호화가 활성화되었는지 확인하십시오.
릴레이 서버가 TLS를 통해 외부 이메일을 보내려면, IIS SMTP 서버에서 인증서가 인식되고 TLS 암호화가 활성화되었는지 확인해야 합니다.
SMTP 서버 속성의 액세스 탭에서 “만료 날짜가 XXXXXX인 TLS 인증서가 발견되었습니다”라는 메시지가 표시되어야 합니다. 그렇다면 준비된 상태입니다.

다음으로, 전송 탭을 클릭하고, 발신 보안을 클릭하십시오. (1) TLS 암호화 (2) 상자를 선택하고, 확인 (3)을 클릭하십시오.

이로써 IIS SMTP 서버 구성 단계가 완료되었습니다.
IIS SMTP 메일 릴레이 서버 테스트
이 시점에서 SMTP 서버가 구성되어 메일을 릴레이할 준비가 되었습니다. 다음 단계는 테스트입니다. SMTP 릴레이를 통해 이메일을 전송하여 수신 SMTP 서버가 메시지를 받는지 확인해야 합니다.
픽업 디렉터리로 테스트
IIS SMTP 서버가 설치되면 서버에 C:\inetpub\mailroot\Pickup 폴더가 생성됩니다. 이 디렉터리는 SMTP 서비스가 처리하기 전에 새로 제출된 이메일을 수집하는 곳입니다. 그런 다음, 이메일을 큐 디렉터리로 이동시킵니다.
이 방법을 사용하여 테스트하려면, 다음과 유사한 내용의 평문 파일을 생성하십시오:
보내는 사람과 받는 사람 값을 자신의 값으로 변경하는 것을 잊지 마십시오.
이 파일을 픽업 디렉터리가 아닌 다른 곳에 mail.txt로 저장하십시오.
파일을 저장한 후, 파일을 C:\inetpub\mailroot\Pickup 폴더로 복사하십시오. 성공하면 파일이 빨리 사라집니다. 이는 SMTP 서비스가 이를 수집하고 메시지 처리를 시작했음을 의미합니다.
몇 초에서 일분 후에, mail.txt에 정의된 수신자 이메일 주소로 보낸 이메일을 받아야합니다.
PowerShell로 테스트
이 테스트에서는 IIS SMTP 서버의 허용된 IP 추가 섹션에 추가한 IP 주소를 가진 컴퓨터에서 PowerShell을 사용할 것입니다.
PowerShell 콘솔을 열고 아래 코드를 복사하여 붙여 넣으세요. From
, To
및 SmtpServer
매개 변수의 값을 편집해야합니다. 위에서 중계 서버를 구성한 방식에 따라 TLS 또는 비-TLS 설정을 테스트하기 위해 아래 예제 중 하나를 사용할 수 있습니다.
요약
이 문서에서는 Office 365에서 수신자 이메일 전달을 위한 IIS SMTP 중계 서버를 설정하는 방법을 배웠습니다. GUI와 PowerShell의 조합을 사용하여 비-TLS 및 TLS SMTP 서버를 설정하는 방법을 다루었습니다. 그런 다음 PowerShell을 사용하여 설정을 테스트하여 모든 것이 정상인지 확인했습니다.