Đăng ký vps giá rẻ, tên miềndomain. Việc kiểm tra và mua tên miền giá rẻ, domain giá rẻ, hosting giá rẻ, máy chủ ảo giá rẻserver giá rẻ chỉ với 2 bước đơn giản. Giúp bạn tiên phong trong kinh doanh Online

Asp.net
 9ecva.com - 9e Chu Van An Forever : Asp.net
Tiêu đề Chủ đề: Gửi Email động trong ASP.NET Trả lời bài viếtGửi bài viết mới
Tác giả
Nội dung << Chủ đề trước | Chủ đề kế tiếp >>
DUCVINH83
Administrator
Administrator
Avatar
Không ngừng học hỏi !

Ngày gia nhập: 01/11/2005
Giới tính:
Đến từ: Vietnam
Trạng thái:
Bài viết: 365
Tiền: 738$
Địa chỉ e-mail: Gửi mail
Yahoo! IM: Yahoo! IM
Sinh nhật: 17/02/1983
Cảnh cáo: (0%)
Minus 1 warningCurrent warnlevel: 0%Add 1 warning
Ngày gửi: 12/11/2009 lúc 4:17 chiều | Đã khóa IP Trích dẫn DUCVINH83



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


__________________

YM: DUCVINH83
0912 822334


Lên trên Xem DUCVINH83's Thông tin cá nhân Tìm những bài viết khác của DUCVINH83 Ghé thăm DUCVINH83's Trang chủ
 
DUCVINH83
Administrator
Administrator
Avatar
Không ngừng học hỏi !

Ngày gia nhập: 01/11/2005
Giới tính:
Đến từ: Vietnam
Trạng thái:
Bài viết: 365
Tiền: 738$
Địa chỉ e-mail: Gửi mail
Yahoo! IM: Yahoo! IM
Sinh nhật: 17/02/1983
Cảnh cáo: (0%)
Minus 1 warningCurrent warnlevel: 0%Add 1 warning
Ngày gửi: 25/11/2009 lúc 2:54 chiều | Đã khóa IP Trích dẫn DUCVINH83

Send mail bằng SMTP của GMail với C# ASP.NET

Download source code



Giới thiệu cách làm
Xin giới thiệu với các bạn cách send mail bằng C# với mail server SMTP của GMail, việc làm rất đơn giản là bạn phải đãm bảo có 1 tài khoản GMail và cho phép send mail thông qua smtp. Bạn tạo một project website ASP.NET 2.0 và nhập đoạn mã sau vào trang Default.aspx.cs

using System.Net;
using System.Net.Mail;

public partial class _Default : System.Web.UI.Page
{
string _mailServer = "smtp.gmail.com";
int _mailPort = 587; // Work well, 465 Timeout

string _user = "nhomlamweb@gmail.com";
string _pass = "password";

string _mailFrom = "phuong.webdev@gmail.com";
string _mailTo = "phuong.webdev@gmail.com";

protected void Page_Load(object sender, EventArgs e)
{
MailMessage mailMessage = new MailMessage();
SmtpClient mailClient = new SmtpClient(_mailServer, _mailPort);
mailClient.Timeout = 15000;
mailClient.Credentials = new NetworkCredential(_user, _pass);
mailClient.EnableSsl = true;
//mailClient.UseDefaultCredentials = true; // no work

mailMessage.IsBodyHtml = true;
mailMessage.From = new MailAddress(_mailFrom);
mailMessage.Subject = "Hello APhuong test send mail via Gmail SMTP";
mailMessage.Body = "<h2>APhuong test send mail via Gmail SMTP</h2>";
mailMessage.To.Add(_mailTo);
try
{
mailClient.Send(mailMessage);
Response.Write("Send mail success");
}
catch (Exception ex)
{
Response.Write("Send mail fail, " + ex.Message);
}
}
}

Ngoài các thư viện mặc định, chúng ta cần dùng thêm thư viện hổ trợ send mail SMTP đó là:
using System.Net;
using System.Net.Mail;
Account GMail cung cấp cho ta các thông số đủ để send mail bằng SMTP:
string _mailServer = "smtp.gmail.com"; // SMTP Server
int _mailPort = 587; // SMTP Port
string _user = "nhomlamweb@gmail.com"; // Account GMail
string _pass = "password"; // Passwrod GMail

Hiểu biết về giới hạn send mail của gmail
Trích từ GMail:
In an effort to fight spam and prevent abuse, Google will temporarily
disable your account if you send messages to more than 500 recipients
or if you send a large number of undeliverable messages. If you use a
POP or IMAP client (Microsoft Outlook or Apple Mail, e.g.), you may
only send a message to 100 people at a time. Your account should be
re-enabled within 24 hours.
Good luck!
nhomlamweb.com


Được sửa bởi DUCVINH83 trên diễn đàn 25/11/2009 lúc 2:57 chiều


__________________

YM: DUCVINH83
0912 822334


Lên trên Xem DUCVINH83's Thông tin cá nhân Tìm những bài viết khác của DUCVINH83 Ghé thăm DUCVINH83's Trang chủ
 

Nếu bạn muốn trả lời thì trước tiên bạn phải đăng nhập
Nếu chưa đăng ký thì bạn hãy đăng ký

  Trả lời bài viếtGửi bài viết mới
Xem trang in Xem trang in

Di chuyển nhanh
Bạn không thể tạo đề tài mới
Bạn không thể trả lời bài viết
Bạn không thể xoá bài viết bạn đã gưi
Bạn không thể sửa bài viết bạn đã gửi
Bạn không thể tạo bình chọn
Bạn không thể bình chọn



Trang này được tạo ra trong 0.1943 giây.
cheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salesac longchamp pas chergucci outlet

baomang.net  9ecva.com © 2007 - Phát triển bởi Trịnh Đức Vinh