Adam The Automator
싫어하거나 사랑해. 해당 이메일을 모든 곳으로 이동하는 프로토콜은 SMTP 이며 SMTP”라우터”는 SMTP 릴레이입니다.SMTP 릴레이를 설정하는 것은 시스템마다 다르지만 office365 를 메일 서비스 제공 업체로 사용하는 경우 옵션이 제한됩니다. 특히 TLS 가 가능하지 않은 장치의 경우 설치가 복잡하고 오류가 발생하기 쉽습니다.
Office365 를 통해 이메일을 보내려면 SMTP 릴레이가 필요하지 않습니다. 구성 변경이 필요하지 않은 SMTP 릴레이를 추가하지 않고 클라이언트가 Office365 로 직접 이메일을 보내도록 할 수 있습니다. 그들이 무엇인지 알아 보려면 Office365Direct Send/SMTP 클라이언트 제출 이메일(PowerShell)을 보내는 방법을 읽으십시오.
테이블의 내용.
전제조건
이러한 요구 사항은 당신이 전에 진행할 수 있습니다.
- Office365 구독. 아직 가지고 있지 않다면 Office365E5 평가판 구독에 가입하실 수 있습니다.
- PowerShell v5 가있는 Windows10 컴퓨터입니다.1
- 공용 고정 IP 주소입니다. 이 없이도 Office365 에서 SMTP 릴레이를 계속 만들 수 있지만 테스트하지 않을 수도 있습니다.
- tcp 포트 25 클라이언트에서 Office MX 끝점에 액세스
- 유효한 SSL 인증서. 이 인증서는 와일드 카드 인증서가 될 수 있습니다(예. *.yourdomain.com)letsencrypt,Digicert 등과 같은 타사 인증 기관에서 발행합니다. 참고로 자체 서명된 인증서 또는 내부 PKI 에서 발급한 인증서는 지원되지 않으므로 사용할 수 없습니다. (TLS 연결에만 필요)
SMTP 릴레이를 설정하려면 먼저 OFFICE365 에 커넥터를 만들어 SMTP 트랜잭션을 수락해야 합니다. 이 커넥터는 응용 프로그램 또는 장치에서 SMTP 릴레이 트랜잭션을 수신합니다.
커넥터를 만들려고 시도하기 전에 계정에 적절한 Exchange Online 권한이 있는지 확인하십시오. 계정이 조직 관리 그룹의 구성원인지 확인하십시오.커넥터를 만드는 방법에는 두 가지가 있습니다. Exchange 관리 센터 또는 PowerShell 을 사용할 수 있습니다. 두 옵션 모두 동일한 작업을 수행합니다. 어느 것을 사용해야하는지는 당신에게 달려 있습니다. 이 기사에서는 두 가지를 모두 다룰 것입니다. 또한 비 TLS 및 TLS 커넥터를 모두 만드는 방법에 대해서도 다룰 것입니다.
Exchange 관리 센터를 사용하여 비 TLS 커넥터 만들기
비 TLS 커넥터를 만드는 것으로 시작하겠습니다. 먼저 교환 관리 센터를 통해이 작업을 수행하는 방법을 배우게됩니다. Exchange 관리 센터에서 많은 Office365SMTP 설정을 구성할 수 있습니다.
일단 로그인하면 메일 흐름(1)–>>New(3)를 클릭하십시오. 새 커넥터 창이 팝업됩니다.
에서 새로운 커넥터 창에서 선택:당신의 조직의 이메일 서버(1)선택하기:Office365(2)다음을 클릭합니다(3).
다음 창에서 이름을 입력하 SMTP 릴레이(비 TLS)또는 자신의 이름을 선택(1), 형식에 대한 설명을 받아 릴레이에서 온 SMTP 서버(2)선택을 유지하는 내부환 이메일글(권장)(3)다음을 클릭합니다(4).
에서는 다음 창이 선택인지 확인하여 IP 주소로 보내는 서버의 일치 하나 이들의 IP 주소를 조직에 속해 있는(1), 추가를 클릭(2).
에서 새로운 팝업 창에 입력 공용 IP 주소를(1),다음 확인을 클릭(2). 그러면 이전 창으로 다시 가져와야합니다.
는지 확인하는 IP 주소 목록에 추가(1),다음을 클릭합(2).
정보를 확인할 수 있습니다 요약해 필요한 변경 사항을 구현할 수 있습니다. 먼저 필요한 변경 사항을 작업하십시오. 아무도 없다면,당신은 가서 저장을 클릭 할 수 있습니다.
다시 Exchange 관리 센터에서 이제 새 커넥터가 생성되었는지 확인할 수 있습니다.
이제 비 TLS 커넥터 만들어집니다.
Exchange Admin Center 를 사용하여 TLS 커넥터 만들기
TLS 커넥터를 만드는 것은 비 TLS 커넥터를 만드는 것과 유사합니다. Tls 가 아닌 커넥터를 만든 방법과 마찬가지로 새 커넥터 마법사로 돌아가서 동일한 메일 흐름 시나리오를 사용하십시오. SMTP 릴레이(Tls 가 아닌)의 커넥터 이름을 사용 하겠지만 다를 수 있습니다.
창에서 정의하 Office365 식별해야 이메일로서 귀하의 이메일 서버를 선택합니다.
- 는지 확인하여 주의 이름에는 인증서를 보내 서버를 사용으로 인증 Office365 일치하는 이 도메인 이름을(추천)(1)
- 다음의 제목을 입력 SSL 인증서(2)
- 고 다음을 클릭합니다(3).
다시,당신의 요약을 참조하십시오 필요한 변경을 수행합니다. 처리하기 전에 먼저 작업하십시오. 없는 경우 바로 저장 버튼을 클릭할 수 있습니다.
PowerShell 을 사용하여 비 TLS 커넥터 만들기
GUI 를 통해 Office365 커넥터를 만드는 것이 아닌 경우 PowerShell 을 통해 항상 만들 수 있습니다. 그렇게하려면 먼저 Exchange Online PowerShell 에 연결되어 있는지 확인하십시오.
커넥터를 만들려면New-InboundConnector
명령을 실행해야합니다. 이 명령에는 몇 가지 다른 매개 변수가 필요하므로 PowerShell splatting 을 사용하여 이러한 매개 변수를 미리 설정할 것입니다.
추가했 일부 의견에 코드 자체는 아래의 그러나 여기에서의 고장 각 매개변수와 그것이 무엇을 위해 사용:
- 이름 이름의 커넥터에 연결합니다.
- ConnectorType-이 커넥터의 유형입니다. 이 값은
OnPremises
Partner
OnPremises
입니다. - SenderDomains-허용 된 발신자 도메인 목록이 될 수 있습니다. 테넌트에 대해 검증된 도메인만 유효한 선택입니다. 별표(
*
'domain1.com','domain2.com'
) - SenderIPAddresses–이것은 공용 IP 주소입니다. 실행 전에이를 변경하는 것을 잊지 마십시오.
- RestrictDomainsToIPAddresses–이 값을 설정할 때 이를
$true
을 나타내는 이 커넥터는 것만 받아들이에서 이메일을 보낸 사람 주소에서 나오는 허용되는 공용 IP 주소입니다.
$splat = @{ ## Define the name of the connector. Name = 'SMTP Relay' ## Defined the type of connector to create. ConnectorType = 'OnPremises' ## The set of sender domains allowed to relay. SenderDomains = '*' ## Change this to your actual public IP address. SenderIPAddresses = '110.x.x.x' ## Restrict the email relay only to your sender domains and sender IP address RestrictDomainsToIPAddresses = $true}## Create the connectorNew-InboundConnector @splat
실행될 때 아래와 비슷한 것을보아야합니다.
을 만들 TLS 커넥터를 사용하여 PowerShell
가 연결되어 있는 코드를 실행하여 아래를 만들 TLS 커넥터 PowerShell 니다. 아래에서 많은 매개 변수가 비 TLS 커넥터를 만드는 것과 동일하다는 것을 알 수 있습니다. 비 TLS 커넥터를 만드는 것과 다른 필수 매개 변수는 다음과 같습니다:
- RequireTLS–이 지정하는 모든 메시지를 받은 이 커넥터 TLS 전송이 필요
- TlsSenderCertificateName–이름(또는 대상)인증서의 사용에 의하여 보낸 사람입니다.
$splat = @{ ## Define the name of the connector. Name = 'SMTP Relay (TLS)' ## The type of connector to create. ConnectorType = 'OnPremises' ## The set of sender domains allowed to relay. SenderDomains = '*' ## Require TLS RequireTLS = $true ## Subject/Name of the SSL certificate TlsSenderCertificateName = '*.YourDomain.com'}## Create the connectorNew-InboundConnector @splat
위의 코드를 실행하고 있 TLS 커넥터 생성 및 준비하는 이메일을 받게됩니다.
PowerShell
로 Office365SMTP 릴레이 커넥터 테스트 커넥터를 만든 후 테스트 할 준비를하십시오. 그렇게하는 가장 쉬운 방법은 PowerShell 을 사용하는 것입니다. 이 섹션에서는 커넥터가 제대로 작동하는지 쉽게 확인할 수 있도록 몇 가지 PowerShell 스크립트를 만들 것입니다.
테스트를 시작하기 전에 먼저 Exchange 온라인 도메인에 대해 MX 엔드포인트 URL 이 무엇인지 알고 있는지 확인하십시오. MX 엔드포인트 URL 을 찾는 방법을 모르는 경우 Office365 관리자 포털에 로그인하십시오. 설치 프로그램을 클릭하고 도메인을 선택한 다음 도메인 이름을 클릭하고 mx 포인트를 주소 또는 값으로 복사하십시오.
비 TLS SMTP 릴레이 테스트(IP 주소)
참고: 이 테스트는 Office365SMTP 릴레이 설정에서 공용 IP 주소가 허용되는 컴퓨터에서 수행해야 합니다.
테스트를 위해 아래의 PowerShell 코드를 사용하십시오. 를 변경해야 한From
To
SmtpServer
매개 변수 값을 자신을 사용 Office365SMTP 릴레이 설정을 실행하기 전에.
-
To
–내부 도메인 수신자 1 명과 외부 도메인 수신자 1 명을 포함해야 합니다. 이러한 가치를 자신의 것으로 바꾸는 것을 잊지 마십시오. -
From
–지명 된 발신자 주소로 변경해야합니다. 이메일 주소의 도메인 부분은 테넌트의 이메일 도메인 중 하나여야 합니다. -
SmtpServer
–Office365 테넌트의 MX 엔드포인트로 변경해야 합니다.
$mailParams = @{ SmtpServer = '<tenant>.mail.protection.outlook.com' Port = '25' From = '' To = '','' Subject = ('SMTP Relay - ' + (Get-Date -Format g)) Body = 'This is a test email using SMTP Relay' DeliveryNotificationOption = 'OnFailure','OnSuccess'}Send-MailMessage @mailParams
테스트 TLS SMTP 릴레이(인증서)
참고:당신이 있어야 합 공 SSL 인증서에는 웹 서식하기 전에 진행할 수 있습니다 이 테스트입니다.
이후 TLS SMTP 릴레이가 필요합 인증서를 사용할 수 없습니다Send-MailMessage
PowerShell cmdlet 허용하지 않기 때문에 당신은 특정 인증서입니다. 대신 System.Net.Mail.SmtpClient 라는 두 개의.NET 객체를 사용하여 SMTP 매개 변수를 정의하고 System.Net.Mail.MailMessage 를 사용하여 메시지를 작성하십시오.
아래에는 TLS SMTP 릴레이를 테스트하는 데 사용할 수있는 PowerShell 코드 스 니펫이 있습니다. 을 변경하는 것을 잊지 마세요pfxFile
pfxPass
From
To
SmtpServer
값을 사용하 Office365SMTP 릴레이 설정을 실행하기 전에.
# specify the full path of your PFX certificate$pfxFile = "C:\Certificate\cert.pfx"$pfxPass = '<cert password here>'$pfxBytes = Get-Content -path $pfxFile -encoding Byte -ErrorAction:SilentlyContinue$X509Cert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2$X509Cert.Import(]$pfxBytes, $pfxPass,"Exportable,PersistKeySet")# Build SMTP properties$smtpServer = '<tenant>.mail.protection.outlook.com'$smtpPort = '25'$smtp = New-Object Net.Mail.SmtpClient($smtpServer,$smtpPort)$smtp.ClientCertificates.Add($X509Cert)$smtp.EnableSSL = $true# Compose message$emailMessage = New-Object System.Net.Mail.MailMessage$emailMessage.From = ''$emailMessage.To.Add('')$emailMessage.To.Add('')$emailMessage.Subject = ('SMTP Relay (TLS) - ' + (Get-Date -Format g))$emailMessage.Body = 'This is a test email using SMTP Relay (TLS)'# Send the message$smtp.Send($emailMessage)
경우 설정 TLS 커넥터가 올바른 수령을 정의를 통해Add()
메서드를 받아야 하 테스트 이메일을 발송합니다.
유효성 검사 SMTP 릴레이 홉를 사용하는 메시지가 머리글
이제 당신은 기능 SMTP 릴레이 설정을 사용하여 로컬 서버 및 Office365SMTP 릴레이입니다. 모든 테스트가 성공적이었고 장치가 내부 및 외부 수신자 모두에게 메시지를 보낼 수 있습니다. 좋은 일!
경우 당신은 여전히 의심이 필요할지 여부를 확인하는 이러한 메시지를 통해서 가고 있는 Office365SMTP 릴레이,메시지를 확인할 수 있습니다 머리글을 받았습니다.
참고:메시지 헤더를 열면 다른 메일 클라이언트마다 다릅니다. 아래 예제는 Gmail 에만 해당됩니다.
열린 이메일을 Gmail 에서 인터페이스,메시지를 열고,를 클릭는 세 가지 수직점(1)을 클릭합 보여 원(2).
새로운 페이지가 표시됩니다 전자 메일 메시지의 헤더가 있습니다. 클립 보드에 복사(1)를 클릭하십시오.
새로운 브라우저 탭으로 이동하여https://testconnectivity.microsoft.com/.
메시지 분석기(1)탭으로 이동하여 복사 한 데이터를 상자(2)에 붙여 넣은 다음 머리글 분석(3)을 클릭하십시오.
의 분석결과에 표시됩니다 테이블은 아래와 같습니다.
다음과 같은 워크플로에 결과를 위
- 192.168.0.3IP 주소의 원점을 나타냅니다.
- On-prem SMTP 릴레이 서버가 메시지를 받았습니다.
- Exchange Online Protection(EOP)이 메시지를 받았습니다.
- Exchange 온라인 서버 및 아웃 바운드 배달을 위해 다시 라우팅되어 메시지를 받았습니다.
- Office365 에 google.com 메시지를 전달했습니다.
분석 결과를 바탕으로 메시지가 의도 한대로 Office365SMTP 릴레이를 통과했는지 확인할 수 있습니다.
요약
이 문서에서 배운 방법을 만들 TLS 및 비 TLS Office365SMTP 릴레이입니다. 또한 다른 기술을 사용하여 기능을 테스트하고 확인하는 방법과 메시지가 통과 한 SMTP 경로의 유효성을 검사하는 방법을 배웠습니다.
Leave a Reply