מיקרוסופט Azure אין לו שירות משלוח דואר אלקטרוני. בין אם אתה בודק יישומים או מפתח סקריפטים ב-Azure כדי לשלוח דואר אלקטרוני, ידע שאין שירות דואר זמין לך.
חיבור SMTP יוצא דרך פתח 25 נחסם לחלוטין ב-Azure גם. אם אתה לקוח עסקי, תוכל לבקש לבטל את החסימה עבור פתח 25 עבור נדלת ה-Azure שלך. אחרת, איך אפשר לשלוח דואר אלקטרוני מ-Azure?
יש בדרך כלל שני דרכים לאפשר דואר יוצא דרך Azure; באמצעות שרת חכם SMTP ו-בקשות REST API. רוב שירותי משלוח דואר מציעים שתי שיטות של שליחת דואר דרך SMTP ו-API. במאמר זה, תלמד כיצד לשלוח דואר אלקטרוני מ-Azure לשאר העולם.
דרישות מוקדמות
מאמר זה הוא מדריך של "כיצד", ואם אתה מתכנן לעקוב אחר הדוגמאות כפי שהן מתקדמות, ישנם דרישות שעליך לעמוד בהן.
- מנוי Azure. ניתן להירשם למנוי Azure ניסיון חינם אם עדיין אין לך אחד.
- כמו כן, מכונת וירטואלית של Azure (VM). יש להפנות ל-יצירת מכונה וירטואלית של Windows בפורטל Azure כדי ללמוד איך ליצור VM חדש אם אין לך כבר אחת.
- Windows PowerShell 5.1 או PowerShell 7.1.
- A valid sender email address. Using a free email address domain, such as gmail.com, is not recommended. As much as possible, use a sender email address that uses a domain that you own.
הבנת אילו שירותי אימייל להשתמש בהם עם Azure לשליחת אימיילים
ישנם מספר שירותי אימייל בענן זמינים לשימוש. כמה מהשמות המובהקים הם SendGrid, MailJet, ו־MailGun. בין איזה שירות אימייל שתבחר, שימוש בהם לשליחת אימיילים מתוך Azure דומה; כתובת שרת ופתחה עבור SMTP וכתובת נקודת קצה של API עבור REST.
SendGrid הוא דוגמה לשירות אימייל צד שלישי המשמש במאמר זה. שירותי אימייל נוספים שמשמשים כדוגמאות הם סליל SMTP של Office 365 ו- Microsoft Graph API.
נושא קשור: איזה שירות אימייל של Azure לבחור עבור 2021
שימוש ב-SendGrid
SendGrid הוא כנראה האפשרות הפופולרית ביותר לשילוח דואר אלקטרוני מ-Azure. Azure ו-SendGrid כל כך פופולריים מכיוון שבעבר הייתה תוכנית חינמית עם הגבלה של 25,000 דואר אלקטרוני לחודש ללקוחות Azure.
אף על פי שהתוכנית החינמית אינה מוצעת עוד בפורטל Azure, כפי שוודא על ידי Microsoft, עדיין ניתן להירשם למינוי חינמי עם הגבלת 100 דואר אלקטרוני ליום. לאחר מכן תהיה לך גישה לשירות ה-SMTP של SendGrid או ל- API האימייל כדי לשלוח דואר אלקטרוני מיישום או מ-VM של Azure.
יצירת חשבון SendGrid
כדי להשתמש בשירותי SendGrid, עליך לקבל חשבון SendGrid תחילה. עבור לדף הרשמה, ותראה את הטופס כפי שמוצג למטה. הזן את כתובת האימייל שלך והסיסמה שבחרת. לאחר מכן, קבל את התנאים ולחץ על כפתור צור חשבון.

בדף הבא, עליך להזין את שמך ופרטי החברה שלך. עליך גם לבחור את האפשרויות המתאימות כמו תפקידך, כמות האימיילים לשלוח לכל חודש, ומספר העובדים. לאחר מכן, לחץ על התחל.

