۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه ارسال ایمیل با استفاده از SendGrid در ASP.NET Core

از SendGrid برای ادغام ایمیل قابل اعتماد و مقیاس پذیر در برنامه های ASP.NET Core خود استفاده کنید. در اینجا نحوه

از SendGrid برای ادغام ایمیل قابل اعتماد و مقیاس پذیر در برنامه های ASP.NET Core خود استفاده کنید. در اینجا نحوه

شما اغلب نیاز به ارسال ایمیل از طریق برنامه خود دارید. ابزارها و کتابخانه های متعددی برای کمک به شما در دستیابی به این هدف وجود دارد. و سرویس‌های ایمیل مبتنی بر ابر با APIهای دوستانه، گنجاندن سرویس‌های ایمیل غنی در برنامه‌های شما را آسان می‌کنند. یکی از محبوب ترین و مفیدترین سرویس های ایمیل مبتنی بر ابر، SendGrid است.

SendGrid می تواند به کسب و کارها و توسعه دهندگان کمک کند تا ایمیل های بازاریابی و تراکنشی ارسال کنند. این یک زیرساخت ایمیل ساده، قابل اعتماد و مقیاس پذیر را فراهم می کند که به شرکت ها اجازه می دهد تا روی عملیات اصلی خود تمرکز کنند و در عین حال اطمینان حاصل کنند که ایمیل های آنها به گیرندگان مورد نظر تحویل داده می شود. و SendGrid یک API و کتابخانه‌هایی برای بسیاری از زبان‌ها و چارچوب‌های برنامه‌نویسی مختلف از جمله C# و .NET فراهم می‌کند.

در این مقاله، نحوه استفاده از SendGrid برای ارسال ایمیل از یک برنامه ASP.NET Core 7 را بررسی خواهیم کرد. ما نکات زیر را پوشش خواهیم داد:

  • مقدمه ای بر SendGrid و چرایی مفید بودن آن
  • نحوه ایجاد یک کلید SendGrid API
  • نحوه تعیین فراداده SendGrid در فایل پیکربندی برنامه
  • نحوه ایجاد کلاس EmailService برای ارسال ایمیل با استفاده از SendGrid
  • نحوه ایجاد کلاس EmailController برای پذیرش درخواست های HTTP

برای استفاده از نمونه کدهای ارائه شده در این مقاله، باید Visual Studio 2022 را در سیستم خود نصب کنید. اگر قبلاً نسخه‌ای ندارید، می‌توانید Visual Studio 2022 را از اینجا بارگیری کنید.

همچنین توجه داشته باشید که برای استفاده باید برای یک حساب SendGrid ثبت نام کنید خدمات. طرح رایگان به شما امکان می دهد روزانه ۱۰۰ ایمیل ارسال کنید.

یک پروژه ASP.NET Core 7 Web API در Visual Studio 2022 ایجاد کنید

ابتدا، اجازه دهید یک پروژه ASP.NET Core 7 حداقل Web API در Visual Studio 2022 ایجاد کنیم. این مراحل را دنبال کنید:

  1. Visual Studio 2022 IDE را راه اندازی کنید.
  2. روی “ایجاد پروژه جدید” کلیک کنید.
  3. در پنجره “ایجاد پروژه جدید”، “ASP.NET Core Web API” را از لیست الگوهای نمایش داده شده انتخاب کنید.
  4. بعدی را کلیک کنید.
  5. در پنجره “پیکربندی پروژه جدید خود”، نام و مکان پروژه جدید را مشخص کنید.
  6. به صورت اختیاری، بسته به تنظیمات برگزیده خود، کادر انتخاب «قرار دادن راه حل و پروژه در یک فهرست راهنمای» را علامت بزنید.
  7. بعدی را کلیک کنید.
  8. در پنجره «اطلاعات اضافی» که در ادامه نشان داده شده است، علامت «استفاده از کنترل‌کننده‌ها…» را بردارید، زیرا در این مثال از حداقل API استفاده می‌کنیم. “نوع احراز هویت” را به عنوان “هیچ” (پیش‌فرض) بگذارید.
  9. مطمئن شوید که چک باکس‌های «فعال کردن پشتیبانی از API باز کردن»، «پیکربندی برای HTTPS» و «فعال کردن داکر» علامت نخورده باشند زیرا ما از این ویژگی‌ها در اینجا استفاده نخواهیم کرد.
  10. روی ایجاد کلیک کنید.
