استخدم Azure لإرسال البريد الإلكتروني مع SendGrid وGraph وOffice 365

مايكروسوفت أزور ليس لديها خدمة تسليم البريد الإلكتروني. سواء كنت تقوم باختبار التطبيقات أو تطوير البرامج النصية في أزور لإرسال رسائل البريد الإلكتروني، فتأكد من عدم توفر خدمة بريد إلكتروني أصلية لك.

كما أن اتصال SMTP الصادر عبر المنفذ 25 محظور تمامًا في أزور. إذا كنت عميلًا لشركة مؤسسة، فيمكنك طلب فتح المنفذ 25 لحساب أزور الخاص بك. وإلا، كيف يمكنك إرسال رسائل البريد الإلكتروني من أزور؟

هناك عادة طريقتين للسماح بإرسال رسائل البريد الإلكتروني من أزور؛ استخدام خادم بريد إلكتروني ذكي SMTP وطلبات واجهة برمجة التطبيقات (API) REST. يقدم معظم خدمات تسليم البريد الإلكتروني كل من طريقتي SMTP و API لإرسال رسائل البريد الإلكتروني. في هذه المقالة، ستتعلم كيفية إرسال رسائل البريد الإلكتروني من أزور إلى بقية العالم.

المتطلبات الأساسية

هذه المقالة هي دليل كيفية، وإذا كنت تخطط لمتابعة الأمثلة بما يتقدم، فيجب عليك توفير بعض المتطلبات.

  • إشتراك في أزور. يمكنك التسجيل للحصول على إشتراك مجاني في أزور إذا لم يكن لديك حساب بعد.
  • آلة افتراضية Azure (VM). راجع إرشادات إنشاء آلة افتراضية لنظام التشغيل Windows في بوابة Azure لمعرفة كيفية إنشاء آلة افتراضية جديدة إذا لم يكن لديك واحدة بعد.
  • 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 وعنوان نقطة نهاية واجهة برمجة التطبيق لبروتوكول REST.

SendGrid هو مثال على خدمة بريد إلكتروني من جهة ثالثة تستخدم في هذه المقالة. وتستخدم خدمات البريد الإلكتروني الإضافية كأمثلة هي إعادة توجيه SMTP في Office 365 وواجهة برمجة التطبيق Microsoft Graph.

ذات الصلة: أي خدمة بريد إلكتروني Azure تختار لعام 2021

استخدام SendGrid

SendGrid هي عبارة عن أكثر خيارات خدمة البريد الإلكتروني شهرة لإرسال رسائل البريد الإلكتروني من Azure. تعتبر Azure و SendGrid شهيرتين بسبب وجود خطة مجانية سابقًا تتيح لعملاء Azure إرسال 25,000 رسالة بريد إلكتروني في الشهر.

على الرغم من أن الخطة المجانية لم تعد متاحة في بوابة Azure، كما أكدته مايكروسوفت، فمن الممكن الاشتراك في اشتراك مجاني يتيح 100 رسالة بريد إلكتروني يوميًا. بعد ذلك، ستتمكن من الوصول إلى خدمة إعادة توجيه SMTP أو واجهة برمجة التطبيق للبريد الإلكتروني التابعة لـ SendGrid لإرسال رسائل البريد الإلكتروني من تطبيق أو آلة افتراضية Azure.

إنشاء حساب SendGrid

يتطلب استخدام خدمات SendGrid أن يكون لديك حساب SendGrid أولاً. انتقل إلى صفحة الاشتراك، ويجب أن ترى النموذج كما هو موضح أدناه. أدخل عنوان بريدك الإلكتروني وكلمة المرور التي اخترتها. ثم، قبل الشروط وانقر على زر إنشاء حساب.

Signing up for a free SendGrid account

في الصفحة التالية، تحتاج إلى إدخال اسمك ومعلومات الشركة. كما يجب عليك اختيار الخيارات المناسبة مثل دورك وعدد الرسائل التي سترسلها في الشهر وعدد الموظفين. ثم، انقر على ابدأ الآن.

Entering your account information

عند تسجيل الدخول الأول إلى SendGrid ، قد تحصل على خطأ يقول “ليس لديك الصلاحية للوصول إلى SendGrid ؛ يرجى الاتصال بالدعم”. عند حدوث ذلك ، افتح تذكرة مع دعم SendGrid. قد يحتاجون إلى طرح بعض الأسئلة للتحقق قبل أن يقوموا بفتح الوصول الخاص بك.

