Articles

Adam Automator

urăsc sau iubesc; e-mailul este peste tot. Protocolul pentru a muta acel e-mail peste tot este SMTP, iar „routerele” SMTP sunt Relee SMTP.

Configurarea releelor SMTP variază de la un sistem la altul, dar dacă aveți Office 365 ca furnizor de servicii de poștă electronică, opțiunile sunt limitate. Configurarea poate fi complicată și predispusă la erori, în special pentru dispozitivele care nu sunt capabile de TLS.

rețineți că trimiterea de e-mailuri prin Office 365 nu necesită un releu SMTP. Puteți solicita clienților să trimită e-mailuri direct la Office 365 fără a adăuga un releu SMTP care nu necesită modificări de configurare. Pentru a afla ce sunt, citiți Cum să trimiteți e-mailul de trimitere a clientului Office 365 direct/SMTP (PowerShell).

cuprins

cerințe preliminare

acestea sunt cerințele înainte de a putea continua.

  1. un abonament Office 365. Dacă nu aveți încă acest lucru, vă puteți înscrie pentru un abonament de încercare Office 365 E5.
  2. un computer Windows 10 cu PowerShell v5.1
  3. o adresă IP statică publică. Puteți crea în continuare un releu SMTP în Office 365 chiar și fără acest lucru, dar este posibil să nu testați.
  4. portul TCP 25 accesați de la un client la punctul final Office MX
  5. un certificat SSL valid. Acest certificat ar putea fi un certificat wildcard (de ex. *.yourdomain.com) emise de autorități de certificare terțe, cum ar fi LetsEncrypt, Digicert etc. Rețineți că nu puteți utiliza certificate auto-semnate sau certificate emise de un PKI intern, deoarece acestea nu sunt acceptate. (necesar numai pentru conexiunile TLS)

pentru a configura un releu SMTP, trebuie mai întâi să creați un conector în Office 365 pentru a accepta tranzacții SMTP. Acest conector va primi tranzacții releu SMTP din aplicație sau dispozitiv.înainte de a încerca să creați un conector, asigurați-vă că contul dvs. are permisiunile Exchange Online corespunzătoare. Asigurați-vă că contul dvs. este membru al Grupului de gestionare a Organizației.

există două moduri de a crea un conector. Puteți utiliza fie Centrul de administrare Exchange, fie PowerShell. Ambele opțiuni vor efectua aceeași sarcină. Depinde de tine pe care să o folosești. În acest articol, vom acoperi ambele. Vom acoperi, de asemenea, crearea de conectori non-TLS și TLS.

creați un conector Non-TLS folosind Centrul de administrare Exchange

să începem prin crearea unui conector non-TLS. Mai întâi veți învăța cum să faceți acest lucru prin intermediul Centrului de administrare Exchange. Puteți configura multe setări Office 365 SMTP în Centrul de administrare Exchange.

odată conectat, faceți clic pe fluxul de e –mail (1) –> conectori (2) – > nou (3). Va apărea noua fereastră a conectorului.

conector nou
conector nou

în fereastra conector nou, selectați din: serverul de e-mail al organizației dvs. (1), Selectați la: Office 365 (2), Faceți clic pe următorul (3).

selectarea unui scenariu de flux de e-mail
selectarea unui scenariu de flux de e-mail

în fereastra următoare, introduceți numele releu SMTP (Non-TLS) sau alegeți propriul nume (1), tastați descrierea accept relay de la serverul SMTP local (2), debifați reține anteturile de e-mail de schimb intern (recomandat) (3) și faceți clic pe următorul (4).

atribuirea unui nume conectorului
atribuirea unui nume conectorului

în fereastra următoare, selectați verificând dacă adresa IP a serverului expeditor se potrivește una dintre aceste adrese IP care aparțin organizației dvs. (1) și faceți clic pe Adăugare (2).

adăugarea adreselor IP permise la conector
adăugarea adreselor IP permise la conector

în noua fereastră pop-up, introduceți adresa IP publică (1), apoi faceți clic pe OK (2). Acest lucru ar trebui să vă aducă înapoi la fereastra anterioară.

adăugarea adreselor IP permise la conector
adăugarea adreselor IP permise la conector

verificați dacă adresa IP este adăugată în listă (1), apoi faceți clic pe următorul (2).

adăugarea adreselor IP permise la conector
adăugarea adreselor IP permise la conector

