ASP.NET Core Razor Sayfaları ile HTML Şablonları Kullanarak E-posta Gönderme
ASP.NET Core Razor Sayfaları ile HTML şablonları kullanarak e-posta göndermek, Razor şablonlama motorunu kullanarak dinamik ve kişiselleştirilmiş e-posta içeriği oluşturmayı ve ardından e-postayı teslim etmek için bir e-posta gönderme kitaplığını kullanmayı içerir. İşte adım adım bir kılavuz:
-
Bir E-posta Gönderme Kitablığı Yükleyin: İhtiyaçlarınıza uygun bir e-posta gönderme kitaplığı seçin, örneğin MailKit, MimeKit veya SmtpClient. Seçilen kitaplığı NuGet veya dotnet CLI kullanarak yükleyin.
-
Bir E-posta Şablonu Oluşturun: E-postanız için Razor sözdizimi kullanarak bir HTML şablonu tasarlayın. Bu şablon, e-posta mesajınızın yapısını ve içeriğini tanımlayacaktır.
-
E-posta Şablonunu Oluşturun: Razor sayfa kodunuzda, HTML şablonunu Razor’ın
@RenderViewToStringAsync
yöntemini kullanarak oluşturun. Şablona gerekli verileri veya model nesnelerini parametre olarak geçirin. -
Bir E-posta Mesajı Oluşturun: Seçilen e-posta gönderme kitaplığı kullanarak bir e-posta mesajı örneği oluşturun. Gönderen, alıcı, konu ve e-postanın gövdesini ayarlayın.
-
Oluşturulan Şablonu Ekleyin: E-posta gövdesini, Adım 3’ten elde edilen oluşturulmuş HTML şablonuna ayarlayın. Bu, dinamik içeriği e-postaya enjekte edecektir.
-
E-postayı Gönderin: E-postayı, e-posta gönderme kitaplığının
SendAsync
veyaSend
yöntemini kullanarak gönderin.
ASP.NET Core Razor Sayfaları ile HTML şablonları kullanarak e-posta göndermenin bir örneği şu şekildedir:
@page “/send-email”
@using System.Threading.Tasks;
@using Microsoft.AspNetCore.Mvc;
@using Microsoft.AspNetCore.Razor.TagHelpers;
@using MailKit.Net.Smtp;
@using MimeKit;
@model EmailModel
public class EmailModel
{
public string RecipientEmail { get; set; }
public string Subject { get; set; }
public string Content { get; set; }
}
public class EmailController : Controller
{
public async Task<IActionResult> OnPost()
{
var email = new MimeMessage();
email.From.Add(new MailboxAddress(“Adınız”, “sizinemail@örnektip.com”));
email.To.Add(new MailboxAddress(“Alıcı Adı”, Model.RecipientEmail));
email.Subject = Model.Subject;
email.Body = new TextPart(“html”)
{
Text = await RazorToStringAsync(“~/Views/EmailTemplate.cshtml”, Model)
};
using var client = new SmtpClient();
client.Connect(“smtp.örnektip.com”, 587, SecureSocketOptions.StartTls);
client.AuthenticationMechanisms.Add(new SaslMechanismOAuth2(“gmail-erişim-tokeniniz”));
client.Authenticate(“sizin-gmail-kullanıcı-adınız@gmail.com”, “gmail-erişim-tokeniniz”);
await client.SendAsync(email);
client.Disconnect(true);
return RedirectToPage(“Index”);
}
}
Bu kod, MimeKit kitaplığını kullanarak ve Gmail OAuth2 kullanarak bir e-posta gönderir. Yer tutucu değerleri, gerçek e-posta kimlik bilgileriniz ve erişim tokeninizle değiştirin.
Adım Adım Kılavuz
1. Bir E-posta Gönderme Kitablığı Yükleyin
İlk olarak, ihtiyacınız olan e-posta gönderme kitaplığını yüklemeniz gerekir. Bu, NuGet veya dotnet CLI kullanarak yapılabilir.
NuGet ile Yükleme
NuGet ile yüklemek için, projenizi NuGet Paket Yöneticisi penceresinde açın ve arama kutusuna kitaplığın adını yazın. Örneğin, MailKit kitaplığını yüklemek için aşağıdaki komutu kullanın:
Install-Package MailKit
dotnet CLI ile Yükleme