כאשר אתה מתחבר לראשונה ל-SendGrid, ייתכן שתקבל שגיאה שאומרת "אינך מורשה לגשת ל-SendGrid; נא ליצור קשר עם התמיכה." כאשר זה קורה, פתח כרטיס עם תמיכת SendGrid. עשויים להיות צורך לשאול שאלות אימות לפני שישוחרר גישתך.
תתבקש להפעיל אימות דו־גורמי בעת התחברותך הראשונה. וודא שאתה עוקב אחר ההוראות בדיוק.
יצירת זהות שולח ב-SendGrid
לאחר יצירת החשבון ב-SendGrid, השלב הבא הוא לאמת את זהות השולח. קיימות שתי אפשרויות; לאמת שולח יחיד (לדוגמה, [email protected]) או לאמת כל דומיין (לדוגמה, domain.com).
בדוגמה זו, תיצור זהות שולח יחידה שתשמש ככתובת השולח שלך. רק כתובת השולח המאומתת תאושר לשלוח הודעות דרך שירות ה-SendGrid. עקוב אחר ההוראות למטה כדי ליצור את זהות השולח היחידה.
- על הדף ברוך הבא, לחץ על הכפתור צור שולח יחיד.

2. לאחר מכן, בתפריט הצף צור שולח, ספק את כל המידע הנדרש. השדות הנדרשים מסומנים בכוכבית אדומה לידם לקירוב הנוחות. לאחר הזנת הפרטים, לחץ על צור.

אתה תראה את כתובת השולח החדשה מופיעה תחת הדף אימות יוצר יחיד. כפי שניתן לראות בדוגמה למטה, הכתובת עדיין לא אומתה, כך מציין סימן X אדום בתוך העמודה מאומת.

3. כדי לאמת את השולח, יש למצוא את הדוא"ל שנשלח אל כתובת השולח, דומה לתמונה למטה. לאחר מכן, יש ללחוץ על כפתור אמת שולח יחיד.

כתובת השולח תוכתב ככתובת מאומתת. אתה אמור לראות דף דומה למטה, המאשר שהאימות של השולח הושלם.

יצירת מפתח API של SendGrid
לאחר יצירת כתובת השולח היחידה, יהיה ניתן ליצור ממשק ליצירת מפתחות API. יש לחשוב על מפתח API של SendGrid כסיסמה. בלעדיו, הקוד שלך לא יוכל לאמת עם שירות חשיפת ה-SMTP של SendGrid. יש לעקוב אחר השלבים הבאים כדי ליצור מפתח API חדש.
- בתפריט הצד השמאלי, יש ללחוץ על הגדרות > מפתחות API. לאחר מכן, יש ללחוץ על כפתור צור מפתח API בפינה הימנית העליונה של הדף.

2. יופיע הפריט המוקפץ צור מפתח API. עליך להזין את שם המפתח שאתה יוצר. יש לבחור שם שמקובל, כמו "מפתח בדיקה של Azure". בנוסף, מטעמי פשטות, יש לבחור גישה מלאה כרשות. לבסוף, יש ללחוץ על כפתור צור וצפה.

3. המפתח API החדש מוצג ליד. עכשיו יש להעתיק ולשמור את הערך של המפתח, מכיוון שהוא לא יוצג שוב. לאחר ההעתקה של המפתח, יש ללחוץ על סיום.

שליחת דוא"ל מ-Azure באמצעות שירות הסלילה של SMTP של SendGrid
אתה כעת מחזיק ברכיבים הנדרשים (חשבון, שולח, ומפתח) כדי להשתמש ב-SendGrid לשליחת דואר אלקטרוני מ-Azure. זה הזמן לבדוק אם שירות ה-relay SMTP של SendGrid עובד. במקטע זה, תשתמש ב-PowerShell כדי לשלוח דואר אלקטרוני מ-VM של Azure.
לפני שאתה מפעיל קוד, עליך לדעת את הדרישות הבאות.
- כתובת שרת ה-SMTP של SendGrid היא smtp.sendgrid.net.
- שם המשתמש המשמש לאימות SMTP הוא תמיד apikey.
- הסיסמה שיש להשתמש היא ערך מפתח ה-API שיצרת ב-SendGrid.
- אל תשתמש בפורט 25. במקום זאת, השתמש בפורט 587.
- רק כתובת השולח שאומתה ב-SendGrid היא תקפה לשימוש כשולח של הדואר שלך. בדוגמה זו, השולח המורשה הוא [email protected].
התסריט למטה ישלח דואר אלקטרוני דרך ה-SendGrid SMTP relay. העתק את הקוד למטה ושנה את הערכים של $sendGridApiKey
, From
, To
, ו-Body
. לאחר מכן, הפעל את הקוד בסשן ה-PowerShell שלך. יש להתייחס להערות כדי להבין מה כל שורת קוד עושה.
הדמו שמטה מראה איך הרצת הקוד שבמעלה ב-PowerShell נראית בזמן אמת.