atunci veți vedea rezumatul modificărilor pe care trebuie să le implementați. Lucrați mai întâi la modificările necesare. Dacă nu există, puteți merge mai departe și faceți clic pe Salvare.

înapoi în Centrul de administrare Exchange, puteți confirma acum că noul conector a fost creat.

a fost creat conectorul Office 365
a fost creat conectorul Office 365

acum ar trebui să aveți un conector non-TLS creat.

crearea unui conector TLS folosind Exchange Admin Center

crearea unui conector TLS este similară cu crearea unui conector non-TLS. La fel ca modul în care ați creat un conector non-TLS, reveniți la expertul conector nou și utilizați același scenariu de flux de e-mail. Voi folosi un nume de conector al releului SMTP (Non-TLS), dar al tău poate varia.

în fereastra pentru a defini Office 365 ar trebui să identifice e-mailul de pe serverul dvs. de e-mail, selectați:

  • verificând dacă numele subiectului din certificatul pe care serverul expeditor îl folosește pentru a se autentifica cu Office 365 se potrivește cu acest nume de domeniu (recomandat) (1)
  • apoi tastați subiectul certificatului SSL (2)
  • și faceți clic pe Următorul (3).
creați un conector TLS folosind Exchange Admin Center
creați un conector TLS folosind Exchange Admin Center

Din nou, veți vedea un rezumat schimbărilor necesare. Lucrați mai întâi la ele înainte de procesare. Dacă nu există, puteți face clic pe butonul Salvare imediat.

crearea unui conector Non-TLS folosind PowerShell

dacă crearea de conectori Office 365 printr-o interfață grafică nu este lucrul dvs., le puteți crea întotdeauna și prin PowerShell. Pentru a face acest lucru, asigurați-vă mai întâi că sunteți conectat la Exchange Online PowerShell.

pentru a crea conectorul, va trebui să rulați comanda New-InboundConnector. Această comandă necesită câțiva parametri diferiți, așa că voi configura acești parametri înainte de timp folosind PowerShell splatting.

am adăugat câteva comentarii în codul propriu – zis de mai jos, Dar iată o defalcare a fiecărui parametru și pentru ce este folosit:

  • nume-acesta este numele conectorului.
  • ConnectorType – acesta este tipul de conector. Această valoare poate fi OnPremises sau Partner. În acest scenariu, tipul corespunzător este OnPremises.
  • SenderDomains – aceasta poate fi o listă a domeniilor expeditorului permise. Numai domeniile verificate pentru chiriașul dvs. sunt alegeri valide. Asteriscul ( *) înseamnă că permiteți tuturor domeniilor verificate să transmită mesaje utilizând acest conector. Dacă trebuie doar să permiteți anumite domenii expeditor, modificați această valoare într-o matrice de domenii. (ex. 'domain1.com','domain2.com')
  • SenderIPAddresses – aceasta este adresa IP publică. Nu uitați să schimbați acest lucru înainte de execuție.
  • RestrictDomainsToIPAddresses – când această valoare este setată la$true, indică faptul că acest conector va accepta doar e-mailuri de la adresele expeditorilor care provin de la adresa IP publică permisă.
$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

când este executat, ar trebui să vedeți ceva similar cu mai jos.

New-InboundConnector
New-InboundConnector

creați un conector TLS folosind PowerShell

presupunând că sunteți conectat, executați codul de mai jos pentru a crea un conector TLS și cu Powershell. Puteți vedea mai jos mulți parametri sunt identici cu crearea unui conector non-TLS. Parametrii necesari care diferă de crearea unui conector non-TLS sunt:

  • RequireTLS – aceasta specifică faptul că toate mesajele primite de acest conector necesită transmisie TLS
  • TlsSenderCertificateName – acesta este numele (sau subiectul) certificatului utilizat de expeditor.

$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

executa codul de mai sus și de a avea un conector TLS creat și gata pentru a primi e-mail.

testarea conectorului releului SMTP Office 365 cu PowerShell

după crearea conectorului, pregătiți-vă să îl testați. Cel mai simplu mod de a face acest lucru este să utilizați PowerShell. În această secțiune, vom crea câteva scripturi PowerShell pentru a vă permite să vă asigurați cu ușurință că conectorul funcționează corect.

înainte de a începe testarea, asigurați-vă mai întâi că știți care este URL-ul final MX pentru domeniul Exchange Online. Dacă nu știți cum să găsiți adresa URL a punctului final MX, conectați-vă la portalul de administrare Office 365. Faceți clic pe Configurare, selectați Domenii, faceți clic pe numele domeniului și copiați punctele MX la adresă sau valoare.

