2012-11-19 20 views
6

Có cách nào để xác minh vị trí id email tồn tại trong miền hay không?cách kiểm tra xem id email có tồn tại trong miền mà không gửi bất kỳ thư nào bằng cách sử dụng java

Tôi có chức năng sau: nó chỉ kiểm tra tên miền hợp lệ, nhưng tôi cần kiểm tra địa chỉ email hợp lệ trong miền mà không gửi bất kỳ thư nào.

public boolean isValidEmailAddress(String email) { 
    boolean result = true; 

    try { 
     InternetAddress emailAddr = new InternetAddress(email); 
     emailAddr.validate(); 

    } catch (AddressException ex) { 
     result = false; 
    } 
    return result; 
} 
+0

Bạn có nghĩa là email từ tổ chức nội bộ của mình không? Nếu vậy, biết máy chủ thư được sử dụng sẽ hữu ích. – SJuan76

Trả lời

1

Âm thanh như bạn cần SMTP VRFY command:

Lệnh này sẽ yêu cầu máy chủ SMTP nhận xác minh rằng một cho tên người dùng email có giá trị. Máy chủ SMTP sẽ trả lời bằng tên đăng nhập của người dùng. Bạn có thể tắt tính năng này trong sendmail vì cho phép nó có thể là lỗ hổng bảo mật. Lệnh VRFY có thể được sử dụng để thăm dò tên đăng nhập trên hệ thống. Xem phần bảo mật bên dưới để biết thông tin về cách tắt tính năng này.

Lưu ý các vấn đề bảo mật ở trên.

+0

Cảm ơn bạn Brian Agnew vì câu trả lời của bạn.Nhưng cách sử dụng lệnh này trong hàm java. – ashu

+0

Bạn có thể tạo kết nối đến cổng 25 trên máy chủ SMTP của bạn (thử bằng telnet) và chỉ cần thực hiện 'địa chỉ VRFY' –

4

Đây là một mã nguồn có thể làm được nhiều loại xác minh, tôi đã sử dụng nó trong nhiều năm qua:

http://www.rgagnon.com/javadetails/java-0452.html

Lưu ý: xem chức năng isAddressValid() trong trang để xác nhận đầy đủ.

+0

Cảm ơn bạn Alexandre Lavoie vì câu trả lời của bạn.I đã giới thiệu liên kết đó chỉ kiểm tra miền hợp lệ nhưng không kiểm tra hợp lệ địa chỉ email . – ashu

+0

Hàm isAddressValid() thực hiện tất cả các thử nghiệm, cũng cố gắng kết nối với máy chủ SMTP như @Brian Agnew nói. Nhưng sử dụng thận trọng, nó không phải lúc nào cũng hoạt động! Nói chung tôi chỉ xác nhận cú pháp email, tồn tại miền và MX tồn tại trong miền đó. –