سيُطلب منك تمكين المصادقة الثنائية أثناء تسجيل الدخول الأول. تأكد من اتباع التعليمات بدقة.

إنشاء هوية مرسل SendGrid

بعد إنشاء حساب SendGrid ، يأتي الخطوة التالية وهي تفويض هوية المرسل. هناك خياران ؛ مصادقة مرسل واحد (على سبيل المثال ، [email protected]) أو مصادقة النطاق بأكمله (على سبيل المثال ، domain.com).

في هذا المثال ، ستقوم بإنشاء هوية مرسل واحدة ستكون عنوان مرسلك. سيتم السماح فقط لعنوان المرسل الموثق بإرسال رسائل عبر خدمة SendGrid. اتبع التعليمات أدناه لإنشاء هوية المرسل الواحدة.

  1. على صفحة الصفحة الرئيسية ، انقر على زر إنشاء مرسل واحد.
Creating a single sender

2. بعد ذلك ، على الشريط الجانبي إنشاء مرسل ، قم بتقديم جميع المعلومات المطلوبة. تم وضع علامة * الحمراء بجوار الحقول المطلوبة لسهولة الإشارة إليها. بعد إدخال التفاصيل ، انقر على إنشاء.

Providing the sender details

سوف ترى بعد ذلك عنوان المرسل الجديد المدرج تحت صفحة التحقق من المرسل الفردي. كما يمكن رؤية من المثال أدناه، لم يتم التحقق من العنوان بعد، كما يشير ذلك بوجود علامة X حمراء تحت عمود مؤكد.

Viewing the sender address verification status

3. للتحقق من المرسل، اعثر على البريد الإلكتروني المُرسَل إلى عنوان المُرسِل، مشابهًا للصورة الملتقطة أدناه. ثم، انقر على زر التحقق من المرسل الفردي.

Verifying the Single Sender address

سيتم التحقق من عنوان المرسل. يجب أن ترى صفحة مماثلة، كما هو موضح أدناه، تؤكد أن التحقق من المرسل قد اكتمل.

Confirming that the sender address verification is complete

إنشاء مفتاح API SendGrid

بعد إنشاء عنوان المرسل الفردي، يصبح واجهة إنشاء مفاتيح واجهة برمجة التطبيق (API) SendGrid متاحة. اعتبر مفتاح واجهة برمجة التطبيق SendGrid ككلمة المرور. بدونه، لن يتمكن الكود الخاص بك من المصادقة على خدمة إعادة إرسال SMTP لـ SendGrid. اتبع الخطوات التالية لإنشاء مفتاح API جديد.

  1. في القائمة الموجودة على الجانب الأيسر، انقر على الإعدادات > مفاتيح واجهة برمجة التطبيق (API). ثم، انقر على زر إنشاء مفتاح واجهة برمجة التطبيق (API) الموجود في الزاوية العلوية اليمنى من الصفحة.
Creating a new SendGrid API key

2. يظهر القائمة المنبثقة إنشاء مفتاح واجهة برمجة التطبيق (API). أدخل اسم المفتاح الذي تقوم بإنشائه. استخدم اسمًا منطقيًا، مثل “مفتاح اختبار Azure.” بعد ذلك، لأسباب بساطة، حدد الوصول الكامل كإذن. وأخيرًا، انقر على زر إنشاء وعرض.

Naming the API key and choosing permissions

3. يتم عرض المفتاح الجديد للواجهة بعد ذلك. الآن انسخ القيمة المفتاح واحفظها لأنها لن تظهر لك مرة أخرى. بعد نسخ المفتاح، انقر على تم.

Saving the new SendGrid API key

إرسال بريد إلكتروني من Azure باستخدام خدمة إعادة إرسال SMTP لـ SendGrid

الآن لديك المكونات المطلوبة (الحساب والمُرسِل والمفتاح) لاستخدام SendGrid لإرسال رسائل البريد الإلكتروني من Azure. حان الوقت لاختبار ما إذا كانت خدمة إعادة توجيه SMTP لـ SendGrid تعمل. في هذا القسم، ستستخدم PowerShell لإرسال رسائل البريد الإلكتروني من Azure VM.

