Kiểm tra email có tồn tại hay không với C# – verify email in c#

images

Việc kiểm tra một email có tồn tại hay không (hoặc chưa được đăng ký) có thể được kiểm tra ở một số trang web hỗ trợ verify email. Nhưng đa số những website này chỉ hỗ trợ kiểm tra một email. Vậy để kiểm tra một lúc nhiều email thì làm thế nào. Bài viết này sẽ giúp bạn thực hiện việc đó dựa trên việc kiểm tra và lấy kết quả từ website verify email với ngôn ngữ lập trình C#.

1. Giới thiệu về các website dùng để xác minh email

–  http://verify-email.org/ : Trang này cho phép người dùng nhập 1 địa chỉ email vào để xác minh địa chỉ email đó có hợp lệ hoặc tồn tại hay không. Nếu địa chỉ email nhập vào tồn tại nó sẽ có thông báo “Result:  OK”

image

–  http://www.email-unlimited.com/tools/verify-email.aspx : trang này sử dụng tương tự trang trên

image

–   http://www.verifyemailaddress.org/ : cũng tương tự 2 trang trên.

image

2. Giới thiệu về cách thức hoạt động của chương trình

–  Chương trình sẽ xây dựng trong bài viết này viết trên ngôn ngữ C# tiến hành gởi các địa chỉ email đến trang http://verify-email.org/ để tiến hành xác minh sau đó kiểm tra kết quả nằm trong trang trả về có giá trị là “Result:  OK” hay không?

–   Sử dụng thêm các khai báo using:

using System.Net;
using System.Collections.Specialized;
using System.Text.RegularExpressions;

–  Dưới đây là đoạn code xử lý việc xác minh địa chỉ email:

public bool VerifyEmail(string emailVerify)
{
    using (WebClient webclient = new WebClient())
    {
        string url = "http://verify-email.org/";
        NameValueCollection formData = new NameValueCollection();
        formData["check"] = emailVerify;
        byte[] responseBytes = webclient.UploadValues(url, "POST", formData);
        string response = Encoding.ASCII.GetString(responseBytes);
        if (response.Contains("Result: Ok"))
        {
            return true;
        }
        return false;
    }
}

Đoạn code trên trả về true nếu trang trả về có chứa chuỗi “Result:  OK” và ngược lại trả về false.

3. Source code chương trình Verify Email

–  Chương trình Verify Email được viết khá đơn giản có giao diện thiết kế như sau:

image

–  Source code C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Collections.Specialized;
using System.Text.RegularExpressions;

namespace Email_Exist
{
    public partial class Form1 : Form {
        public Form1()
        {
            InitializeComponent();
            lvwEmail.Columns.Add("Email", 200);
            lvwEmail.Columns.Add("Exits", 50);
            lvwEmail.View = View.Details;
            this.MaximizeBox = false;
            this.StartPosition = FormStartPosition.CenterScreen;
        }
        public bool VerifyEmail(string emailVerify)
        {
            using (WebClient webclient = new WebClient())
            {
                string url = "http://verify-email.org/";
                NameValueCollection formData = new NameValueCollection();
                formData["check"] = emailVerify;
                byte[] responseBytes = webclient.UploadValues(url, "POST", formData);
                string response = Encoding.ASCII.GetString(responseBytes);
                if (response.Contains("Result: Ok"))
                {
                    return true;
                }
                return false;
            }
        }

        private void btnCheckEmail_Click(object sender, EventArgs e)
        {
            progressBar1.TabIndex = 0;
            this.progressBar1.Minimum = 1;
            this.progressBar1.Step = 1;

            string input = rtbxEmail.Text;
            string pattern = "\n";
            string[] emails = Regex.Split(input, pattern);
            progressBar1.Maximum = emails.Length + 1;

            lvwEmail.Items.Clear();

            for (int i = 0; i < emails.Length; i++)
            {
                ListViewItem itemp = new ListViewItem(emails[i]);
                bool check = VerifyEmail(emails[i]);
                if (check == true)
                {
                    ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem(itemp, "Yes");
                    itemp.SubItems.Add(subItem);
                }
                else {
                    ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem(itemp, "No");
                    itemp.SubItems.Add(subItem);
                }
                lvwEmail.Items.Add(itemp);
                progressBar1.PerformStep();
            }
        }

        private void linkToMyBlog_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            System.Diagnostics.Process.Start(linkToMyBlog.Text);
        }
    }
}

4. Thực thi chương trình và link download source code chương trình verify email

–  Bạn nhập địa chỉ email cần kiểm tra vào ô Emails sau đó click vào button Check. Chờ một tý chương trình sẽ kiểm tra và trả về kết quả ở listView kế bên. Nếu địa chỉ email là đúng thì trả về yes, ngược lại trả về no.

image

–  Lưu ý chương trình chỉ cho kết quả đúng nếu số địa chỉ email nhập vào nhỏ hơn 20. Và 1 giờ chỉ kiểm tra được 20 địa chỉ email  do trang http://verify-email.org/ quy định. Vì khi chạy chương trình mình đã test nhiều lần trong một địa chỉ email nên hình bên trên trả về kết quả là “no”.

–  Click vào đây để download source code chương trình verify email viết bằng C# trên Visual studio 2010.

Advertisements

About thanhcuong1990

Handsome and talent!! ^^
This entry was posted in C# and tagged . Bookmark the permalink.

20 Responses to Kiểm tra email có tồn tại hay không với C# – verify email in c#

  1. hanbro says:

    hình như cái http://verify-email.org/ chỉ chạy gmail thì phải nhập yahoo thì đều báo no hết, 2 web còn lại kiểm tra yahoo đều có cả nhưng thay vào chương trình thì nó không chạy.
    Cách kiểm tra của nó giống cái verify-email.org hả bạn.

  2. okitakimura says:

    Hi!
    Bạn có thể demo thêm phần multithread nữa ko ?

  3. do says:

    BẠn còn link khác cho cái chương trình không hoặc gửi mail cho mình với
    do.uniform@gmail.com

  4. abc says:

    Chi chay duoc 20 email per hour

  5. Bao says:

    Bạn ơi. Mình không download được source code của project bạn có thề gửi cho mình qua email: baokhtn@gmail.com được không. Cảm ơn bạn!

  6. phongtran010580 says:

    Cai nay chi check vai email thoi, nhieu email la failed, set ve mat QA trong software testing la bi failed load test

  7. Phạm Thị Hồng says:

    Bạn ơi có cách nào xác thực cả email và password của email đó là hợp lệ không ? Cảm ơn bạn nhiều !

  8. Quan says:

    Có chạy được đâu bạn ơi, toàn báo No kể cả email tồn tại vậy?

  9. Thanh Tong says:

    Mình dùng hàm check trên thêm vào project của mình nhưng toàn báo No thôi!

  10. binh minh says:

    Bạn dùng phần mềm này thì không sợ bị hạn chế bao nhiêu email nữa. Chỉ cần file excel chứa danh sách email, import file này vào phần mềm, sau đó bấm nút Email Verify và chờ kết quả. Phần mềm tự động xuất cho bạn một file excel đầy đủ thông tin luôn.

    http://www.biframework.com.vn/page/products/id/185/phan-mem-check-email-email-validate-email-varifier.html

  11. Peter says:

    Kiểm tra email có vẻ dễ dàng nhưng nó không phải là. Kinh nghiệm của tôi đã dạy tôi rằng công việc này là tốt nhất còn lại để các chuyên gia. Tôi đã thử nhiều dịch vụ và với tôi tốt nhất là http://www.GreenAppleMail.com.
    Họ chuyên về kiểm tra email hàng loạt cho một chi phí khá hợp lý. Ngoài ra, họ làm tất cả những công việc sử dụng máy chủ của họ và không cần thiết phải mạo hiểm gì

  12. hieu says:

    code check email có vấn đề rùi. test đủ kiểu vẫn No thôi. 1 hay nhiều email nó vẫn No. yahoo hay gmail cũng như nhau.

  13. iclickseosol says:

    Thử phần mềm của iClick nhé: tools-verify-emails.com

  14. thuyvk says:

    thanhcuong1990 ơi cho mình hỏi bạn dùng cách gì để có thể hiển thị code rõ ràng trong post của wordpress vậy?

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