Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Gửi mail với SMTP chứng thực với Gmail

    Viết một ứng dụng đôi lúc bạn cần đến một chức năng gửi mail để đáp ứng cho một mục đích nào đó. Đôi khi bạn đã có mailserver của mình để có thể sử dụng SMTPSERVER nhưng đôi lúc bạn không kiếm đâu ra mailserver thì các mailclient như mail của chúng ta đăng ký ở Gmail hay Yahoo ... chỉ cần bạn biết địa chỉ smtpserver của nó và một port là có thể sử dụng SMTP trong name space System.Net.Mail để gửi mail.

    Dưới đây là một lớp mình viết sẵn và có giải thích rỏ ràng trên từng đoạn code nên mình ko giải thích lại nữa.


    Mã:
    using System.Net.Mail;using System.Text.RegularExpressions; /// <summary>/// Summary description for SendMailClient/// </summary>public class SGmail{    public SGmail()    {    }     SmtpClient sClient = new SmtpClient();     //xác định smtpserver để gửi mail, với gmail là smtp.gmail.com    string smtpServer = "smtp.gmail.com";    /// <summary>    /// Thuộc tính truyền hoặc lấy mail server khi gửi mail client    /// </summary>    public string SmtpServer    {        get { return smtpServer; }        set { smtpServer = value; }    }     //Gửi từ mail nào, là một địa chỉ mail từ gmail ex: sunflower2441@gmail.com    string smtpMailFrom = "sunflower2441@gmail.com";    /// <summary>    /// Thuộc tính truyền hoặc lấy giá trị địa chỉ gửi mail    /// </summary>    public string SmtpMailFrom    {        get { return smtpMailFrom; }        set { smtpMailFrom = value; }    }     //user đăng nhập vào gmail    string smtpUser = "sunflower2441";    /// <summary>    /// Thuộc tính user đăng nhập mail, chỉ có thể truyền    /// </summary>    public string SmtpUser    {        set { smtpUser = value; }    }     //mật khẩu đăng nhập gmail    string smtpPassword = "123456";    /// <summary>    /// Thuộc tính mật khẩu đăng nhập mail, chỉ có thể truyền    /// </summary>    public string SmtpPassword    {        set { smtpPassword = value; }    }     //port của smtpserver khi dùng gmail là 587 hoặc 465    int smtpPort = 587;    /// <summary>    /// Port khi gửi mail với smtpserver của mail client, chỉ có thể truyền    /// </summary>    public int SmtpPort    {        get { return smtpPort; }        set { smtpPort = value; }    }     /// <summary>    /// Hàm gửi mail với mail client là gmail    /// </summary>    /// <param name="strMailTo">Mail muốn gửi đến</param>    /// <param name="strMailSubject">Tựa đề mail</param>    /// <param name="strContent">Nội dung mail</param>    /// <param name="bolIsHTMLFormat">Định dang mail gửi đi là HTML hay Text</param>    /// <returns>Trả về thông tin sau khi gửi là thanh công hay thất bại và lỗi khi thất bại.</returns>    public int SendMail(string strMailTo, string strMailSubject, string strContent, bool bolIsHTMLFormat)    {        try        {            MailMessage objMail = new MailMessage();            //reg xác lập tính hợp lệ của mail            Regex reg = new Regex(@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");            objMail.From = new MailAddress(smtpMailFrom);            objMail.ReplyTo = new MailAddress(smtpMailFrom);             if (reg.IsMatch(strMailTo))            {                objMail.To.Add(new MailAddress(strMailTo));                objMail.Subject = strMailSubject;                if (bolIsHTMLFormat)                {                    objMail.IsBodyHtml = true;                    objMail.Body = string.Format("<html><head><title>{0}</title></head><body>{1}</body></html>", strMailSubject, strContent);                }                else                {                    objMail.IsBodyHtml = false;                    objMail.Body = strContent;                }                objMail.BodyEncoding = System.Text.Encoding.UTF8;                sClient = new SmtpClient();                 sClient.Host = smtpServer;                sClient.Port = smtpPort;                sClient.Credentials = new System.Net.NetworkCredential(smtpUser, smtpPassword);                sClient.EnableSsl = true;                sClient.Send(objMail);                 return 1;            }            else            {                return 0;            }        }        catch (Exception ex)        {            return -1;        }    }}

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Xem bài hướng dẫn chi tiết của X viết hồi lâu lâu cũng được [IMG]images/smilies/biggrin.png[/IMG] Gửi eMail với SMTP trong lập trình C#

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    cho tớ hỏi: tớ cũng viết một cái như này nhưng sau khi chạy một số lần nhất định trong ngày thì nó không cho gửi nữa, hình như là giới hạn số lượng mail gửi đi trong 1 ngày(khoảng 20 mail), có cách nào để nó không bị giới hạn không ?

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Không giới hạn thì bạn dùng nó để flood người ta rồi sao?

  5. #5
    Ngày tham gia
    Sep 2015
    Đang ở
    hà nội
    Bài viết
    0
    sunflower ban cho lai file dll di nhe, ban dua link nay chung to rat kho dowload, ban cho to xin file bang link mediafire nhe. cám ơn bạn rât nhiều.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •