Tìm kiếm


    Send Mail trong .NET Core và C# bằng Send Grid


    Giới thiệu

    Chắc hẳn các bạn đã thấy khi đăng ký tài khoản, thanh toán đơn hàng thành công hay xác thực tài khoản thì các bạn đều nhận được một Email từ ứng dụng mà bạn đang sử dụng đúng không? Vậy thì hôm nay mình sẽ hướng dẫn các cách gửi trong ứng dụng lập trình. Cụ thể là trong .NET Core và C#.

    Yêu cầu

    Để thực hiện được bài viết này bạn cần một số yêu cầu cấu hình sau:

    • HĐH Windows/Mac/Linux
    • .NET 6 SDK (download)
    • IDE (Ví dụ: VS Code with C# plugin, Visual Studio, JetBrains Rider)
    • Tài khoản trên SendGrid (xem hướng dẫn ở dưới)

    SendGrid là gì?

    SendGrid là một trong số các nhà cung cấp dịch vụ Email Marketing hàng đầu thế giới. Bên cạnh đó, dịch vụ SMTP Server miễn phí của họ cũng được nhiều người sử dụng và đánh giá cao. Các dự án tại công ty mình đang làm cũng đang sử dụng SendGrid.

    Sendgrid sẽ đảm bảo cho các Email bạn gửi sẽ không đánh Spam.

    Flow của Send Grid

    dsad

    Sau khi đăng ký và ủy quyền cho Send Grid thì lúc này Send Grid thay thế bạn thực hiện các yêu cầu nghiệp vụ về Email. Ứng dụng của bạn sẽ gửi request tới Server của SendGrid. Tiếp đó SendGrid sẽ thực hiện yêu cầu đó của bạn. Đơn giản đúng không nào?

    Đăng Ký SendGrid & Config

    Các bạn vào đây để đăng ký tài khoản.

    đá

    Next

     

    đá

    Sau khi đăng ký xong. Các bạn để ý email và xác nhận tài khoản (nếu có) nhá.

    Tiếp theo các bạn Login vào SendGrid.

    Vào Settings -> API Keys -> Create API Key

    đasad

    Điền các thông tin cần thiết
    đasad

    Sau khi tạo xem các bạn Copy API Key lại nhé

    đấ

    Tiếp theo các bạn vào Settings -> Sender Authentication -> Verify an Address

    Nếu không thấy thì các bạn vào đường dẫn https://app.sendgrid.com/settings/sender_auth/senders/new để setup Sender nhé

    Điền các thông tin của bạn vào

    đasa

    Các bạn vào email và tiền hành Verify nhé

    Tạo Application

    Các bạn tạo loại Prject tùy thích như Web MVC, Web API... Ở đây mình chỉ tạo một Console App đơn giản thôi.

    Sau khi tạo xong các bạn cài cho mình Nuget sau:
    đá

    Tiếp theo là phần Code chính:

    namespace CodeMegaSendMail
    {
        public static class SendMail
        {
            public static async Task SendAsync()
            {
                var apiKey = "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"; // YOUR API KEY
    
                var from = new EmailAddress("[email protected]", "Code Mega"); // Sender Info
    
                //var to = new EmailAddress("[email protected]", "Example User"); // Single Receiver Info
    
                var tos = new List<EmailAddress>()
                {
                    new EmailAddress("[email protected]", "User 1"),
                    new EmailAddress("[email protected]", "User 2"),
                    new EmailAddress("[email protected]", "User 3")
                }; // List Receiver Info
    
                var subject = "Test Send Mail"; // Email Subject
    
                var client = new SendGridClient(apiKey);
    
                var htmlContent = "<strong>Hello world</strong>" +
                    "<br>" +
                    "<img src='https://www.code-mega.com/images/theme/logo.png' alt='Logo' width='500' height='500'>";
    
                //var msg = MailHelper.CreateSingleEmail(from, to, subject, "", htmlContent); // For Send Email To Single Receiver
    
                var msg = MailHelper.CreateSingleEmailToMultipleRecipients(from, tos, subject, "", htmlContent); // For Send Email To Multi Receiver
    
                var response = await client.SendEmailAsync(msg);
    
                Console.WriteLine(response.StatusCode.ToString());
            }
        }
    }

    Send Grid hỗ trợ gửi Email dưới dạng HTML điều này rất hữu ích cho kinh doanh nhất là với các loại hình dịch vụ như Marketing. Các bạn hoàn toàn có thể sáng tạo Email Template cho riêng mình.

    Trong đoạn code trên các bạn có thể gửi đơn lẻ cho một người dùng bằng cách bỏ comment var to = new EmailAddress("[email protected]", "Example User") và var msg = MailHelper.CreateSingleEmail(from, to, subject, "", htmlContent).

    Còn trong Code mình thưc hiện gửi tới nhiều người cùng một lúc.

    Kết quả đã thành công:

    Các bạn cũng có thể vào trang của Send Grid để kiểm tra lịch sử Activity -> Search

    đasad

    Kết

    Vậy là bài viết hôm nay mình đã hướng dẫn xong cho các bạn cách gửi mail bằng SendGrid trong .NET Core C# rồi. Source code mình để ở cuối bài nh

    Nếu có thắc mắc gì các bạn comment bên dưới nhé.

    Cám ơn các bạn đã theo dỗi. Bye Bye và hẹn gặp lại 🤗 !!!


    Tiểu sử
    Are you one or zero?


    Bình luận