قبل تشغيل أي كود، يجب عليك معرفة هذه المتطلبات.

  • عنوان خادم SMTP لـ SendGrid هو smtp.sendgrid.net.
  • اسم المستخدم المستخدم للمصادقة عبر SMTP هو دائمًا apikey.
  • كلمة المرور المستخدمة هي قيمة المفتاح الخاص بك الذي تم إنشاؤه في SendGrid.
  • لا تستخدم المنفذ 25. استخدم المنفذ 587 بدلاً من ذلك.
  • فقط عنوان المُرسِل الموثق في SendGrid هو صالح للاستخدام كمُرسِل لرسائل البريد الإلكتروني الخاصة بك. في هذا المثال، المُرسِل المُصرَّح به هو [email protected].

السكريبت أدناه سيُرسِل رسالة بريد إلكتروني من خلال إعادة توجيه SMTP لـ SendGrid. انسخ الكود أدناه وقم بتغيير قيم $sendGridApiKey و From و To و Body. ثم قم بتشغيل الكود في جلسة PowerShell الخاصة بك. راجع التعليقات لفهم ما يقوم به كل سطر من الكود.

# قم بتعيين مفتاح الواجهة البرمجية الخاص بك هنا
$sendGridApiKey = 'SG...........P258'

$SendGridEmail = @{
	# استخدم عنوان المرسل الموثق الخاص بك.
	From = '[email protected]'
	# حدد مستلم البريد الإلكتروني. يجب أن يعمل أي عنوان بريد إلكتروني صالح.
	To = '[email protected]'
	# قم بتحديث هذا بعنوان البريد الإلكتروني الذي ترغب في استخدامه.
	Subject = 'This is a test message from Azure via SendGrid'
	# قم بتحديث هذا بنص البريد الإلكتروني أو الرسالة التي ترغب في إرسالها.
	Body = 'This is a test message from Azure via SendGrid'
	
	# لا تقم بتغيير أي شيء أدناه هذا السطر
	SmtpServer = 'smtp.sendgrid.net'
	Port = 587
	UseSSL = $true
	Credential = New-Object PSCredential 'apikey', (ConvertTo-SecureString $sendGridApiKey -AsPlainText -Force)	
}

# إرسال البريد الإلكتروني
Send-MailMessage @SendGridEmail

العرض التوضيحي أدناه يوضح كيف يبدو تشغيل الشيفرة أعلاه في PowerShell في الوقت الحقيقي.

Sending an Email from Azure using SendGrid SMTP Relay

للتأكد من إمكانية تسليم البريد الإلكتروني ، تحقق من صندوق البريد الوارد للمستلم للعثور على الرسالة التجريبية التي أرسلتها. ستكون النتيجة مشابهة للتي يتم عرضها أدناه. كما يمكنك أن ترى ، جاءت الرسالة من عنوان المرسل عبر sendgrid.net.

Confirming the SMTP test message was delivered

ذات صلة: إرسال البريد الإلكتروني: الطريقة في PowerShell لإرسال البريد الإلكتروني

إرسال بريد إلكتروني من خلال Azure باستخدام واجهة برمجة التطبيق SendGrid

طريقة أخرى لاستخدام SendGrid مع Azure لإرسال رسائل البريد الإلكتروني هي باستخدام واجهة برمجة التطبيق SendGrid Web V3. بدلاً من التواصل مع SendGrid عبر SMTP ، يتم التواصل باستخدام الواجهة البرمجية بواسطة HTTP. يتم إرسال طلب HTTP إلى عنوان URL النقطة النهائية لواجهة برمجة التطبيق SendGrid.

النص المثالي PowerShell أدناه يستخدم cmdlet Invoke-RestMethod لإرسال طلب البريد الإلكتروني من Azure إلى SendGrid. قم بنسخ الكود وتغيير قيم المتغيرات $sendGridApiKey و $fromAddress و $toAddress و $mailSubject و $mailMessage.

عند الانتهاء من تحديث المتغيرات، قم بتشغيل الكود في PowerShell.

Set your API Key here
 $sendGridApiKey = 'SG………..P258'
 Set the sender and recipient addresses
 $fromAddress = "[email protected]"
 $toAddress = "[email protected]"
 Set the mail subject
 $mailSubject = "This is a test message from Azure via SendGrid API"
 Set the mail message
 $mailMessage = "This is a test message from Azure via SendGrid API"
 DO NOT CHANGE ANYTHING BELOW THIS LINE
 Compose the Mail Body
 $mailbody = @{
   personalizations = @(
     @{
       to      = @(
         @{
           email = $toAddress
         }
       )
       subject = $mailSubject
     }
   )
   from             = @{
     email = $fromAddress
   }
   content          = @(
     @{
       type  = "text/plain"
       value = $mailMessage
     }
   )
 } | ConvertTo-Json -Depth 10
 $headers = @{'Authorization' = "Bearer $($sendGridApiKey)" }
 $mailApiUri = 'https://api.sendgrid.com/v3/mail/send'
 Send the email
 Invoke-RestMethod -Method Post -Uri $mailApiUri -Body $mailbody -Headers $headers -ContentType application/json

