Asked Jul 31st, 9:34 AM 205 0 4
  • 205 0 4
0

Làm thế nào để kiểm tra mail là thật hay giả?

Share
  • 205 0 4

Cho mình hỏi có cách nào check email là thật hay ko nhỉ, mình thử check qua api mà toàn tính phí. Cảm ơn mọi người trước

Tran Duc Thang @thangtd90
Jul 31st, 1:36 PM

Cụ thể là bạn muốn check xem một email có tồn tại hay không, ví dụ như [email protected] , [email protected]

hay là email có phải thuộc dạng disposable như yopmail, mailinator, fakeinbox ... hay không nhỉ 🤔

0
| Reply
Share
Aug 1st, 1:32 AM

@thangtd90 Em muốn check mai có tồn tại hay ko ạ

0
| Reply
Share
Tran Duc Thang @thangtd90
Aug 2nd, 10:18 AM

@thanhtungs Nếu chỉ cần check mail có tồn tại hay không thì bạn có thể implement bằng cách gửi mail verification đến địa chỉ của users, bắt users phải verify thì mới cho sử dụng chẳng hạn 😄

+1
| Reply
Share
Aug 4th, 4:01 AM

@thangtd90 Như vậy thì có chậm request ko ạ, vì em cần check rất nhiều email trong 1 ngày có thể vài nghìn user email ạ, dù sao cũng cảm ơn anh ạ

0
| Reply
Share
Hinora @hinora
about 3 hours ago

@thanhtungs sử dụng dịch vụ gửi mail của bên thứ 3 thì sẽ nhanh nhé bạn

0
| Reply
Share
about 2 hours ago

@hinora Cảm ơn bác, để em thử

0
| Reply
Share

4 ANSWERS


Answered Aug 2nd, 8:54 AM
+3

Theo mình thì không có cách kiểm tra chính xác 100% đâu bạn ạ.
Chỉ có 1 cách check là dùng mail domain và sử dụng ping dns để kiểm tra xem domain đó có đăng ký các record như A, MX, AAAA(IPv6) hay không.
Nếu trả về true, tức là có các email đi theo domain đó.
Nói dễ hiểu hơn, ví dụ như có 1 cái mail là [email protected]
Thì bạn chỉ có thể check đc vế sau là "sun.com" xem nó có tồn tại mail nào hay không, còn theo mình ko có cách nào có thể check được "aaaaaaaaaaaaaa" là có tồn tại hay không đâu. (impossible)

Ở PHP bạn có thể thử cách này, ngày trược mình có dùng cách này.

function isRealEmail() {
        $pattern = '/@([\w.-]++)\z/';
        return filter_var($value, FILTER_VALIDATE_EMAIL) &&
            preg_match($pattern, $value, $matches) &&
            (checkdnsrr($matches[1], 'MX') || checkdnsrr($matches[1], 'A') || checkdnsrr($matches[1], 'AAAA'));
}

Hy vọng là có ích cho bạn.

Share
Ngân Kim @ngankim
Aug 2nd, 9:01 AM

Thank bac, dung cai em dang tim

0
| Reply
Share
Aug 4th, 4:04 AM

Cảm ơn bác nhé. Để mình thử xem

0
| Reply
Share
Answered Jul 31st, 9:35 AM
0

Mình thấy có 1 vài cách cơ mà ko dám dùng, vì sợ lộ mail cho bên thứ 3 bán info.

Nếu login, thì theo mình lên dùng luôn cơ chế login google

Share
Aug 1st, 1:57 AM

Chỉ kiểm tra mail nhập là mail thật hay giả để tránh spam thôi bác

0
| Reply
Share
Answered Aug 1st, 9:53 AM
0

Đơn giản thì cứ gửi về verification code hoặc link như nhiều trang hay làm.

Share
Answered Aug 4th, 9:59 AM
0

Hãy làm quen với việc trả phí 😃, vì hầu hết chúng là cách tốt nhất <ko tốt thì chẳng ai chịu trả phí nuôi nó cả> Suy nghĩ, mò mẫm cách giải quyết hết 2-3 ngày hay 1 tuần, quy ra lương hoặc giờ công thì cũng quá tiền phí dịch vụ rồi.

Share
Aug 4th, 10:02 AM

Công ty muốn free hết mức có thể bác ơi =))

0
| Reply
Share
Lê Tuấn Anh @tuananhbfs
Aug 4th, 10:04 AM

Công ty mình cũng thế. Nhưng mình có thể trao đổi và thuyết phục dc sếp <nếu việc này nên làm, tiết kiệm và có ích> . 😄

0
| Reply
Share