Hướng dẫn gửi mail trong ASP.NET

Trong bài viết hôm nay, Hanoi-Aptech sẽ giới thiệu tới các bạn cách gửi mail với ASP.NET sử dụng ngôn ngữ C#.

send_mail

Một website thương mại điện tử đạt chuẩn thường bao gồm đầy đủ những chức năng sau: Sản phẩm, Giỏ hàng, Mua hàng, Thanh toán trực tuyến, Quản lý đơn hàng, Gửi và nhận phản hồi của khách hàng.

Có tác động khá lớn đến chức năng mua hàng và quản lý đơn hàng, tính năng gửi mail được các lập trình viên đặc biệt quan tâm khi xây dựng website bán hàng.

Với chức năng mua hàng: khi một đơn hàng mới được tạo thành công, hệ thống cần tự động gửi mail thông báo cho quản trị. Đồng thời, nhanh chóng gửi thông tin về đơn hàng này vào mail của khách đặt mua.

Với chức năng quản lý đơn hàng: mỗi khi quản trị thao tác đến trạng thái đơn hàng, hệ thống sẽ có email thông báo phù hợp đến các đối tượng liên quan ( người chuyển hàng, khách hàng, người nhận hàng, người quản trị…).

Với các chức năng phản hồi, hệ thống sẽ giúp nhà quản trị gửi trả lời khách hàng thông qua địa chỉ mail của họ.

Trong bài viết dưới đây, Hanoi-Aptech sẽ giới thiệu cách gửi mail với ASP.NET. Qua đó, bạn có thể làm chủ tính năng quan trọng này khi xây dựng website bán hàng.

Bước 1: Mở Visual Studio và tạo một website mới.

Bước 2: Tạo trang SendMail.aspx và thiết kế giao diện theo đoạn code sau:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SendMail.aspx.cs" Inherits="SendMail" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            width: 100%;
        }
        .auto-style2 {
            width: 30%;
            text-align:right;
        }
        td {
            font-family:Tahoma;
            font-size:12px;
            margin:5px;
            padding:5px;
            vertical-align: top;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <table class="auto-style1">
            <tr>
                <td class="auto-style2">To : </td>
                <td>
                    <asp:TextBox ID="txtTo" runat="server" Width="271px">sendmail.aptech@gmail.com</asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">Subject : </td>
                <td>
                    <asp:TextBox ID="txtSubject" runat="server" Width="400px">Chào Bạn </asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">Message : </td>
                <td>
                    <asp:TextBox ID="txtMessage" runat="server" Height="158px" TextMode="MultiLine" Width="400px">Xin chào bạn, đây là ví dụ gửi mail trong ASP.NET !</asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="auto-style2">&nbsp;</td>
                <td>
                    <asp:Button ID="btnSend" runat="server" Text="Send" OnClick="btnSend_Click" />
                &nbsp;<asp:Label ID="lbStatus" runat="server" ForeColor="#FF3300"></asp:Label>
                </td>
            </tr>
        </table>
    <div>
    
    </div>
    </form>
</body>
</html>

 Bước 3: Viết code cho nút Send trong trang SendMail.aspx.cs

using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class SendMail : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSend_Click(object sender, EventArgs e)
    {
        SmtpClient smtp = new SmtpClient();
        try
        {
            //ĐỊA CHỈ SMTP Server
            smtp.Host = "smtp.gmail.com";
            //Cổng SMTP
            smtp.Port = 587;
            //SMTP yêu cầu mã hóa dữ liệu theo SSL
            smtp.EnableSsl = true;
            //UserName và Password của mail
            smtp.Credentials = new NetworkCredential("sendmail.aptech@gmail.com", "sendmail123");

            //Tham số lần lượt là địa chỉ người gửi, người nhận, tiêu đề và nội dung thư
            smtp.Send("sendmail.aptech@gmail.com", txtTo.Text, txtSubject.Text, txtMessage.Text);
            lbStatus.Text = "Sent.";
        }
        catch (Exception ex)
        {
            lbStatus.Text = ex.Message;
        }
    }
}

Để gửi mail, bạn cần sử dụng lớp SmtpClient trong namespace System.Net.Mail

Ví dụ trên sử dụng dịch vụ SMTP của Gmail, bạn có thể thay đổi các thông số: Host, Port, UserName và Password cho phù hợp với thông tin SMTP của bạn.

Tải mã nguồn tại đây

Chúc các bạn thành công với hướng dẫn trên !

Dương Linh