//
you're reading...
ASP.Net

Send mail trong ASP.NET sử dụng C#

Class dùng để gửi mail tới 1 hay nhiều người, có cho phép đính kèm tệp tin vào email…

Việc gửi mail là 1 công việc thường ngày và viết ra 1 chương trình gửi mail thật đơn giản nhưng không phải ai cũng biết. Mình xin giới thiệu với các bạn class Email này.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
 
namespace EmailClass
{
    public class Email
    {
        public string Send_Email(string SendFrom,string SendTo, string Subject, string Body)
        { 
            try
            {
                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@”\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*”);
 
                 
                bool result = regex.IsMatch(to);
                if (result == false)
                {
                    return “Địa chỉ email không hợp lệ.”;
                }
                else
                {
                    System.Net.Mail.SmtpClient smtp = new SmtpClient();
                    System.Net.Mail.MailMessage msg = new MailMessage(SendFrom,SendTo,Subject,Body);
                    msg.IsBodyHtml = true;
                    smtp.Host = “smtp.gmail.com”;//Sử dụng SMTP của gmail
                    smtp.Send(msg);
                    return “Email đã được gửi đến: ” + SendTo + “.”;
                }
            }
            catch
            {
                return “”;
            }
        } 

        public string Send_Email_With_Attachment(string SendTo, string SendFrom, string Subject, string Body, string AttachmentPath)
        {
            try
            {
                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@”\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*”);

                string from = SendFrom;
                string to = SendTo;
                string subject = Subject;
                string body = Body;

                bool result = regex.IsMatch(to);

                if (result == false)
                {
                    return “Địa chỉ email không hợp lệ.”;
                }
                else
                {
                    try
                    {
                        MailMessage em = new MailMessage(from, to,subject, body);
                        Attachment attach = new Attachment(AttachmentPath);

                        em.Attachments.Add(attach);
                        em.Bcc.Add(from); 
                        System.Net.Mail.SmtpClient smtp = new SmtpClient();
                        smtp.Host = “smtp.gmail.com”;//Ví dụ xử dụng SMTP của gmail                    
                        smtp.Send(em); 
                        return “”;
                    }
                    catch (Exception ex)
                    {
                        return ex.Message;
                    }
                }
            }

            catch (Exception ex)
            {
                return ex.Message;
            }
        }

        public string Send_Email_With_BCC_Attachment(string SendTo, string SendBCC, string SendFrom, string Subject, string Body, string AttachmentPath)
        { 
            try
            {
                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@”\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*”); 
                string from = SendFrom;
                string to = SendTo; //Danh sách email được ngăn cách nhau bởi dấu “;”
                string subject = Subject;
                string body = Body;
                string bcc = SendBCC; 

                bool result = true;
                String[] ALL_EMAILS = to.Split(‘;’);

                foreach (string emailaddress in ALL_EMAILS)
                {
                    result = regex.IsMatch(emailaddress);
                    if (result == false)
                    {
                        return “Địa chỉ email không hợp lệ.”;
                    }
               }

                if (result == true)
                {
                    try
                    {
                        MailMessage em = new MailMessage(from, to, subject, body);
                        Attachment attach = new  Attachment(AttachmentPath);
                        em.Attachments.Add(attach);
                        em.Bcc.Add(bcc);
 
                        System.Net.Mail.SmtpClient smtp = new SmtpClient();
                        smtp.Host = “smtp.gmail.com”;//Ví dụ xử dụng SMTP của gmail
                        smtp.Send(em);
 
                        return “”;
                    }
                    catch (Exception ex)
                    {
                        return ex.Message;
                    }
                }
                else
                {
                    return “”;
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
    }
}

Discussion

One thought on “Send mail trong ASP.NET sử dụng C#

  1. nếu Gmail yêu cầu SSL thì thêm câu lệnh sau để gửi được thư:
    smtp.EnableSsl = true;
    ngoài ra cần cấu hình thêm port là 587 hoặc 465

    Posted by MrSky | December 28, 2009, 4:03 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: