Giả sử bạn đã thu thập một số email từ người dùng của mình theo thời gian mà không gửi cho họ email xác minh. Bây giờ, bạn muốn sử dụng những email này để liên hệ với người dùng của mình, gửi bản tin hoặc chỉ cần đảm bảo rằng các email bạn thu thập là hợp lệ và tồn tại. Trong trường hợp này, bạn nên tìm cách phát hiện các email không hợp lệ và sai và yêu cầu những người dùng này cung cấp cho bạn một email hợp lệ. Cách tiếp cận đơn giản nhất là gửi email xác minh cho từng người dùng
Vấn đề với cách tiếp cận sau này là bạn đang yêu cầu người dùng của mình chủ động thực hiện một hành động mà lẽ ra không cần thiết nếu bạn đã gửi email xác minh sau khi họ đăng ký. Ngoài ra, nhiều người dùng có thể không hoạt động, lười biếng hoặc nghi ngờ về liên kết xác minh mà họ nhận được. Nói cách khác, gửi email xác minh cho tất cả họ có thể không phải là cách tốt nhất
Ngược lại, bạn nên xem xét việc chạy tập lệnh xác thực email của mình cho bạn và sau đó chỉ liên hệ với những người dùng có email không vượt qua bài kiểm tra. Vì vậy, hãy xem cách xây dựng tập lệnh để xác minh xem email có hợp lệ và tồn tại trong PHP hay không
Cách xác thực và xác minh email trong PHP
Có một số dịch vụ trực tuyến cho phép bạn xác minh xem email có hợp lệ về mặt cú pháp và tồn tại hay không. Tại đây, bạn sẽ tìm hiểu cách xác thực và xác minh email bằng hai cách tiếp cận. Cái đầu tiên không liên quan đến Trình soạn thảo, trong khi cái thứ hai sử dụng phụ thuộc Trình soạn thảo
Lưu ý rằng không có phương pháp nào trong số này là hoàn hảo. Nhưng mặc dù chúng hiếm khi có thể thất bại, nhưng chúng vẫn đại diện cho một cách tiếp cận hiệu quả để xác thực hầu hết các email của bạn
Bắt đầu nào
1. Xác thực email mà không cần Composer
Cách tiếp cận đầu tiên này không yêu cầu Trình soạn thảo và dựa trên xác thực SMTP. Tìm hiểu thêm về cách thức hoạt động của phương pháp xác minh sự tồn tại của email này tại đây
Cụ thể, bạn có thể xác minh xem email có tồn tại theo cách tiếp cận SMTP hay không bằng cách sử dụng lớp SMTP_validateEmail
từ repo GitHub bên dưới
//github.com/semplon/php-smtp-email-validation
Mặc dù đây là một dự án cũ nhưng nó vẫn hoạt động như một bùa mê. Vì lớp này không phân biệt giữa lỗi cú pháp và lỗi tồn tại, bạn cần xác định một hàm để xác minh xem email có đúng cú pháp trong PHP không. Bạn có thể đạt được điều này như sau
Hàm validateEmail[]
ở trên sử dụng hàm filter_var[]
PHP để xác thực địa chỉ email. Nếu bạn chuyển bộ lọc tùy chọn FILTER_VALIDATE_EMAIL
cho nó, filter_var[]
sẽ xác thực địa chỉ email được lưu trữ trong $email
theo quan điểm cú pháp và trả về dữ liệu đã lọc nếu thành công hoặc false
nếu thất bại. Sau đó, giá trị được trả về bởi filter_var[]
được chuyển đổi thành boolean và cuối cùng được trả về bởi hàm validateEmail[]
Giờ đây, bạn đã có mọi thứ cần thiết để xác thực, xác minh và gửi email bằng PHP mà không cần Composer. Bạn có thể đạt được điều này như hình dưới đây
Lưu ý rằng trong ví dụ trên, lớp SMTP_validateEmail
và các thư mục con và tệp của nó được đặt trong thư mục
composer require "masroore/verifyemail"
22. Xác thực email với Composer
Tại đây, bạn sẽ học cách sử dụng thư viện VerifyEmail PHP. Như đã nêu trên trang GitHub chính thức, VerifyEmail cho phép bạn xác minh địa chỉ email để biết đúng cú pháp và sự tồn tại
Bạn có thể cài đặt nó bằng lệnh Composer sau
composer require "masroore/verifyemail"
Thư viện hỗ trợ 4 cấp độ xác thực khác nhau
composer require "masroore/verifyemail"
3. xác thực địa chỉ email bằng cách thực hiện kiểm tra cú phápcomposer require "masroore/verifyemail"
4. xác minh địa chỉ email bằng cách kiểm tra xem máy chủ SMTP MX chịu trách nhiệm gửi email có tồn tại hay không bằng cách sử dụng phần tên miền của chuỗi địa chỉ emailcomposer require "masroore/verifyemail"
5. xác minh địa chỉ email bằng cách kiểm tra kết nối với máy chủ SMTP MXcomposer require "masroore/verifyemail"
6. xác minh địa chỉ email bằng cách kiểm tra kết nối SMTP, gửi các lệnhcomposer require "masroore/verifyemail"
7 vàcomposer require "masroore/verifyemail"
8, đồng thời gửi chuỗi địa chỉ email đã cho trong lệnhcomposer require "masroore/verifyemail"
9. Đây là phương pháp đầy đủ nhất và là phương pháp được sử dụng theo mặc định
Mỗi trong số chúng có thể được thiết lập với thuộc tính SMTP_validateEmail
0 được xác định trong lớp SMTP_validateEmail
1
Bạn có thể sử dụng SMTP_validateEmail
2 để xác thực và xác minh email như sau
Một lần nữa, một vài dòng mã là đủ để xác thực và xác minh email của bạn
Phần kết luận
Ở đây, chúng tôi đã xem xét cách triển khai tập lệnh PHP để xác thực danh sách email và xác minh xem chúng có tồn tại không. Điều này có thể đạt được bằng nhiều cách. Và trong bài viết này, chúng ta đã học cách thực hiện với thư viện bên ngoài và thư viện Composer. Trong cả hai trường hợp, một vài dòng mã là đủ