بعد تشغيل الكود PowerShell أعلاه، تحقق من صندوق البريد الوارد للمستلم وتأكد من استلام الرسالة التجريبية. يُظهر المثال أدناه رسالة تجريبية ناجحة تم تسليمها بنجاح من Azure عبر واجهة برمجة التطبيقات لـ SendGrid.

Confirming the API test message was delivered

إذا كنت ترغب في معرفة المزيد حول واجهة برمجة التطبيقات الويب لـ SendGrid، قم بزيارة الصفحة V3 Mail Send API.

استخدام مصادقة Office 365 SMTP

خيار آخر لإرسال رسائل البريد الإلكتروني من Azure هو استخدام نقطة اتصال SMTP لـ Office 365. هذا إذا كانت لمؤسستك اشتراكًا في Exchange Online بالفعل. تشير الطريقة نفسها لاستخدام SendGrid كمضيف ذكي لخادم SMTP إلى أن النقطة الأساسية لـ Office 365 SMTP تتطلب المصادقة واستخدام المنفذ 587 فقط.

قبل استخدام نقطة اتصال Office 365 SMTP ، يجب أن تعرف الشروط التالية لجعلها تعمل.

  • يجب أن يكون عنوان المرسل كائن صحيح للمستلم في Exchange Online مثل صندوق بريد أو مستخدم بريد. ولكن إذا كان من المقرر تخزين إشعارات عدم التسليم (NDR)، استخدم صندوق بريد بدلاً من ذلك.
  • يجب أن يكون لدى المستخدم الموثق ترخيصًا صحيحًا لـ Exchange Online. يُسمح فقط للمستخدمين المرخص لهم في Exchange Online باستخدام نقطة اتصال Office 365 SMTP.
  • نفترض أن المستخدم المصادق عليه مختلف عن المرسل. في هذه الحالة، يجب تعيين صلاحية الإرسال كـ “إرسال بصفة” إلى حساب المرسل.
  • طريقة المصادقة المستخدمة هي الأساسية (التراثية). وهذا يعني أنه إذا تم تعطيل مصادقة SMTP الأساسية في منظمتك أو عندما يتوقف مايكروسوفت عن دعم المصادقة الأساسية، فإن SMTP Auth لن يعمل بعد ذلك.
  • عنوان خادم إعادة الإرسال SMTP هو smtp.office365.com، ورقم المنفذ هو 587.

ذات الصلة: كيفية إرسال البريد الإلكتروني باستخدام Office 365 Direct Send و PowerShell

إنشاء عنوان مرسل في Office 365

في هذا المثال، المرسل والمستخدم المصادق عليه مفصولان. تأكد من الاتصال بـ Exchange Online PowerShell أولاً. بمجرد الاتصال، اتبع الخطوات أدناه.

أنشئ صندوق بريد مشترك باستخدام الأمر أدناه. غير قيمتي -Name و -PrimarySMTPAddress إلى القيم الصحيحة الخاصة بك.

New-Mailbox -Shared -Name 'SMTP Mailer 365' -PrimarySMTPAddress '[email protected]'

يجب أن يتم إنشاء صندوق البريد المشترك ويجب أن يتم إرجاع نتيجة مشابهة للنتيجة المعروضة أدناه.

Creating a new shared mailbox as the sender

ثم، قم بتعيين إذن إرسال كـ للمستخدم المصادق عليه. في المثال أدناه، يتم تعيين إذن إرسال كـ للبريد الإلكتروني المشترك.

Add-RecipientPermission -Identity '[email protected]' -Trustee '[email protected]' -AccessRights SendAs -Confirm:$false

بمجرد تنفيذ الأمر أعلاه، يجب أن تحصل على نتيجة مشابهة للمثال أدناه.

Assigning Send As permission

إرسال بريد إلكتروني من Azure باستخدام Office 365 SMTP Relay

بعد إنشاء عنوان المُرسِل وتعيين إذن “إرسال كـ”، الخطوة التالية هي اختبار تسليم البريد الإلكتروني باستخدام PowerShell و Office 365 SMTP relay.

يقوم الكود أدناه بالمصادقة باستخدام [email protected]. يظهر العنوان [email protected] كمُرسِل. تأكد من تعيين القيم الصحيحة قبل تشغيل الكود.

# قم بتقديم بيانات اعتماد SMTP الخاصة بك
$username = '[email protected]'
$password = '*************'

# قم بتحديد عنوان البريد الإلكتروني للمُرسِل والمستلم
$fromAddress = '[email protected]'
$toAddress = '[email protected]'

# حدد موضوع البريد الإلكتروني والرسالة
$mailSubject = 'This is a test message from Azure via Office 365 SMTP Relay'
$mailMessage = 'This is a test message from Azure via Office 365 SMTP Relay'

# لا تقم بتغيير أي شيء أدناه
$Office365RelayEmail = @{
	From = $fromAddress
	To = $toAddress
	Subject = $mailSubject
	Body = $mailMessage	
	SmtpServer = 'smtp.office365.com'
	Port = 587
	UseSSL = $true
	Credential = New-Object PSCredential $username, (ConvertTo-SecureString $password -AsPlainText -Force)	
}

# أرسل البريد الإلكتروني
Send-MailMessage @Office365RelayEmail

عند كتابة الاعتمادات بصورة نصية في السيناريوهات ، لا يُنصح بهذا. يجب أن تستخدم السيناريوهات الإنتاجية تشفير الاعتمادات أو إدارة الأسرار لتأمين اسم المستخدم وكلمة المرور.

حان الوقت الآن لفحص صندوق بريد المستلم. تحقق من استلام الرسالة التجريبية.

Confirming the Office 365 SMTP relay test message was delivered

استخدام واجهة برمجة تطبيقات Microsoft Graph لإرسال بريد إلكتروني من Azure

بدلاً من استخدام إعادة توجيه SMTP في Office 365 ، الطريقة الأكثر أمانًا والأكثر توصية هي استخدام واجهة برمجة تطبيقات Microsoft Graph. باستخدام واجهة برمجة تطبيقات Microsoft Graph ، يمكنك إرسال رسائل البريد الإلكتروني من أي صندوق بريد في المؤسسة باستخدام استدعاءات واجهة برمجة تطبيقات REST.

لاستخدام واجهة برمجة تطبيقات Microsoft Graph لإرسال رسائل البريد الإلكتروني ، يتطلب تطبيق Azure AD المسجل تسجيل. يجب تعيين التطبيق المسجل بإذن واجهة برمجة التطبيق Mail.Send. ستوضح الأقسام التالية لك كيفية تكوين واجهة برمجة تطبيقات Microsoft Graph واستخدامها لإرسال رسائل البريد الإلكتروني.

ذات الصلة: استخدام واجهة برمجة تطبيقات Microsoft Graph مع PowerShell

تسجيل تطبيق جديد في Azure Active Directory

في هذا القسم ، ستقوم بتسجيل تطبيق ويب جديد في دليل Azure النشط. يعمل التطبيق الجديد كهوية المصادقة لـ Microsoft Graph. قم بتسجيل الدخول إلى بوابة Azure إذا لم تكن قد سجلت الدخول بعد.

  1. انتقل إلى الدليل النشط في Azure -> تسجيل التطبيقات. ثم ، انقر فوق الزر تسجيل جديد.
Creating a new app registration

2. في صفحة تسجيل تطبيق ، أدخل اسم التطبيق.

3. تحت أنواع الحسابات المدعومة، اختر الحسابات في هذا الدليل التنظيمي فقط. اكتب HTTP://localhost كـ معرف إعادة التوجيه. أخيرًا، انقر على زر التسجيل.

Registering an application

4. انتظر اكتمال عملية التسجيل. يستغرق الأمر بضع ثوانٍ فقط. لا تنسى أن تحتفظ بقيم معرف التطبيق (العميل) و معرف الدليل (المستأجر)، ستحتاج إليهما لاحقًا.

Saving the Application ID and Directory values

إنشاء مفتاح سري للعميل

فكر في معرف التطبيق الذي قمت بإنشائه في الجزء السابق كاسم المستخدم. وهذا المعرف بحاجة إلى كلمة مرور – وهي المفتاح السري.

لإضافة مفتاح سري جديد للتطبيق، اتبع الخطوات التالية.

  1. اذهب إلى الشهادات والأسرار، ثم انقر على مفتاح عميل جديد.
  2. أدخل الوصف للمفتاح السري العميل، مثل المفتاح1.
  3. حدد متى ينتهي صلاحية المفتاح السري وانقر على إضافة. في المثال أدناه، ينتهي المفتاح السري بعد عام واحد.
