Hướng dẫn dùng imapping trong PHP
Mở ĐầuVới sự phát triển chóng mặt và sự tiện lợi của các framework hiện nay thì việc tìm ra được một thư viện để hỗ trợ việc lấy mail từ Google, Yahoo... là không quá khó. Tuy nhiên, số nhiều chúng ta thường chỉ quan tâm vào việc các thư viên đó dùng như nào và hỗ trợ tốt cho các chức năng mình cần mà không hề quan tâm đến sâu bên trong các thư viện đó đang hoạt động như nào (ngay cả mình cũng thế ). Tuy nhiên khi nói đến đây, mình đoán nhiều bạn sẽ bảo: "Tại sao phải cần đi sâu vào core của các thư viện ?. Thư viên sinh ra thì mình cứ dùng thôi". Và đến một ngày, dự án yêu cầu chức năng lấy mail từ Google, Yahoo... về hệ thống, với một thư viện thì việc đó đã được hỗ trợ tận răng, tuy nhiên đời không như là mơ khi vấn đề xảy ra với một số lượng mail lớn, thư viện dùng rất chậm và đôi khi time-out. Lúc này yêu cầu là phải cải thiện lại tốc độ lấy mail, không còn cách nào khác mình đã phải nhảy vào đọc core của thư viện đó và phát hiện ra nó dùng một extension của PHP để lấy mail từ hệ thống. Đó chính là php-imap.Định Nghĩa và Các Hàm Cơ Bản Trong php-imapphp-imap là một extension cho phép bạn hoạt động với giao thức IMAP, cũng như các phương thức truy cập hộp thư cục bộ NNTP, POP3 và cục bộ.
$mailbox là đường link dẫn đến hòm thư bạn muốn lấy dữ liệu. VD: {localhost:993/imap/ssl}INBOX $username là tên đăng nhập của tài khoản mail của bạn. $password là mật khẩu của tài khoản mail của bạn.
$imap_stream chính là kết quả trả về sau khi bạn connect đến hòm mail bởi imap_open. Hàm sẽ trả về thông tin như: Date: thời gian hệ thống hiện tại được định dạng theo »RFC2822 Driver: giao thức được sử dụng để truy cập hộp thư này: POP3, IMAP, NNTP Mailbox: Tên hòm thư Nmsgs: Số lượng mail đang có trong hòm thư Recent: số lượng mail gần đây trong hòm thư
$imap_stream chính là kết quả trả về sau khi bạn connect đến hòm mail bởi imap_open. $sequence Một mô tả trình tự tin nhắn. Bạn có thể liệt kê các tin nhắn mong muốn bằng cú pháp X, Y hoặc truy xuất tất cả các tin nhắn trong một khoảng thời gian với cú pháp X: Y (X và Y là số tin nhắn) ví dụ: Sequence: 1:10 nghĩa là bạn sẽ lấy mail có số tin nhắn 1 đến mail có số tin nhắn 10 $options squence sẽ chứa một chuỗi các chỉ số thông báo hoặc UID, nếu tham số này được đặt thành FT_UID.
$imap_stream: hính là kết quả trả về sau khi bạn connect đến hòm mail bởi imap_open. $msg_number: số tin nhắn
$imap_stream: hính là kết quả trả về sau khi bạn connect đến hòm mail bởi imap_open. $msg_number: số tin nhắn ``$section```: Số phần. Đó là một chuỗi các số nguyên được phân tách theo khoảng thời gian chỉ mục vào danh sách bộ phận cơ thể theo thông số kỹ thuật của IMAP4 $options: squence sẽ chứa một chuỗi các chỉ số thông báo hoặc UID, nếu tham số này được đặt thành FT_UID.
Trên là các hàm cơ bản mình đã tìm hiểu áp dụng để lấy được thông tin mail từ Gmail, Yahoo.... Còn rất nhiều hàm hỗ trợ của php-imap extension. Các bạn có thể tìm hiểu thêm qua link tham khảo dưới: https://www.php.net/manual/en/book.imap.php |