testarea unui releu SMTP non-TLS (adresă IP)

notă: Această testare trebuie făcută de pe computerul a cărui adresă IP publică este permisă în configurarea releului SMTP Office 365.

utilizați codul PowerShell de mai jos pentru testare. Asigurați-vă că modificați valorile parametrilor FromTo și SmtpServer pentru a utiliza propriile setări ale releului SMTP Office 365 înainte de a-l rula.

  • To – trebuie să includă un destinatar de domeniu intern și un destinatar de domeniu extern. Nu uitați să schimbați aceste valori pe ale voastre.
  • From – trebuie schimbat la adresa expeditorului nominalizat. Partea de domeniu a adresei de e-mail trebuie să fie unul dintre domeniile de e-mail ale chiriașului.
  • SmtpServer – trebuie schimbat la punctul final MX al entității găzduite Office 365.
$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

testarea unui releu SMTP TLS (certificat)

Notă: Trebuie să aveți certificatul SSL public în format PFX înainte de a putea continua acest test.

deoarece releul SMTP TLS necesită un certificat, nu puteți utiliza Send-MailMessage PowerShell cmdlet deoarece nu vă permite să selectați un anumit certificat. În schimb, utilizați două obiecte. net numite System.Net.Mail.SmtpClient pentru a defini parametrii SMTP și System.Net.Mail.MailMessage pentru a compune mesajul.

mai jos veți găsi un fragment de cod PowerShell pe care îl puteți utiliza pentru a testa releul TLS SMTP. Nu uitați să schimbați pfxFilepfxPassFromTo și SmtpServer valorile pentru a utiliza setările releului Office 365 SMTP înainte de a-l rula.

# 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)

Dacă setarea conectorului TLS este corectă, destinatarii definesc prin metodaAdd() ar trebui să primească e-mailul de testare.

validarea SMTP releu hamei folosind antetul mesajului

acum aveți un releu SMTP funcțional configurat folosind un server local și Office 365 SMTP releu. Toate testele au avut succes, iar dispozitivele dvs. pot trimite mesaje atât destinatarilor interni, cât și celor externi. Bună treabă!

Dacă aveți încă îndoieli și trebuie să confirmați dacă aceste mesaje trec prin releul SMTP Office 365, puteți examina anteturile mesajelor din e-mailurile primite.

notă: deschiderea anteturilor mesajelor variază între diferiți clienți de e-mail. Exemplul de mai jos este specific Gmail.

deschideți e-mailul în interfața Gmail, deschideți mesajul și faceți clic pe cele trei puncte verticale (1), apoi faceți clic pe Afișați originalul (2).

validarea hameiului releului SMTP folosind antetul mesajului
validarea hameiului releului SMTP folosind antetul mesajului

o nouă pagină va afișa anteturile mesajelor de e-mail. Faceți clic pe Copiere în clipboard (1).

validarea hameiului releului SMTP folosind antetul mesajului
validarea hameiului releului SMTP folosind antetul mesajului

deschideți o nouă filă de browser și navigați la https://testconnectivity.microsoft.com/.

accesați fila Analizor de mesaje (1), lipiți datele copiate în caseta (2) și faceți clic pe analizați anteturile (3).

analiza anteturilor
analiza anteturilor

rezultatul analizei va fi afișat în tabel așa cum se arată mai jos.

analiza rezultatelor
analiza rezultatelor

ar trebui să vedeți următorul flux de lucru în rezultatele de mai sus:

  1. adresa IP 192.168.0.3 indică originea calculatorului.
  2. serverul releu SMTP on-prem a primit mesajul.
  3. Exchange Online Protection (EOP) a primit mesajul.
  4. Exchange Online server și re-rutate pentru livrare de ieșire a primit mesajul.
  5. Office 365 pentru a google.com am transmis mesajul.

pe baza rezultatelor analizei, puteți confirma că mesajul a trecut prin releul SMTP Office 365 conform destinației.

rezumat

În acest articol, ați învățat cum să creați un releu TLS și non-TLS Office 365 SMTP. De asemenea, ați învățat cum să testați și să confirmați funcționalitatea acestora folosind diferite tehnici și cum să validați rutele SMTP prin care a trecut mesajul.

lecturi suplimentare