שלח אימייל עם Office 365 Direct Send ו־PowerShell

אתה יודע שאתה יכול להשתמש ב-Office 365 כדי לשלוח דוא"ל עם PowerShell? במאמר הזה, אתה הולך ללמוד איך לשלוח דוא"ל עם Office 365 Direct Send וב-Send-MailMessage cmdlet של PowerShell.

אם אתה רוצה להעמיק בשליחת דוא"ל עם PowerShell, תבדוק מדריך זה בעומק על Send-MailMessage.

Office 365 Direct Send vs. SMTP Client Submission

לפני שנכנס יותר מדי ל-PowerShell, יש לדעת שאין רק דרך אחת לשלוח דוא"ל דרך Office 365 באמצעות PowerShell. ל-Office 365 יש שני אמצעים נתמכים לשליחת דוא"ל. אלו האפשרויות Direct Send ו־SMTP Client Submission או SMTP Authenticated Submission.

SMTP Authenticated Submission

שליחה אוטומטית מאושרת היא הקלה ביותר להגדרה. תבחר באפשרות זו אם תתכנן לשלוח דוא"ל ממכשיר או יישום לנמענים בתוך ומחוץ לארגון שלך. אין צורך בפעולה נוספת ב-Office 365 כדי לאפשר זאת.

באפשרות זו ניתן להשתמש בכל כתובת שולח. אך הכתובת חייבת להיות מאחת מהדומיינים המאושרים שלך.

כדי להשתמש ב־SMTP Authenticated Submission, יש לך ל:

  • ספק תיקייה דואר באמצעות Office 365 (בתשלום). כתובת הדוא"ל הזו תופיע כשולחת ההודעה.
  • PowerShell (או לקוח אחר) חייב להיות מסוגל לפתור ולהגיע אל smtp.office365.com.
  • חייבים לפתוח את יציאת ה- TCP 587 או 25 אל Office 365 מהלקוח.

Direct Send

מרפים את המקוריות קצת עם אפשרות Direct Send. כמו SMTP Authenticated Submission, Direct Send מאפשר לך להשתמש בכל כתובת שולח. גם, יש לו תקן שהכתובת ממנה מתבצעת השליחה, חייבת להיות מתוך תחום האמות שלך.

ההבחנה הגדולה בין Direct Send ו-SMTP Authenticated Submission היא שאין להתיר לנמענים חיצוניים ב-Direct Send. אם יש לך צורך לשלוח לנמענים דואר אלקטרוני מחוץ לארגון שלך, Direct Send לא יעבוד עבורך.

Direct Send יש לו כמה דרישות/המלצות ייחודיות שלו:

  • כתובת השולח אינה חייבת להיות תיקפה. אך היא נחוצה אם אתה מתכוון לקבל NDRs או תגובות באמצעות כתובת זו.
  • פתח את יציאת ה-TCP 25 מהלקוח שלך ל-Office 365.
  • התקן חייב להיות מסוגל לפתור ולהגיע לכתובת ה-MX שלך (לדוגמה, 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)

אם אינך יודע איך למצוא את כתובת ה-MX שלך, הנה מדריך מהיר:

  1. התחבר ל-Office 365 Admin Portal.
  2. לחץ על Setup (1), בחר ב-Domains (2), לחץ על Domain name (3), העתק את ה-MX Points to address or value (4).
Finding Office 365 MX Endpoint URL

SMTP Authenticated Submission

השיטה הראשונה לשלוח דואר אלקטרוני היא דרך השליחה של SMTP Client Submission או SMTP Authenticated Submission. באמצעות פקודת ה-PowerShell, Send-MailMessage, אנו יכולים לספק את כל הפרמטרים הנדרשים לשליחת דואר אלקטרוני דרך Office 365.

הנה קטע שאתה יכול להשתמש בו כדי לשלוח אימייל דרך השיטה הזו.

תצטרך להגדיר תחילה את אובייקט ה־PowerShell PScredential ולספק את כל הפרמטרים שהפונקציה Send-MailMessage דורשת.

# קבל את האישור
$credential = Get-Credential

## הגדר את הפרמטרים של Send-MailMessage
$mailParams = @{
    SmtpServer                 = 'smtp.office365.com'
    Port                       = '587' # או '25' אם אינך משתמש ב־TLS
    UseSSL                     = $true ## או לא אם אתה משתמש ב־non-TLS
    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'
}

## שלח את ההודעה
Send-MailMessage @mailParams

כאשר אתה מפעיל את הקוד למעלה, אתה אמור לקבל אימייל הנשלח לנמען הפנימי (yourdomain.com) ולתחום החיצוני (notyourdomain.com).

Internal Email
External email

שליחה ישירה (נדרש TLS)

דומה ל־SMTP Authenticated Submission, תוכל להשתמש בפרמטרים דומים ל־Send-MailMessage. אך הפעם, הנמענים ב־To יהיו רק פנימיים.

שים לב שאין צורך ב־PSCredential במקרה זה.

## בנה פרמטרים
$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'
}

## שלח את האימייל
Send-MailMessage @mailParams
Direct Send email

סיכום

תראה ש-Office 365 מספקת שני אפשרויות שונות לשליחת אימייל. במאמר זה, השתמשנו ב־PowerShell כדי להדגיש דוגמה לשתי האפשרויות. אך אין צורך להשתמש ב-PowerShell. כל עוד היישום או שפת התכנות שלך תומכים באימות TLS, תוכל להשתמש בכל שיטה שתבחר.

קריאה נוספת

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