Stuur e-mail met Office 365 Direct Send en PowerShell

Wist je dat je Office 365 kunt gebruiken om e-mails te verzenden met PowerShell? In dit artikel ga je leren hoe je e-mails kunt versturen met Office 365 Direct Send en de Send-MailMessage-cmdlet van PowerShell.

Als je een diepgaande blik wilt werpen op het verzenden van e-mails met PowerShell, bekijk dan deze diepgaande handleiding over Send-MailMessage.

Office 365 Direct Send vs. SMTP-clientindiening

Voordat we te diep ingaan op PowerShell, weet dat er niet slechts één manier is om e-mails te verzenden via Office 365 met PowerShell. Office 365 heeft twee ondersteunde manieren om e-mails te verzenden. Die opties zijn Direct Send en SMTP-clientindiening of SMTP-geauthenticeerde indiening.

SMTP-geauthenticeerde indiening

SMTP-geauthenticeerde indiening is het eenvoudigst in te stellen. Je zou voor deze optie kiezen als je e-mails wilt verzenden vanaf een apparaat of toepassing naar ontvangers binnen en buiten je organisatie. Hier is geen extra actie voor nodig in Office 365.

Met deze optie kun je elk afzenderadres gebruiken. Maar het adres moet afkomstig zijn van een van je geverifieerde geaccepteerde domeinen.

Om SMTP-geauthenticeerde indiening te gebruiken, moet je:

  • Een Office 365-gebruikersmailbox hebben (gelicentieerd). Dit e-mailadres wordt weergegeven als de afzender van het bericht.
  • PowerShell (of een andere client) moet in staat zijn om smtp.office365.com op te lossen en te bereiken.
  • TCP-poort 587 of 25 moet open zijn naar Office 365 vanaf de client.

Direct Send

Het verhogen van de complexiteit brengt ons bij de optie Direct verzenden. Net als bij SMTP-geauthenticeerde verzending stelt Direct verzenden je in staat om elk verzendadres te gebruiken. Ook moet het van-adres afkomstig zijn van een van je geverifieerde geaccepteerde domeinen.

Het grote verschil tussen Direct verzenden en SMTP-geauthenticeerde verzending is dat er geen externe ontvangers zijn toegestaan. Als je naar e-mailontvangers buiten je organisatie moet sturen, werkt Direct verzenden niet voor jou.

Direct verzenden heeft een paar eigen vereisten/aanbevelingen:

  • Het verzendadres hoeft geen geldige mailbox te zijn. Maar het is nodig als je NDR’s of antwoorden wilt ontvangen via dit adres.
  • TCP-poort 25 is geopend van je client naar Office 365.
  • Het apparaat moet in staat zijn om je MX-eindpunt-URL op te lossen en te bereiken (bijv. yourdomain-com.mail.protection.outlook.com)
  • A static public IP address. This is to update your SPF record and avoid your messages getting flagged as spam (optional but recommended)

Als je niet weet hoe je je MX-eindpunt-URL kunt vinden, volgt hier een snelle tutorial:

  1. Log in op het Office 365-beheerportaal.
  2. Klik op Instellen (1), selecteer Domeinen (2), klik op de Domeinnaam (3), kopieer het MX Wijst naar adres of waarde (4).
Finding Office 365 MX Endpoint URL

SMTP-geauthenticeerde verzending

De eerste methode om e-mail te verzenden is via SMTP Client Submission of SMTP-geauthenticeerde verzending. Met behulp van de Send-MailMessage-cmdlet in PowerShell kunnen we alle parameters verstrekken die we nodig hebben om e-mail via Office 365 te verzenden.

Hieronder staat een fragment dat je kunt gebruiken om een e-mail te versturen via deze methode.

Je moet eerst een PowerShell PScredential object definiëren en vervolgens alle parameters verstrekken die Send-MailMessage nodig heeft.

# Ontvang de referenties
$credential = Get-Credential

## Definieer de parameters voor Send-MailMessage
$mailParams = @{
    SmtpServer                 = 'smtp.office365.com'
    Port                       = '587' # of '25' als je geen TLS gebruikt
    UseSSL                     = $true ## of niets als je geen TLS gebruikt
    Credential                 = $credential
    From                       = '[email protected]'
    To                         = '[email protected]', '[email protected]'
    Subject                    = "SMTP Client Submission - $(Get-Date -Format g)"
    Body                       = 'This is a test email using SMTP Client Submission'
    DeliveryNotificationOption = 'OnFailure', 'OnSuccess'
}

## Verstuur het bericht
Send-MailMessage @mailParams

Als je de bovenstaande code uitvoert, zou je een e-mail moeten ontvangen die ontvangen is door de interne ontvanger (jouwdomein.com) en het externe domein (nietjouwdomein.com).

Internal Email
External email

Direct Versturen (TLS vereist)

Vergelijkbaar met SMTP Geauthenticeerde Verzending, kun je bijna dezelfde parameters gebruiken voor Send-MailMessage. Deze keer zullen de Naar-ontvangers echter alleen intern zijn.

Merk ook op dat er geen PSCredential nodig was.

## Bouw parameters op
$mailParams = @{
    SmtpServer                 = '<tenant>.mail.protection.outlook.com'
    Port                       = '25'
    UseSSL                     = $true   
    From                       = '[email protected]'
    To                         = '[email protected]'
    Subject                    = "Direct Send $(Get-Date -Format g)"
    Body                       = 'This is a test email using Direct Send'
    DeliveryNotificationOption = 'OnFailure', 'OnSuccess'
}

## Verstuur de e-mail
Send-MailMessage @mailParams
Direct Send email

Samenvatting

Je ziet dat Office 365 twee verschillende opties biedt voor het versturen van e-mails. In dit artikel hebben we PowerShell als voorbeeld gebruikt om beide te demonstreren. Maar je hoeft geen PowerShell te gebruiken. Zolang je toepassing of programmeertaal TLS-authenticatie ondersteunt, kun je elke methode gebruiken die je wilt.

Further Lezen

Source:
https://adamtheautomator.com/office-365-direct-send/