یک دروازه API با استفاده از YARP در ASP.NET Core بسازید

ما از این پروژه ASP.NET Core 7 Web API برای کار با SendGrid در بخش‌های زیر استفاده خواهیم کرد.

چرا از SendGrid استفاده کنیم؟

SendGrid’s email API ادغام عملکرد ایمیل را در برنامه های خود برای توسعه دهندگان آسان می کند. می‌توانید از SendGrid API برای ارسال ایمیل، پیگیری تحویل ایمیل و نظارت بر عملکرد ایمیل استفاده کنید. p>

با SendGrid، کسب‌وکارها می‌توانند به راحتی پیام‌های ایمیل خودکار، از جمله ایمیل‌های خوش‌آمدگویی، اعلان‌های بازنشانی رمز عبور، تأییدیه‌های ارسال، رسید خرید و موارد دیگر را ارسال کنند. پلتفرم SendGrid ویژگی‌های مختلفی را ارائه می‌کند که برای ارسال ایمیل‌ها بدون دردسر و مؤثرتر طراحی شده‌اند.

SendGrid همچنین ابزارهایی را ارائه می دهد که به کسب و کارها در طراحی، مدیریت و بهینه سازی کمپین های ایمیل کمک می کند. این ابزارها شامل قالب های ایمیل، ویژگی های مدیریت لیست و تجزیه و تحلیل کمپین می باشد. SendGrid علاوه بر خدمات ایمیل اصلی خود، طیف وسیعی از خدمات افزودنی از جمله اعتبارسنجی ایمیل، تأیید، و ابزارهای آزمایشی را ارائه می دهد.

یک کلید API در SendGrid ایجاد کنید

اگر قبلاً یک حساب SendGrid دارید، می توانید وارد شوید و از آنجا ادامه دهید. اگر نه، می‌توانید برای یک حساب SendGrid جدید اینجا ثبت‌نام کنید. سپس این مراحل را دنبال کنید:

  1. به حساب SendGrid خود وارد شوید.
  2. تنظیمات -> احراز هویت فرستنده را انتخاب کنید.
  3. “تأیید یک فرستنده” را انتخاب کنید.
  4. روی دکمه “شروع به کار” کلیک کنید.
  5. با مشخص کردن جزئیات فرستنده، یک فرستنده ایجاد کنید.
  6. روی دکمه “تأیید یک فرستنده” کلیک کنید.
  7. فرستنده خود را با کلیک بر روی ایمیلی که از SendGrid دریافت می‌کنید تأیید کنید.
  8. بعد، تنظیمات -> کلیدهای API را انتخاب کنید.
  9. روی دکمه “ایجاد کلید API” کلیک کنید.
  10. سطح مجوز برای کلید API خود را مشخص کنید.
  11. برای ایجاد کلید API روی دکمه “ایجاد و مشاهده” کلیک کنید.
  12. کلید API ایجاد شده را ذخیره کنید زیرا به زودی از آن استفاده خواهید کرد.
خالق Bun.js جارد سامنر درباره فناوری، بودجه و استارت آپ ها صحبت می کند

بسته SendGrid NuGet را نصب کنید

تا اینجا خیلی خوبه. اکنون بسته SendGrid NuGet را به پروژه خود در ویژوال استودیو اضافه کنید. برای انجام این کار، پروژه را در پنجره Solution Explorer انتخاب کنید و کلیک راست کرده و “Manage NuGet Packages” را انتخاب کنید. در پنجره NuGet Package Manager، بسته SendGrid را جستجو کرده و آن را نصب کنید.

از طرف دیگر، می‌توانید بسته را از طریق کنسول NuGet Package Manager با وارد کردن خط نشان داده شده در زیر نصب کنید.

PM> Install-Package SendGrid

متادیتا SendGrid را در فایل پیکربندی مشخص کنید

بخشی به نام EmailSettings در فایل پیکربندی برنامه خود ایجاد کنید و کد زیر را در آنجا وارد کنید.

  "EmailSettings": {
    "ApiKey": "Specify your Api Key here...",
    "SenderEmail": "testaddress@testemail.com",
    "SenderName": "NoReply"
  }

حتماً برای حساب SendGrid که استفاده می‌کنید، کلید SendGrid API را با کلید SendGrid API جایگزین کنید.

برای اتصال نمونه ای از نوع EmailSettings به مقادیر پیکربندی، کد زیر را در فایل Program.cs وارد کنید.