כדי לאשר את אמינות המשלוח של האימייל, בדוק את תיבת הדואר של הנמען כדי למצוא את ההודעה הניסיונית ששלחת. התוצאה תהיה דומה לזו שמוצגת למטה. כפי שאתה רואה, ההודעה הגיעה מכתובת השולח דרך sendgrid.net.

קשר: Send-MailMessage: הדרך בפוורשל לשליחת אימייל
שליחת אימייל מ-Azure באמצעות פעולת SendGrid API
דרך נוספת להשתמש ב-SendGrid עם Azure לשליחת אימיילים היא באמצעות ממשק ה- API של SendGrid V3. במקום לתקשר עם SendGrid באמצעות SMTP, השימוש ב- API תקשר באמצעות HTTP. הבקשה ב- HTTP נשלחת לכתובת ה- API של SendGrid.
הסקריפט של PowerShell בדוגמה למטה משתמש בפקודת Invoke-RestMethod כדי לשלוח את בקשת האימייל מ-Azure ל-SendGrid. העתיקו את הקוד ושנו את ערכי המשתנים $sendGridApiKey, $fromAddress, $toAddress, $mailSubject ו-$mailMessage.
כאשר תסיימו לעדכן את המשתנים, הריצו את הקוד ב-PowerShell.
לאחר הרצת הקוד ב-PowerShell למעלה, בדקו בתיבת הדואר של הנמען ואשרו שקיבל את ההודעה הבדיקה. הדוגמה למטה מציגה הודעת בדיקה שהגיעה בהצלחה מ-Azure דרך ממשק ה- SendGrid API.

אם ברצונכם ללמוד עוד על ממשק ה- SendGrid Web API, בקרו בעמוד ה- V3 Mail Send API .
שימוש באימות SMTP של Office 365
אפשרות נוספת לשליחת אימיילים מ-Azure היא להשתמש בשירות ה- SMTP relay של Office 365. זה בתנאי שבארגון שלך כבר קיים מינוי ל-Exchange Online. בדיוק כמו בשימוש ב-SendGrid כמארח SMTP חכם, שימוש ב-SMTP relay של Office 365 דורש אימות ושימוש בפתחת 587 בלבד.
לפני שתשתמשו ב-SMTP relay של Office 365, עליכם לדעת את התנאים הבאים כדי שהוא יעבוד.
- כתובת השולח חייבת להיות אובייקט תקף של נמען Exchange Online כגון תיבת דואר או משתמש דואר. אבל, אם רצונכם לאחסן קבצי אישור קבלה לא נמסרו, השתמשו בתיבת דואר במקום.
- המשתמש באימות חייב לקבל רישיון תקף של Exchange Online. רק משתמשים רשומים ב-Exchange Online רשאים להשתמש ב-SMTP relay של Office 365.
- נניח שהמשתמש המאומת שונה מהשולח. במקרה כזה, יש להקצות למשתמש ההרשאה לשליחה בשם לחשבון השולח.
- שיטת האימות המשמשת היא בסיסית (תקן ישן). זה אומר שאם אימות בסיסי של SMTP מושבת בארגון שלך או כאשר Microsoft מסיימת סופית תמיכה באימות בסיסי, אימות SMTP לא יעבוד יותר.
- כתובת שרת השליחה של SMTP היא smtp.office365.com, ומספר הפורט הוא 587.
קשור: איך לשלוח דואר אלקטרוני עם Office 365 Direct Send ו-PowerShell
יצירת כתובת שולח ב-Office 365
בדוגמה זו, השולח והמשתמש המאומת הם נפרדים. ודא שאתה מתחבר ל-Exchange Online PowerShell תחילה. לאחר התחברות, עקוב אחר השלבים הבאים.
צור תיק שולף באמצעות הפקודה למטה. שנה את הערכים הנכונים שלך ב--Name
וב--PrimarySMTPAddress
.
על התיק שולף להיות נוצר ויחזור תוצאה דומה לזו למטה.

