1. Tạo 1 email template mẫu có sẵn.
2. Cấu hình smtp.
3. Lấy địa chỉ email từ file web.config.
4. Bật chức năng bảo mật cho email gửi đi. (enable SSL)
Nếu các bạn muốn thì hiểu rõ hơn về Mail cũng như các lớp cung cấp phục vụ cho việc gửi mail, xin vui lòng tham khảo thêm MCTS Self-Paced Training Kit (Exam 70-536): Microsoft .NET Framework 2.0 Application Development Foundation, chương 15 (cơ bản về .NET 2.0).
Cách làm:
Bước 1:
Dùng Visual Studio 2005/2008 tạo 1 ứng dụng Web, chọn ngôn ngữ mà bạn thích, ở đây mình code trên 2 ngôn ngữ VB và C#, đầu tiên mình sẻ tạo 1 template mẫu phục vụ cho việc gửi mail.
Bước 2:
Và mail template có dạng sau:
Và đây là code html của mail mẫu
Giờ ta phải quan tâm đến các từ trong dấu [], chẳng hạn [Sender], nó chính là các tham số mà ta sẽ thay thế.
Bước 3:
Tiếp đến tạo 1 trang để cho người dùng gửi yêu cầu, nơi mà chúng ta sẽ áp dụng chức năng send mail:
Các này để thiết kế nên mình không có đi sâu vào vấn đề làm thế nào để layout nó, ở đây mình dùng table.
Bước 4:
Giờ đến phần cấu hình smtp trong web.config, mục đích cho phép người dùng dể dàng chỉnh sửa email gửi đi 1 cách dễ dàng mà không cần đụng đến mã nguồn.
Ở đây do mình dùng host của godaddy nên cấu hình smtp yêu cầu là như hình trên, nếu smtp của các bạn là gmail hoặc yahoo thì phải cấu hình cho đúng, ví dụ: của gmail là stmp.gmail.com, port là 587. Ở đây mình cấu hình smtp trên domain của mình đang sử dụng (http://www.vi-vn.com).
Chú ý: tag smtp phải đặt trong tag configuration và được bộc lại bởi tag system.net
Típ: Các bạn nên bỏ nó phía dưới cùng trong tag configuration
Bước 5: tạo 1 thuộc tính để lấy giá trị email trong web.config
C#
VB.NET
Chú ý: thuộc tính này chỉ đọc thôi, không cho phép ghi xuống cho nên chỉ có get C#, và ReaOnly trong VB.
Chú ý: các bạn phải using hoặc import 2 namespace vào là:
C#
using System.Net.Configuration;
using System.Configuration;
VB
Imports System.Configuration
Imports System.Net.Configuration
Với thuộc tính này chúng ta sẽ lấy được địa chi email: admin@vi-vn.com
Bước 6: Viết hàm send mail
Hàm này sẻ trả về kiểu String, dùng để nhận biết kết quả của việc send mail (thành công hay thất bại), bạn cũng có thể trả về kiểu bool nếu bạn thích.
C#
public string SendMail(string subject, string body,
string to, bool isHtml, bool isSSL)
VB
Public Function SendMail(ByVal subject As String, ByVal body As String, _
ByVal toAddress As String, ByVal isHtml As Boolean, ByVal isSSL As Boolean) _
As String
C#
VB.NET
Phương thức send mail này sẽ nhận vào các tham số như: chủ đề, nội dụng, người nhận, gửi mail dạng html, mã hoá SSL (Secure Socket Layer).
Đầu tiên hàm này sẽ tạo 1 đối tượng MailMessage, và được bộc lại bởi block using, để đảm bảo rằng đối tượng này sẻ được Dispose khi ra khỏi hàm và trước khi Collect Garbage thực hiện việc này. Như những dòng lệnh của đả nói lên rằng là 1 mail bao gồm người gửi (From), người nhận (To), chủ đề (Subject), nội dụng (Body)...
Bước 7: Gọi hàm SendMail.
C#
VB.NET
Đầu tiên chúng ta tạo 1 đối tượng StreamReader và đọc nội dụng của file html tempate, sau đó đọc tất cả nội dụng của file template vào biến content. Sau đó thay thế các tag [Sender], [Content].... bằng những gì mà người dùng nhập vào.
Kết quả:
Kết luận:
Đây là cách làm thông thường khi lằm việc với mail, ngoài ra khi send mail, chúng ta cần phải nhúng vào đó hình hoặc tập tin đính kèm chắng hạn. Điều này cũng rất dể dàng vì ASP.NET 2.0 đả hổ trợ chúng ta. Tương tự với cách làm này thì khi người dùng đăng ký thành viên thì rất dể dàng cho việc send mail active tài khoản, cũng dùng cách này trong các bài viết sau mình sẻ hướng dẩn send mail active tài khoản khi user đăng ký thành viên.
Mã nguồn:
Code:
http://www.vi-vn.com/pubs/DynamicEmail.rar
Theo
Code:
http://forum.vi-vn.com/forum/Topic188-20-1.aspx
Theo nhatnghe (quachnguyen)