إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تشرح هذه المقالة كيفية إرسال البريد الإلكتروني باستخدام روابط SendGrid في Azure Functions. تدعم وظائف Azure ربط الإخراج لـ SendGrid.
هذه معلومات مرجعية لمطوري Azure Functions. إذا كنت جديداً على Azure Functions، فابدأ بالموارد التالية:
مراجع المطور C#:
تثبيت الملحق
تعتمد حزمة NuGet الملحق التي تقوم بتثبيتها على وضع C# الذي تستخدمه في تطبيق الوظائف:
يتم تنفيذ الوظائف في عملية عامل C# معزولة. لمعرفة المزيد، راجع دليل تشغيل وظائف C# Azure في عملية عامل معزولة.
تختلف وظيفة الملحق باختلاف إصدار الملحق:
أضف الملحق إلى مشروعك عن طريق تثبيت حزمة NuGet، الإصدار 3.x.
تثبيت الحزمة
لكي تتمكن من استخدام ملحق الربط هذا في تطبيقك، تأكد من أن ملف host.json في جذر مشروعك يحتوي على هذا extensionBundle المرجع:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
في هذا المثال، version ترشد قيمة [4.0.0, 5.0.0) مضيف الوظائف إلى استخدام إصدار حزمة على الأقل 4.0.0 ولكن أقل من 5.0.0، والذي يتضمن جميع الإصدارات المحتملة من 4.x. يحافظ هذا النص بشكل فعال على تطبيقك على أحدث إصدار ثانوي متوفر من مجموعة ملحقات v4.x.
عندما يكون ذلك ممكنا، يجب استخدام أحدث إصدار رئيسي لحزمة الملحقات والسماح لوقت التشغيل بالحفاظ تلقائيا على أحدث إصدار ثانوي. يمكنك عرض محتويات أحدث حزمة في صفحة إصدار حزم الملحقات. لمزيد من المعلومات، راجع حزم ملحقات Azure Functions.
Example
يمكنك إنشاء دالة C# باستخدام أحد أوضاع C# التالية:
- نموذج العامل المعزول: دالة C# المترجمة التي يتم تشغيلها في عملية عامل معزولة عن وقت التشغيل. مطلوب عملية عامل معزولة لدعم وظائف C# التي تعمل على إصدارات الدعم طويل المدى (LTS) والإصدارات غير LTS ل .NET و.NET Framework.
- نموذج قيد المعالجة: دالة C# المحولة برمجيا التي تعمل في نفس العملية مثل وقت تشغيل Azure Functions.
- البرنامج النصي C#: يستخدم بشكل أساسي عند إنشاء وظائف C# في مدخل Microsoft Azure.
Important
سينتهي الدعم للنموذج قيد التنفيذ في 10 نوفمبر 2026. نوصي بشدة بترحيل تطبيقاتك إلى نموذج العامل المعزول للحصول على الدعم الكامل.
ليس لدينا حاليا مثال لاستخدام ربط SendGrid في تطبيق دالة يعمل في عملية عامل معزولة.
يظهر المثال التالي ربط إخراج SendGrid في ملف function.jsonودالة JavaScript التي تستخدم الربط.
فيما يلي بيانات الربط في ملف function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
يشرح قسم التكوين هذه الخصائص.
ها هي كود JavaScript:
module.exports = function (context, input) {
var message = {
"personalizations": [ { "to": [ { "email": "sample@sample.com" } ] } ],
from: { email: "sender@contoso.com" },
subject: "Azure news",
content: [{
type: 'text/plain',
value: input
}]
};
return message;
};
لا تتوفر أمثلة PowerShell الكاملة حالياً لربط SendGrid.
يوضح المثال التالي وظيفة يتم تشغيلها بواسطة HTTP والتي ترسل بريدًا إلكترونيًا باستخدام ربط SendGrid. يمكنك توفير القيم الافتراضية في تكوين الربط. على سبيل المثال، يتم تكوين عنوان البريد الإلكتروني من في function.json.
{
"scriptFile": "__init__.py",
"bindings": [
{
"type": "httpTrigger",
"authLevel": "function",
"direction": "in",
"name": "req",
"methods": ["get", "post"]
},
{
"type": "http",
"direction": "out",
"name": "$return"
},
{
"type": "sendGrid",
"name": "sendGridMessage",
"direction": "out",
"apiKey": "SendGrid_API_Key",
"from": "sender@contoso.com"
}
]
}
توضح الوظيفة التالية كيف يمكنك توفير قيم مخصصة للخصائص الاختيارية.
import logging
import json
import azure.functions as func
def main(req: func.HttpRequest, sendGridMessage: func.Out[str]) -> func.HttpResponse:
value = "Sent from Azure Functions"
message = {
"personalizations": [ {
"to": [{
"email": "user@contoso.com"
}]}],
"subject": "Azure Functions email with SendGrid",
"content": [{
"type": "text/plain",
"value": value }]}
sendGridMessage.set(json.dumps(message))
return func.HttpResponse(f"Sent")
يستخدم المثال التالي التعليق التوضيحي @SendGridOutput من مكتبة وقت تشغيل وظائف Java لإرسال بريد إلكتروني باستخدام ربط إخراج SendGrid.
package com.function;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
public class HttpTriggerSendGrid {
@FunctionName("HttpTriggerSendGrid")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = { HttpMethod.GET, HttpMethod.POST },
authLevel = AuthorizationLevel.FUNCTION)
HttpRequestMessage<Optional<String>> request,
@SendGridOutput(
name = "message",
dataType = "String",
apiKey = "SendGrid_API_Key",
to = "user@contoso.com",
from = "sender@contoso.com",
subject = "Azure Functions email with SendGrid",
text = "Sent from Azure Functions")
OutputBinding<String> message,
final ExecutionContext context) {
final String toAddress = "user@contoso.com";
final String value = "Sent from Azure Functions";
StringBuilder builder = new StringBuilder()
.append("{")
.append("\"personalizations\": [{ \"to\": [{ \"email\": \"%s\"}]}],")
.append("\"content\": [{\"type\": \"text/plain\", \"value\": \"%s\"}]")
.append("}");
final String body = String.format(builder.toString(), toAddress, value);
message.setValue(body);
return request.createResponseBuilder(HttpStatus.OK).body("Sent").build();
}
}
Attributes
تستخدم كل من مكتبات المعالجة والعامل المعزول C# السمات لتعريف ربط الإخراج. يستخدم برنامج C# النصي بدلًا من ذلك ملف تكوين function.json.
في تطبيقات وظائف معالجة العامل المعزولة SendGridOutputAttribute ، يدعم المعلمات التالية:
| خاصية السمة/التعليق التوضيحي | Description |
|---|---|
| ApiKey | اسم إعداد التطبيق الذي يحتوي على مفتاح API الخاص بك. إذا لم يتم تعيينه، فإن اسم إعداد التطبيق الافتراضي هو AzureWebJobsSendGridApiKey. |
| To | (اختياري) عنوان البريد الإلكتروني للمستلم. |
| From | (اختياري) عنوان البريد الإلكتروني للمرسل. |
| Subject | (اختياري) موضوع البريد الإلكتروني. |
| Text | (اختياري) محتوى البريد الإلكتروني. |
Annotations
يسمح لك التعليق التوضيحي SendGridOutput بتكوين ربط SendGrid بشكل تعريفي عن طريق توفير قيم التكوين التالية.
Configuration
يسرد الجدول التالي خصائص تكوين الربط المتوفرة في ملف function.json والسمة SendGrid /التعليق التوضيحي.
| خاصيةfunction.json | Description |
|---|---|
| type | يجب تعيينه إلى sendGrid. |
| direction | يجب تعيينه إلى out. |
| name | اسم المتغير المستخدم في كود الوظيفة للطلب أو جسم الطلب. تكون $return هذه القيمة عندما تكون هناك قيمة إرجاع واحدة فقط. |
| apiKey | اسم إعداد التطبيق الذي يحتوي على مفتاح API الخاص بك. إذا لم يتم تعيين اسم إعداد التطبيق الافتراضي هو AzureWebJobsSendGridApiKey. |
| to | (اختياري) عنوان البريد الإلكتروني للمستلم. |
| from | (اختياري) عنوان البريد الإلكتروني للمرسل. |
| subject | (اختياري) موضوع البريد الإلكتروني. |
| text | (اختياري) محتوى البريد الإلكتروني. |
قد تحتوي الخصائص الاختيارية على قيم افتراضية محددة في الربط وإما أن تتم إضافتها أو تجاوزها برمجيًا.
عند التطوير محليا، أضف إعدادات التطبيق في ملفlocal.settings.json في Values المجموعة.
إعدادات host.json
يصف هذا القسم إعدادات التكوين المتوفرة لهذا الربط في الإصدار 2.x والإصدارات الأحدث. تنطبق الإعدادات في ملف host.json على جميع الوظائف في مثيل تطبيق الوظائف. لمزيد من المعلومات حول إعدادات تكوين تطبيق الوظائف، راجع مرجعhost.json ل Azure Functions.
Note
للحصول على مرجع لـ host.json في دالات 1.x، راجع مرجع host.json لوظائفAzure 1.x.
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
| Property | Default | Description |
|---|---|---|
| from | n/a | عنوان البريد الإلكتروني للمرسل عبر جميع الوظائف. |