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, Basit Posta Aktarım Protokolü (SMTP) ve Azure İletişim Hizmetleri kullanılarak e-posta gönderilirken kimlik doğrulaması için XOAuth2'nin nasıl kullanılacağı açıklanmaktadır.
Önkoşullar
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluşturun.
- İşletim sisteminiz için .NET Core client library'nin en son sürümü.
- Sağlanan etki alanıyla oluşturulmuş ve hazır bir Azure İletişim E-posta Kaynağı. E-posta İletişim Kaynağı Oluşturmaya Başlayın
- E-posta Etki Alanı ve Bağlantı Dizesi ile bağlantılı etkin bir Azure İletişim Hizmetleri Kaynağı. İletişim Kaynağı ile E-posta Kaynağını Bağlayarak başlayın.
- Azure İletişim Hizmetleri Kaynağına erişimi olan bir Microsoft Entra ID uygulaması kullanılarak oluşturulan SMTP kimlik bilgileri. SMTP kullanarak e-posta göndermek için kimlik doğrulama bilgileri oluşturma.
Bu örneği tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.
Uyarı
Kendi doğrulanmış etki alanınızdan da e-posta gönderebilirsiniz. Bkz. E-posta İletişim Hizmeti'ne özel olarak doğrulanmış alan adları ekleme.
Bu makalede SMTP kullanarak Azure İletişim Hizmetleri ile e-posta gönderme açıklanmaktadır.
Ön koşul kontrolü
- Bir terminal veya komut penceresinde, .NET istemci kütüphanesinin yüklü olduğunu kontrol etmek için
dotnet
komutunu çalıştırın. - Azure İletişim E-posta Kaynağınızla ilişkili alt etki alanlarını görüntülemek için Azure portalında oturum açın, Azure İletişim E-posta Kaynağınızı bulun ve sol gezinti bölmesinden Etki alanları sağla sekmesini açın.
Yeni bir C# uygulaması oluşturun.
Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), dotnet new
komutunu kullanarak EmailQuickstart
adında yeni bir konsol uygulaması oluşturun. Bu komut, tek bir kaynak dosyasıyla basit bir "Merhaba Dünya" C# projesi oluşturur: Program.cs.
dotnet new console -o EmailSmtpQuickstart
Dizininizi yeni oluşturulan uygulama klasörüne değiştirin ve uygulamanızı derlemek için dotnet build
komutunu kullanın.
cd EmailSmtpQuickstart
dotnet build
MailKit paketini ekleyin.
dotnet add package MailKit
SMTP OAuth kimlik doğrulaması için Entra belirteci alma
Microsoft Entra Id belirtecini almak için aşağıdaki adımları tamamlayın. Microsoft Entra ID uygulama ayrıntılarını SMTP Kullanıcı Adını oluşturmak için kullanılan Entra uygulamasındaki değerlerle değiştirin.
using MailKit.Net.Smtp;
using MailKit.Security;
using Microsoft.Identity.Client;
using MimeKit;
using System.Net;
// Microsoft Entra ID (Azure AD) credentials
string smtpUsername = "<SMTP Username of the ACS Resource>";
string entraAppId = "<Entra Application ID>";
string entraAppClientSecret = "<Entra Application Client Secret>";
string tenantId = "<Entra Tenant ID>";
string entraAuthority = "https://login.microsoftonline.com/common/";
// Build the MSAL confidential client application
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder
.Create(entraAppId)
.WithClientSecret(entraAppClientSecret)
.WithAuthority(new Uri(entraAuthority))
.WithTenantId(tenantId)
.Build();
// Define the resource scope
string[] scopes = new string[] { "https://communication.azure.com/.default" };
// Acquire token for the client
AuthenticationResult result = await app.AcquireTokenForClient(scopes)
.ExecuteAsync();
string token = result.AccessToken;
E-posta iletinizi oluşturma
E-posta iletisi oluşturmak için şunları yapmanız gerekir:
- E-posta Konusunu ve Gövdesini tanımlayın.
- Gönderen Adresinizi tanımlayın. MailFrom Adresinizi Doğrulanmış Etki Alanınızdan alırsınız.
- Alıcı Adresini tanımlayın.
Alan adı ayrıntılarınızla değiştirin ve içeriği, alıcı ayrıntılarını gerektiğinde düzenleyin.
string smtpHostUrl = "smtp.azurecomm.net";
string senderAddress = "<Mailfrom Address>";
string recipientAddress = "<Recipient Email Address>";
string subject = "Welcome to Azure Communication Service Email SMTP";
string body = "This email message is sent from Azure Communication Service Email using SMTP.";
MailKit kullanarak e-posta gönderin.
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender Name", senderAddress));
message.To.Add(new MailboxAddress("Recipient Name", recipientAddress));
message.Subject = subject;
message.Body = new TextPart("plain")
{
Text = body
};
using (var client = new SmtpClient())
{
client.Connect(smtpHostUrl, 587, SecureSocketOptions.StartTls);
// Use the access token to authenticate
var oauth2 = new SaslMechanismOAuth2(smtpUsername, token);
client.Authenticate(oauth2);
client.Send(message);
client.Disconnect(true);
}