Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure İşlevleri'nde SendGrid bağlamalarını kullanarak e-posta gönderme işlemi açıklanmaktadır. Azure İşlevleri SendGrid için çıkış bağlamasını destekler.
Bu, Azure İşlevleri geliştiricilerin başvuru bilgileridir. Azure İşlevleri kullanmaya yeni başladıysanız aşağıdaki kaynaklarla başlayın:
C# geliştirici başvuruları:
Uzantıyı yükleme
Yüklediğiniz NuGet uzantısı, işlev uygulamanızda kullandığınız C# moduna bağlıdır:
İşlevler yalıtılmış bir C# çalışan işleminde yürütülür. Daha fazla bilgi edinmek için bkz. Yalıtılmış çalışan işleminde C# Azure İşlevleri çalıştırma kılavuzu.
Uzantının işlevselliği, uzantı sürümüne bağlı olarak değişir:
NuGet paketi sürüm 3.x'i yükleyerek uzantıyı projenize ekleyin.
Paket yükleme
Bu bağlama uzantısını uygulamanızda kullanabilmek için projenizin kökündeki host.json dosyasının şu extensionBundle başvuruyu içerdiğinden emin olun:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Bu örnekte, version değeri [4.0.0, 5.0.0) İşlevler konağına en az 4.0.0 ama daha küçük 5.0.0olan ve 4.x'in tüm olası sürümlerini içeren bir paket sürümü kullanma talimatı verir. Bu gösterimi, uygulamanızı v4.x uzantı paketinin kullanılabilir en son ikincil sürümünde etkili bir şekilde korur.
Mümkün olduğunda, en son uzantı paketi ana sürümünü kullanmanız ve çalışma zamanının en son ikincil sürümü otomatik olarak korumasına izin vermelisiniz. Uzantı paketleri yayın sayfasında en son paketin içeriğini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri uzantı paketleri.
Example
Aşağıdaki C# modlarından birini kullanarak bir C# işlevi oluşturabilirsiniz:
- Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. .NET ve .NET Framework için uzun vadeli destek (LTS) ve LTS olmayan sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış bir çalışan işlemi gereklidir.
- İşlem içi model: Azure İşlevleri çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi.
- C# betiği: Öncelikle Azure portalında C# işlevleri oluşturduğunuzda kullanılır.
Important
İşlem içi model desteği 10 Kasım 2026'da sona erecektir. Tam destek için uygulamalarınızı yalıtılmış çalışan modeline geçirmenizi kesinlikle öneririz.
SendGrid bağlamasını yalıtılmış bir çalışan işleminde çalışan bir işlev uygulamasında kullanmak için şu anda bir örneğimiz yok.
Aşağıdaki örnekte , birfunction.json dosyasında sendGrid çıkış bağlaması ve bağlamayı kullanan bir JavaScript işlevi gösterilmektedir.
function.json dosyasındaki bağlama verileri aşağıdadır:
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
Yapılandırma bölümünde bu özellikler açıklanır.
JavaScript kodu şu şekildedir:
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;
};
SendGrid bağlamaları için tam PowerShell örnekleri şu anda kullanılamıyor.
Aşağıdaki örnekte, SendGrid bağlamasını kullanarak e-posta gönderen HTTP ile tetiklenen bir işlev gösterilmektedir. Bağlama yapılandırmasında varsayılan değerleri sağlayabilirsiniz. Örneğin, kimden e-posta adresi function.jsoniçinde yapılandırılır.
{
"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"
}
]
}
Aşağıdaki işlev, isteğe bağlı özellikler için özel değerleri nasıl sağlayabileceğinizi gösterir.
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")
Aşağıdaki örnek, SendGrid çıkış bağlamasını @SendGridOutputkullanarak e-posta göndermek için Java işlevleri çalışma zamanı kitaplığındaki ek açıklamayı kullanır.
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
Hem işlem içi hem de yalıtılmış çalışan işlemi C# kitaplıkları çıkış bağlamasını tanımlamak için öznitelikleri kullanır. C# betiği bunun yerine bir function.json yapılandırma dosyası kullanır.
Yalıtılmış çalışan işlemi işlev uygulamalarında, SendGridOutputAttribute aşağıdaki parametreleri destekler:
| Öznitelik/ek açıklama özelliği | Description |
|---|---|
| ApiKey | API anahtarınızı içeren bir uygulama ayarının adı. Ayarlanmadıysa, varsayılan uygulama ayarı adı olur AzureWebJobsSendGridApiKey. |
| To | (İsteğe bağlı) Alıcının e-posta adresi. |
| From | (İsteğe bağlı) Gönderenin e-posta adresi. |
| Subject | (İsteğe bağlı) E-postanın konusu. |
| Text | (İsteğe bağlı) E-posta içeriği. |
Annotations
SendGridOutput ek açıklaması, aşağıdaki yapılandırma değerlerini sağlayarak SendGrid bağlamasını bildirimli olarak yapılandırmanıza olanak tanır.
Configuration
Aşağıdaki tabloda ,function.json dosyasında kullanılabilen bağlama yapılandırma özellikleri ve SendGrid öznitelik/ek açıklama listelenir.
| function.json özelliği | Description |
|---|---|
| type | olarak ayarlanmalıdır sendGrid. |
| direction | olarak ayarlanmalıdır out. |
| name | İstek veya istek gövdesi için işlev kodunda kullanılan değişken adı. Bu değer, yalnızca bir dönüş değeri olduğunda olur $return . |
| apiKey | API anahtarınızı içeren bir uygulama ayarının adı. Ayarlanmadıysa, varsayılan uygulama ayarı adı AzureWebJobsSendGridApiKey'dir. |
| to | (İsteğe bağlı) Alıcının e-posta adresi. |
| from | (İsteğe bağlı) Gönderenin e-posta adresi. |
| subject | (İsteğe bağlı) E-postanın konusu. |
| text | (İsteğe bağlı) E-posta içeriği. |
İsteğe bağlı özellikler, bağlamada tanımlanan varsayılan değerlere sahip olabilir ve program aracılığıyla eklenebilir veya geçersiz kılınabilir.
Yerel olarak geliştirme yaparken uygulama ayarlarınızı koleksiyondaki local.settings.json dosyasınaValues ekleyin.
host.json ayarları
Bu bölümde, 2.x ve sonraki sürümlerde bu bağlama için kullanılabilen yapılandırma ayarları açıklanmaktadır. host.json dosyasındaki ayarlar, bir işlev uygulaması örneğindeki tüm işlevler için geçerlidir. İşlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için bkz. Azure İşlevleri içinhost.json başvuru.
Note
İşlevler 1.x'teki host.json başvurusu için bkz. Azure İşlevleri 1.x için host.json başvuru.
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
| Property | Default | Description |
|---|---|---|
| from | n/a | Tüm işlevlerde gönderenin e-posta adresi. |