Adding a new client secret key

سترى المفتاح الجديد مدرجًا تحت قسم أسرار العميل. الآن هو الوقت الوحيد الذي سترى فيه قيمة المفتاح، لذا احفظ نسخة.

Viewing the client secret key value

الآن بعد أن قمت بإنشاء معرف التطبيق والمفتاح السري، ما تبقى هو تعيين إذن واجهة برمجة التطبيق Microsoft Graph اللازمة. بدون تعيين الإذن، يمكن للتطبيق المصادقة ولكنه لن يمتلك السلطة للقيام بأي شيء، مثل إرسال رسائل البريد الإلكتروني.

لبدء تعيين الإذن، اتبع الخطوات التالية.

  1. انقر على أذونات واجهة برمجة التطبيقات في القائمة الجانبية اليسرى.

2. ثم، تحت صفحة أذونات تم تكوينها، انقر على زر إضافة أذن.

Adding API permission

3. في القائمة المنبثقة طلب أذونات واجهة برمجة التطبيقات، انقر لتحديد واجهة برمجة Microsoft Graph.

Selecting Microsoft Graph API

4. عندما يُطلب منك اختيار نوع الإذن المطلوب من التطبيق، انقر على أذونات التطبيق.

5. في مربع البحث، اكتب Mail.Send للبحث عنه. في النتيجة، انقر لتحديد إذن Mail.Send. أخيرًا، انقر على إضافة الأذونات.

Assigning mail.send permission

6. ستلاحظ أن حالة الإذن هي “غير ممنوح لـ <اسم المؤسسة>.” في هذه النقطة، يجب على أنت أو المسؤول العام أولاً منح الموافقة على التطبيق. لمنح الإذن، انقر على زر منح موافقة المسؤول لـ <المؤسسة>.

Granting Admin consent

ثم يتغير حالة إذن واجهة برمجة التطبيقات إلى “ممنوح لـ <اسم المؤسسة>” .

Confirming the API permission status

الحصول على رمز الوصول

يتطلب إرسال الطلبات إلى واجهة برمجة Microsoft Graph رمز الوصول. في هذه النقطة، لديك بالفعل معرف التطبيق الخاص بك ومفتاح السر الخاص بك ومعرف المستأجر. هذه القطع الثلاثة من المعلومات هي ما يلزم للحصول على رمز الوصول.

البرنامج النصي PowerShell أدناه يرسل طلب رمز الوصول إلى نقطة نهاية واجهة برمجة Microsoft Graph. يجب عليك تحديث $client_id و $client_secret و $tenant_id بالقيم الصحيحة الخاصة بك أولاً. ثم، قم بنسخ ولصق الكود في PowerShell لطلب رمز الوصول.

# استبدل بمعرف التطبيق الخاص بك
$client_id = 'APPLICATION ID'
# استبدل بالمفتاح السري الخاص بك
$client_secret = 'SECRET KEY'
# استبدل بمعرف المستأجر الخاص بك
$tenant_id = 'TENANT ID'

# لا تقم بتغيير أي شيء أدناه هذا السطر
$request = @{
        Method = 'POST'
        URI    = "https://login.microsoftonline.com/$tenant_id/oauth2/v2.0/token"
        body   = @{
            grant_type    = "client_credentials"
            scope         = "https://graph.microsoft.com/.default"
            client_id     = $client_id
            client_secret = $client_secret
        }
    }
# الحصول على رمز الوصول
$token = (Invoke-RestMethod @request).access_token
# عرض قيمة الرمز
$token

العرض التوضيحي أدناه يوضح البرنامج النصي PowerShell أعلاه في العمل. لاحظ أن رمز الوصول المطلوب يتم تخزينه في المتغير $token.

Requesting access token

رموز الوصول صالحة لمدة ساعة واحدة فقط من الوقت الذي تم الحصول عليه فيه. ستحتاج إلى طلب رمز وصول آخر بعد انتهاء صلاحية الرمز السابق.

إرسال بريد إلكتروني من Azure باستخدام واجهة برمجة التطبيقات الخاصة بـ Microsoft Graph

أنت الآن جاهز لاستخدام واجهة برمجة التطبيقات الخاصة بـ Microsoft Graph مع 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
$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


Source:
https://adamtheautomator.com/azure-send-email/