builder.Services.Configure<EmailSettings>
   (options => builder.Configuration.GetSection("EmailSettings").Bind(options));

استفاده از SendGrid در ASP.NET Core

در این بخش، نحوه ارسال ایمیل با استفاده از SendGrid در ASP.NET Core را بررسی خواهیم کرد.

کلاس EmailService ایجاد کنید

اکنون یک کلاس به نام EmailService ایجاد کنید که مسئول ارسال ایمیل با استفاده از SendGrid خواهد بود. برای انجام این کار، یک فایل .cs جدید با نام EmailService.cs ایجاد کنید و کد زیر را وارد کنید.

public class EmailService : IEmailService
{
    private readonly IConfiguration _configuration;
    private readonly IOptions<EmailSettings>  _options;
    public EmailService(IConfiguration configuration, IOptions<EmailSettings> options)
    {
         _configuration = configuration;
         _options = options;
    }
public async Task SendEmailAsync(string email, string subject, string htmlMessage)
  {
       string? fromEmail = _options.Value.SenderEmail;
       string? fromName = _options.Value.SenderName;
       string? apiKey = _options.Value.ApiKey;
       var sendGridClient = new SendGridClient(apiKey);
       var from = new EmailAddress(fromEmail, fromName);
       var to = new EmailAddress(email);
       var plainTextContent = Regex.Replace(htmlMessage, "<[^>]*>", "");
       var msg = MailHelper.CreateSingleEmail(from, to, subject,
       plainTextContent, htmlMessage);
       var response = await sendGridClient.SendEmailAsync(msg);
   }
}

توجه داشته باشید که چگونه از الگوی گزینه‌ها در اینجا برای بازیابی فراداده ایمیل از فایل پیکربندی برنامه استفاده شده است.

مقدمه PyScript: پایتون را در مرورگر وب خود اجرا کنید

کلاس EmailController را ایجاد کنید

یک کنترلر API جدید در پروژه خود به نام EmailController ایجاد کنید. در کنترلر خود، نمونه ای از نوع EmailService را تزریق کنید و روش SendEmailAsync را فراخوانی کنید:

[Route("api/[controller]")]
[ApiController]
public class EmailController : ControllerBase
{
   private readonly IEmailService _emailService;
   private readonly ILogger<EmailController> _logger;
   public EmailController(IEmailService emailService,
        ILogger<EmailController> logger)
   {
            _emailService = emailService;
            _logger = logger;
   }
   [HttpGet]
   public async Task<IActionResult> Get()
   {
       await _emailService.SendEmailAsync("email@email.com", "Some subject", "Specify the html content here");
       return Ok();
   }
}

اکنون یک سرویس Singleton از نوع IEmailService با گنجاندن کد زیر در فایل Program.cs اضافه کنید.

builder.Services.AddSingleton<IEmailService, EmailService>();

همین! هنگامی که برنامه خود را اجرا می کنید و عمل HttpGet EmailController خود را اجرا می کنید، یک ایمیل با استفاده از کتابخانه SendGrid ارسال می شود.

SendGrid را به عنوان یک سرویس ثبت کنید و از DI استفاده کنید

توجه داشته باشید که می‌توانید SendGrid را به عنوان یک سرویس ثبت کنید و از تزریق وابستگی برای تزریق نمونه‌ای از SendGrid در برنامه خود استفاده کنید. برای ثبت SendGrid به عنوان یک سرویس، کد زیر را در فایل Program.cs وارد کنید.

using SendGrid.Extensions.DependencyInjection;
builder.Services.AddSendGrid(options =>
{
    options.ApiKey = builder.Configuration
    .GetSection("EmailSettings").GetValue<string>("ApiKey");
});

همانطور که دیدیم، SendGrid یک API قوی ارائه می دهد که می توانیم از آن برای ادغام آسان قابلیت های ایمیل آن در برنامه هایمان استفاده کنیم. SendGrid همچنین با برنامه ها و خدمات شخص ثالث مختلف از جمله WordPress، Salesforce، Shopify و Microsoft Azure یکپارچه می شود. اگر به یک سرویس ایمیل قابل اعتماد و مقیاس پذیر نیاز دارید تا به شما کمک کند به مخاطبان خود دسترسی پیدا کنید و تجارت خود را توسعه دهید، SendGrid یک انتخاب عالی است.