Cấp bậc tác giả:

DOTNET

Gửi Mail Từ Hotmail/ Outlook/ Windows Live trong ASP.NET

Được viết bởi QuangIT ngày 13/05/2013 lúc 05:23 PM
Bài trước Tôi đã hướng dẫn gửi mail trong ASP.NET nhưng sử dụng SMTP của gmail, còn của Microsoft sẽ làm như thế nào?
  • 0
  • 10607

Gửi Mail Từ Hotmail/ Outlook/ Windows Live trong ASP.NET

Bài trước Tôi đã hướng dẫn gửi mail trong ASP.NET nhưng sử dụng SMTP của gmail, còn của Microsoft sẽ làm như thế nào? Nếu bạn chưa có mail của Microsoft thì có thể đăng ký qua https://www.outlook.com, nhưng nếu bạn muốn có Domain riêng của mình, chẳng hạn têncủabạn@domain, bạn có thể đọc hướng dẫn của Tôi đã viết trước đó "Hướng dẫn đăng ký và sử dụng email miễn phí của Microsoft cho domain".

Nếu bạn lần đầu tiên làm quen với việc truy cập hộp thư của Microsoft bạn chắc chắn sẽ thấy bị làm phiền bởi yêu cầu được lặp đi lặp lại một cách vô nghĩa "REQUESTED ACTION NOT TAKEN; TO CONTINUE SENDING MESSAGES, PLEASE SIGN IN TO YOUR ACCOUNT." tức là "HÀNH ĐỘNG ĐƯỢC YÊU CẦU KHÔNG ĐƯỢC THỰC HIỆN; ĐỂ TIẾP TỤC GỬI TIN NHẮN, XIN VUI LÒNG ĐĂNG NHẬP VÀO TÀI KHOẢN CỦA BẠN."

Lý do rất đơn giản. Mặc dù thực tế rằng khi bạn tạo tài khoản outlook.com, ngay lập tức bạn có thể đăng nhập, tài khoản của bạn không được xác nhận. Để tránh được lỗi này, khi bạn tạo tài khoản, bạn cần phải đăng xuất và đăng nhập lại, giải quyết xác thực trong tiến trình này. Điều này sẽ xác nhận tài khoản của bạn và cho phép các đoạn mã sau vào làm việc đúng cách. Bạn có thể bỏ qua bước này nếu bạn xác nhận tài khoản của bạn với một số điện thoại khi bạn tạo ra nó.

public static class Mailer
{
    const string SmtpServer = "smtp.live.com";
    const int SmtpPort = 587;
    const string FromAddress = "address@outlook.com";
    const string Password = "password";
 
    public static void SendMail(string toAddress, string subject, string body)
    {
        var client = new SmtpClient(SmtpServer, SmtpPort)
        {
            Credentials = new NetworkCredential(FromAddress, Password),
            EnableSsl = true
        };
 
        client.Send(FromAddress, toAddress, subject, body);
    }
}

Lưu ý rằng địa chỉ email và mật khẩu trong thực tế được mã hóa vào tập tin cấu hình thay vì được ghi trực tiếp vào nguồn như tôi đã làm ở đây vì đơn giản. Cài đặt máy chủ cũng cần được trích xuất ra thành tập tin cấu hình để chúng có thể được thay đổi sau này nếu cần thiết. Tôi sẽ hướng dẫn cách mã hóa web.config trong bài khác.

Với việc sử dụng HTML thì sao nhỉ? Cách đơn giản, bạn chỉ cần làm theo hướng dẫn dưới đây:

    private void guiMail()
    {
        using (MailMessage newMail = new MailMessage())
        {
            Techs entCongNghe = DataRepository.TechsProvider.GetById(Convert.ToInt32(H_CatalogId.Value));
            Members entThanhVien = DataRepository.MembersProvider.GetById(entCongNghe.IdTacGia);
            System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
            string to = "Các địa chỉ email cần gửi được phân cách bởi dấu chấm phẩy";

            String[] ALL_EMAILS = to.Split(';');
            foreach (string emailaddress in ALL_EMAILS)
            {
                newMail.From = new MailAddress(địa chỉ email của bạn);
                // tu dia chi website cua ban   
                newMail.To.Add(emailaddress);
                // gui cho khach hang 
                newMail.Subject = txtTieuDeTin.Text;
                // tieu de
                newMail.BodyEncoding = Encoding.UTF8;
                newMail.SubjectEncoding = Encoding.UTF8;
                newMail.Body = "<html><body><font face='Courier New, Courier, mono' size='-1'>";
                newMail.Body += String.Format(" <br />Xin chào,<br /><br />Đây là email được gửi bởi DOTNET GROUP < {0} >", Common.diachiemal);
                newMail.Body += " từ Website DOTNET GROUP. DOTNET GROUP là một cộng đồng Online phát triển công nghệ gồm lập trình, hướng dẫn, công nghệ, ví dụ source code, thủ thuật, tin tức mới được cập nhật hàng ngày.<br /><br />";
                newMail.Body += String.Format("<br /><span>{0}</span><br /><br />Cảm ơn bạn,<br />Ban Quản Trị DotNet Group<br />{1}", txtTomTat.Text, Common.sPathUpLienKet) + "<br />";

                newMail.IsBodyHtml = true;

                var client = new SmtpClient("smtp.live.com", 587)
                {
                    Credentials = new NetworkCredential(địa chỉ email của bạn, mật khẩu email của bạn),
                    EnableSsl = true
                };

                client.Send(newMail);
            }
        }
    }

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML