Ở đây chúng ta sử dụng các thư viện
sau để hỗ trợ việc kiểm tra email: System.Text.RegularExpressions,
System.Net.Sockets, System.IO
Trong bài viết này các bạn cần
lưu ý đến 2 hàm quan trong là isEmail: dùng để
kiểm tra xem email nhập vào có đúng định dạng hay không, check_gmail: dùng để
kiểm tra xem Gmail hoặc các dịch vụ Google cung cấp có tồn tại hay không. Cả 2
hàm này đều trả về giá trị True là nhập email đúng định dạng và email tồn tại.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//Kiểm
tra email tồn tại hay không
using System.Text.RegularExpressions;
//gmail
using System.Net.Sockets;
using System.IO;
namespace Check_Gmail_Google
{
public partial class Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
//Hàm kiểm
tra xem nhập email theo đúng định dạng chưa
public static bool isEmail(string inputEmail)
{
inputEmail = inputEmail ?? string.Empty;
string
strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}"
+
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\"
+
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex
re = new Regex(strRegex);
if
(re.IsMatch(inputEmail))
return
(true);
else
return
(false);
}
///Hàm kiểm tra email có tồn tại hay không
//Hàm kiểm
tra tồn tại email của Gmail (kể cả các tên miền của các website, ex:
@cadt.com.vn,@tinhte.vn ...)
private
bool check_gmail(string
gmail)
//Trả về True
là gmail tồn tại
{
bool
ketqua = false;
TcpClient
tClient = new TcpClient("gmail-smtp-in.l.google.com", 25);
string
CRLF = "\r\n";
byte[]
dataBuffer;
string
ResponseString;
NetworkStream
netStream = tClient.GetStream();
StreamReader
reader = new StreamReader(netStream);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("HELO VietQuan" + CRLF);
netStream.Write(dataBuffer, 0,
dataBuffer.Length);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("MAIL
FROM:<tracdiaviet.com.vn@gmail.com>" + CRLF);
netStream.Write(dataBuffer, 0,
dataBuffer.Length);
ResponseString = reader.ReadLine();
dataBuffer = BytesFromString("RCPT TO:<" + gmail.Trim() + ">" + CRLF);
netStream.Write(dataBuffer, 0,
dataBuffer.Length);
ResponseString = reader.ReadLine();
if
(GetResponseCode(ResponseString) == 550)
{
ketqua = false;
}
else
{
ketqua = true;
}
dataBuffer = BytesFromString("QUITE" + CRLF);
netStream.Write(dataBuffer, 0,
dataBuffer.Length);
tClient.Close();
return
ketqua;
}
private
byte[] BytesFromString(string
str)
{
return
Encoding.ASCII.GetBytes(str);
}
private
int GetResponseCode(string
ResponseString)
{
return
int.Parse(ResponseString.Substring(0, 3));
}
private
void button1_Click(object
sender, EventArgs e)
{
if
(isEmail(textBox1.Text) == true)
{
label2.Text = "Đang kiểm tra email...";
label2.Refresh();
if
(check_gmail(textBox1.Text) == true)
MessageBox.Show("Email bạn nhập vào là tồn tại", "Email tồn tại");
else
MessageBox.Show("Email bạn nhập vào không tồn tại", "Email không tồn tại");
label2.Text = "";
}
else
{
MessageBox.Show("Bạn nhập email sai định dạng","Email không đúng định dạng");
}
}
}
}
</div>
</div>
Giao diện chương trình khi chạy bạn nhập địa chỉ email và chọn nút kiểm tra và đợi chương trình kiểm tra, tùy vào tốc độ mạng mà kiểm tra nhanh hay chậm
Bạn có thể xem thêm bài Kiểm tra email nhập theo đúng định bằng C#
Chúc bạn thành công
Hãy like nếu bài viết có ích →
Kết bạn với gisgpsrs trên Facebook
để nhận bài viết mới nóng hổi
Không có nhận xét nào:
Đăng nhận xét