* Login   * Register


Last visit was:
It is currently Tue Feb 20, 2018 10:50 pm
View unanswered posts
View active topics





Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Gửi Email động trong ASP.NET
PostPosted: Sun May 31, 2009 1:22 pm 
Offline

Joined: Thu Feb 05, 2009 11:43 am
Posts: 11
---------
Gửi Email động trong ASP.NET

Với 1 ứng dụng web hiện nay thì việc hỗ trợ liên hệ giữa khách hàng và nhà cung cấp dịch vụ là không thể tránh khỏi, với cách làm cũ thì các bạn phải dùng cách cấu hình Microsoft CDO trong Net 1.1, cách này rất vất vả và bất tiện, nhưng với asp.net 2.0 thì mọi việc trở nên hết sức dễ dàng.

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 ().

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.


Report this post
Top
 Profile E-mail  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 


Who is online

Users browsing this forum: No registered users and 0 guests


You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron

Make Forum · php-BB© · Internationalization Project · Report abuse · Terms Of Use/Privacy Policy
© Forums-Free.com 2009