אז, הקצא את הרשאת שליחה כ- למשתמש האימות. בדוגמה למטה, המשתמש מוקצה עם הרשאת שליחה כ- לתיבת הדואר המשותפת.
לאחר ביצוע הפקודה למעלה, עליך לקבל תוצאה דומה לזו למטה.

שליחת דואר אלקטרוני מתוך Azure באמצעות המרת SMTP של Office 365
לאחר יצירת כתובת השולח והקצאת הרשאת שליחה כ-, השלב הבא הוא לבדוק את משלוח הדואר האלקטרוני באמצעות PowerShell והמרת SMTP של Office 365.
הקוד למטה מאומת באמצעות [email protected]. הכתובת [email protected] מופיעה כשולח. ודא שאתה מקצה את הערכים הנכונים שלך לפני הרצת הקוד.
שימוש בפרטי האימות בתסריטים שהם בטקסט פשוט אינו מומלץ. תסריטים לייצור יישומים חייבים להשתמש בהצפנת פרטי הכניסה או בניהול סודיות כדי לאבטח שמות משתמש וסיסמאות.
עכשיו הגיע הזמן לבדוק את תיבת הדואר של המקבל. אשר כי הודעת הבדיקה התקבלה.

שימוש ב- Microsoft Graph API לשליחת דואר אלקטרוני מ-Azure
שימוש ב-Office 365 SMTP relay, הדרך המאובטחת והמומלצת יותר היא להשתמש ב-Microsoft Graph API. עם Microsoft Graph API, ניתן לשלוח דואר אלקטרוני מכל תיקיה בארגון שלך באמצעות שיחות REST API.
כדי להשתמש ב-Microsoft Graph API לשליחת דואר, נדרש אפליקציה רשומה ב-Azure AD. על האפליקציה הרשומה להיות מוקצת עם הרשאת API של Mail.Send. הקטעים הבאים יראו לך איך להגדיר את Microsoft Graph API ולהשתמש בו לשליחת דואר אלקטרוני.
קשור: שימוש ב-Microsoft Graph API עם PowerShell
רישום אפליקציה חדשה ב-Azure Active Directory
בסעיף זה, תרשום אפליקציה חדשה באתר ה-Active Directory של Azure. האפליקציה החדשה תפעל כזהות אימות עבור Microsoft Graph. התחבר ל-פורטל של Azure אם עדיין לא נכנסת.
- נווט לתיקייה של Azure Active Directory —> רישום אפליקציות. לאחר מכן, לחץ על רישום חדש.

2. בעמוד רישום אפליקציה, הכנס את שם האפליקציה.
3. מתחת לסוגי חשבונות נתמכים, בחר חשבונות בספרייה הארגונית הזו בלבד. הקלד את HTTP://localhost ככתובת ה-הפנייה URI. לבסוף, לחץ על הלחצן רשום.

4. המתן להשלמת ההרשמה. התהליך לוקח רק מספר שניות. אל תשכח לרשום את מזהה האפליקציה (הלקוח) ואת מזהה הספרייה (השוכר). תצטרך להשתמש בהם מאוחר יותר.

יצירת מפתח סודי ללקוח
חשוב לראות את מזהה האפליקציה שיצרת בקטע הקודם כמו שם משתמש. ומזהה זה זקוק לסיסמה – שהיא מפתח הסוד.
כדי להוסיף מפתח סודי חדש לאפליקציה, עקוב אחר השלבים הבאים.
- עבור אל אישורים וסודות, ולאחר מכן לחץ על סוד לקוח חדש.
- הזן את התיאור עבור מפתח הסוד לקוח, כמו key1.
- בחר מתי מפתח הסוד יפוג, ולחץ על הוסף. בדוגמה למטה, מפתח הסוד פג בעוד שנה.

תראה את המפתח החדש מופיע מתחת לקטע סודות לקוח. זהו הזמן היחיד שתראה את ערך המפתח, אז שמור עותק.

הקצאת הרשאות API והענקת אישור מנהל
עכשיו שיש לך את מזהה האפליקציה והסוד, השלב הבא הוא להקצות את ההרשאות הדרושות של Microsoft Graph API. בלעדי הקצאת הרשאות, האפליקציה יכולה לאמת אך לא תהיה לה סמכות לביצוע פעולות, כמו לשלוח דואר אלקטרוני.
כדי להתחיל בהקצאת הרשאות, עקוב אחר השלבים הבאים.
- לחץ על הרשאות API בתפריט מצד שמאל.
2. לאחר מכן, בדף הרשאות מוגדרות, לחץ על הכפתור הוסף הרשאה.

3. בתפריט הצפיפות בקש הרשאות API, לחץ כדי לבחור API של Microsoft Graph.

4. כאשר נדרש לבחור את סוג ההרשאה הנדרשת על ידי היישום, לחץ על הרשאות אפליקציה.
5. בתיבת החיפוש, הקלד Mail.Send כדי לחפש אותה. בתוצאה, לחץ כדי לסמן את ההרשאה Mail.Send. לבסוף, לחץ על הוסף הרשאות.

6. תשים לב שמצב ההרשאה הוא "לא ניתנה ל<שם הארגון>. בנקודה זו, אתה או מנהל גלובלי חייבים לתת קבלה ראשונית ליישום. לתת הרשאה, לחץ על הענק הסכמת מנהל ל<ארגון>.

אז מצב ההרשאה ל-API משתנה ל "ניתנה עבור <שם הארגון>.".

קבלת טוקן גישה
בקשות שנשלחות ל-Microsoft Graph API דורשות טוקן גישה. בנקודה זו, יש לך כבר את מזהה היישום שלך, המפתח הסודי ומזהה השוכר. שלושת חלקי המידע הללו הם מה שנדרש כדי לקבל טוקן גישה.
הסקריפט של PowerShell למטה שולח בקשת טוקן גישה לנקודת הקצה של Microsoft Graph API. עליך לעדכן את $client_id
, $client_secret
ו־$tenant_id
לערכים הנכונים שלך תחילה. לאחר מכן, העתק והדבק את הקוד ב-PowerShell כדי לבקש את טוקן הגישה.
הדגמה למטה מראה את התסריט של PowerShell שלמעלה בפעולה. שים לב שהטוקן המבוקש נשמר במשתנה $token
.

טוקנים נכונים לשעה (1) רק מהזמן שהוא נרכש. תצטרך לבקש טוקן נוסף לאחר שהטוקן הקודם פג.
שליחת דוא"ל מתוך Azure באמצעות Microsoft Graph API
אתה מוכן כעת להשתמש ב-Microsoft Graph API עם Azure כדי ל
# ספק את כתובת האימייל של השולח והמקבל
$fromAddress = 'SENDER ADDRESS HERE'
$toAddress = 'RECIPIENT ADDRESS HERE'
# ציין את נושא האימייל ואת ההודעה
$mailSubject = 'This is a test message from Azure via Microsoft Graph API'
$mailMessage = 'This is a test message from Azure via Microsoft Graph API'
# אל תשנה דבר מתחת לשורה זו
# בנה את בקשת ה- Microsoft Graph API
$params = @{
"URI" = "https://graph.microsoft.com/v1.0/users/$fromAddress/sendMail"
"Headers" = @{
"Authorization" = ("Bearer {0}" -F $token)
}
"Method" = "POST"
"ContentType" = 'application/json'
"Body" = (@{
"message" = @{
"subject" = $mailSubject
"body" = @{
"contentType" = 'Text'
"content" = $mailMessage
}
"toRecipients" = @(
@{
"emailAddress" = @{
"address" = $toAddress
}
}
)
}
}) | ConvertTo-JSON -Depth 10
}
# שלח את ההודעה
Invoke-RestMethod @params -Verbose