2009-05-31 33 views
5

Có ai có chức năng tốt để xác thực địa chỉ email bằng SMTP trong PHP không? Ngoài ra, nó có đáng không? Nó có làm chậm máy chủ của tôi không?Chức năng xác thực email SMTP đơn giản cho php? Ngoài ra, nó có đáng không?

-> EDIT: Tôi đang đề cập đến một cái gì đó như thế này:

http://onwebdevelopment.blogspot.com/2008/08/php-email-address-validation-through.html

đó có nghĩa là để bổ sung cho xác nhận của cú pháp của địa chỉ email.

Có vẻ phức tạp và tôi hy vọng có cách làm đơn giản hơn.

+0

SMTP là giao thức chuyển thư. Bạn có ý gì khi "xác thực địa chỉ email của SMTP"? Vui lòng làm rõ câu hỏi của bạn. – rodion

Trả lời

2

Nếu bạn muốn kiểm tra nếu có một thiết bị trao đổi mail tại tên miền, bạn có thể sử dụng một cái gì đó như thế này:

/*checks if email is well formed and optionally the existence of a MX at that domain*/ 
function checkEmail($email, $domainCheck = false) 
{ 
    if (preg_match('/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+'. 
        '\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $email)) { 
     if ($domainCheck && function_exists('checkdnsrr')) { 
      list (, $domain) = explode('@', $email); 
      if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) { 
       return true; 
      } 
      return false; 
     } 
     return true; 
    } 
    return false; 
} 

Cách sử dụng:

$validated = checkEmail('[email protected]', true); 
0

Here's such a code, lấy từ các module drupal email_verify . Có một vài cuộc gọi cụ thể của Drupal ở đó, nhưng không mất nhiều thời gian để làm sạch nó cho một hàm PHP chung:

Cũng lưu ý rằng một số máy chủ lưu trữ chặn cổng đi 25, vì nó chủ yếu được sử dụng bởi người gửi spam. Nếu máy chủ của bạn đang thực hành một khối như vậy, bạn sẽ không thể sử dụng hình thức xác minh này.

0

Bạn được quyền sử dụng hàm PHP miễn phí is_email() để xác thực địa chỉ. Nó có sẵn here.

Nó sẽ đảm bảo rằng địa chỉ tuân thủ đầy đủ RFC 5321. Nó có thể tùy chọn cũng kiểm tra xem tên miền thực sự tồn tại.

Bạn không nên dựa vào trình xác thực để cho biết địa chỉ email của người dùng có thực sự tồn tại hay không: một số ISP cung cấp địa chỉ không tuân thủ cho người dùng của họ, đặc biệt ở các quốc gia không sử dụng bảng chữ cái Latinh. Xem thêm trong bài viết của tôi về xác thực email tại đây: http://isemail.info/about.

Các vấn đề liên quan