Cách đọc hộp thư Gmail bằng PHP

Bạn có thể kết nối với hộp thư đến email bằng các hàm IMAP của PHP. Trước tiên, bạn cần mở luồng IMAP tới hộp thư

1. Mở Luồng IMAP. imap_open[]

$inbox = imap_open[$mailbox, $username, $password] or die['Cannot connect to email: ' . imap_last_error[]];

Chuỗi $mailbox bao gồm một máy chủ và một đường dẫn hộp thư trên máy chủ này. Phần máy chủ được đặt trong dấu ngoặc nhọn '{' và '}'. Nó bao gồm tên hoặc địa chỉ IP của máy chủ, một cổng tùy chọn [có tiền tố là '. '] và một đặc tả giao thức tùy chọn [có tiền tố là '/']

Ví dụ: để kết nối với SSL IMAP có chứng chỉ tự ký, hãy thêm /ssl/novalidate-cert sau thông số kỹ thuật của giao thức

$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";

2. Nhận email. imap_search[]

Hàm này tìm kiếm hộp thư hiện được mở trong luồng IMAP và trả về một mảng thư phù hợp với tiêu chí tìm kiếm đã cho. Ví dụ: để trả lại tất cả các tin nhắn

$emails = imap_search[$inbox, 'ALL'];

Để đặt các email mới nhất lên trên cùng

rsort[$emails];

Nếu email được trả lại, bạn có thể chuyển qua từng email

if[$emails]
{
 rsort[$emails];
foreach[$emails as $msg_number]
 {
// Get email headers and body
 }
}

3. Tiêu đề của thư điện tử

Hàm imap_headerinfo[] được sử dụng để đọc tiêu đề email của số tin nhắn đã cho. Ví dụ,

$header = imap_headerinfo[$inbox, $msg_number];

Hàm này trả về FALSE nếu có lỗi hoặc nếu thành công, thông tin dưới dạng một đối tượng

  • $header->date
  • $header->subject
  • $header->toaddress
  • $header->to. Mảng đối tượng có thuộc tính. cá nhân, adl, hộp thư và máy chủ
  • $header->fromaddress
  • $header->từ. Mảng đối tượng có thuộc tính. cá nhân, adl, hộp thư và máy chủ
  • $header->reply_toaddress
  • $header->reply_to. Mảng đối tượng có thuộc tính. cá nhân, adl, hộp thư và máy chủ
  • $header->Size. Kích thước tin nhắn
  • $header->cập nhật. Ngày gửi thư trong thời gian Unix

Để lấy tên và email từ thuộc tính địa chỉ

$from = $header->from;
foreach [$from as $id => $object]
{
$fromname = $object->personal;
$fromaddress = $object->mailbox . "@" . $object->host;
}

4. Nội dung thư điện tử

Hàm imap_body[] đọc và trả về nội dung thư. Ví dụ,

$message = imap_body[$inbox, $msg_number];

Hàm này trả về một bản sao nguyên văn của nội dung thư. Để trích xuất các phần riêng lẻ của thông báo được mã hóa MIME nhiều phần, bạn phải sử dụng imap_fetchstructure[] để phân tích cấu trúc của nó và imap_fetchbody[] để trích xuất bản sao của một thành phần nội dung

imap_fetchbody[] lấy một phần cụ thể của nội dung thư. Nó trả về một phần cụ thể của nội dung thư đã chỉ định dưới dạng chuỗi văn bản. Các bộ phận cơ thể không được giải mã bởi chức năng này. Ví dụ,

________số 8

5. Cấu trúc của tin nhắn

Hàm imap_fetchstructure[] tìm nạp tất cả thông tin có cấu trúc cho một thông báo nhất định. Ví dụ,

Gần đây tôi đã làm việc trong dự án dịch ngôn ngữ vì tôi cần đọc email bằng PHP Từ hộp thư đến gamil dựa trên nội dung email tôi đã tạo dự án trong cơ sở dữ liệu…rất may là việc đọc email từ gmail dễ dàng hơn tôi nghĩ nhờ có tiện ích mở rộng IMAP

Đây là ví dụ đơn giản để lấy email từ gmail

GHI CHÚ. Điều này sẽ chỉ hoạt động nếu bạn đáp ứng các yêu cầu bỏ hoang

  • Phiên bản PHP phải là PHP5 hoặc mới nhất
  • Tiện ích mở rộng PHP IMAP phải được bật trong bản cài đặt PHP của bạn
  • IMAP phải được bật trong cài đặt Gmail của bạn

Cách bật IMAP trong PHP

Cách bật IMAP trong XAMPP

IMAP không được bật theo mặc định trong bản phân phối Xampp, vì vậy, để bật nó, hãy truy cập tệp

$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";
0 và tìm kiếm
$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";
1 và bằng cách xóa dấu chấm phẩy ở đầu dòng, nó sẽ được bật, nó phải được bật.
$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";
2

Cách bật IMAP trong Linux

Bạn có thể cài đặt mô-đun PHP5 IMAP bằng lệnh này

$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";
3

Tuy nhiên, nó không được bật theo mặc định, vì vậy hãy bật nó bằng

$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";
4

Để xem các thay đổi, hãy khởi động lại Apache

$mailbox = "{localhost:993/imap/ssl/novalidate-cert}INBOX";
5

Đây là tập lệnh PHP để truy xuất Email Gmail của bạn bằng IMAP

set_time_limit[4000]; 

// Connect to gmail
$imapPath = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'your_gmail_password';

// try to connect 
$inbox = imap_open[$imapPath,$username,$password] or die['Cannot connect to Gmail: ' . imap_last_error[]];

   /* ALL - return all messages matching the rest of the criteria
    ANSWERED - match messages with the \\ANSWERED flag set
    BCC "string" - match messages with "string" in the Bcc: field
    BEFORE "date" - match messages with Date: before "date"
    BODY "string" - match messages with "string" in the body of the message
    CC "string" - match messages with "string" in the Cc: field
    DELETED - match deleted messages
    FLAGGED - match messages with the \\FLAGGED [sometimes referred to as Important or Urgent] flag set
    FROM "string" - match messages with "string" in the From: field
    KEYWORD "string" - match messages with "string" as a keyword
    NEW - match new messages
    OLD - match old messages
    ON "date" - match messages with Date: matching "date"
    RECENT - match messages with the \\RECENT flag set
    SEEN - match messages that have been read [the \\SEEN flag is set]
    SINCE "date" - match messages with Date: after "date"
    SUBJECT "string" - match messages with "string" in the Subject:
    TEXT "string" - match messages with text "string"
    TO "string" - match messages with "string" in the To:
    UNANSWERED - match messages that have not been answered
    UNDELETED - match messages that are not deleted
    UNFLAGGED - match messages that are not flagged
    UNKEYWORD "string" - match messages that do not have the keyword "string"
    UNSEEN - match messages which have not been read yet*/

// search and get unseen emails, function will return email ids
$emails = imap_search[$inbox,'UNSEEN'];

$output = '';

foreach[$emails as $mail] {
	
	$headerInfo = imap_headerinfo[$inbox,$mail];
	
	$output .= $headerInfo->subject.'
'; $output .= $headerInfo->toaddress.'
'; $output .= $headerInfo->date.'
'; $output .= $headerInfo->fromaddress.'
'; $output .= $headerInfo->reply_toaddress.'
'; $emailStructure = imap_fetchstructure[$inbox,$mail]; if[!isset[$emailStructure->parts]] { $output .= imap_body[$inbox, $mail, FT_PEEK]; } else { // } echo $output; $output = ''; } // colse the connection imap_expunge[$inbox]; imap_close[$inbox];

Tôi hy vọng bạn thích bài đăng này, vui lòng bình luận bên dưới, đề xuất của bạn và các vấn đề nếu bạn gặp phải - chúng tôi ở đây để giải quyết vấn đề của bạn

Làm cách nào để đọc hộp thư đến Gmail trong PHP?

Cấu hình IMAP trong Môi trường PHP và Gmail .
Cài đặt thư viện PHP IMAP. .
Bật phần mở rộng thư viện IMAP trong tệp cấu hình PHP, xóa dấu chấm phẩy [;] ở đầu dòng. .
Tăng giới hạn cho chỉ thị max_execution_time trong php. tập tin ini
Khởi động lại apache để những thay đổi này có hiệu quả

Làm cách nào để đọc email bằng PHP?

Cách đọc email bằng PHP .
Mở Luồng IMAP. imap_open[] $inbox = imap_open[$mailbox, $username, $password] or die['Không thể kết nối với email. '. .
Nhận email. imap_search[].
Tiêu đề của thư điện tử. .
Nội dung thư điện tử. .
Cấu trúc của tin nhắn

Làm cách nào tôi có thể đọc Gmail bằng API Gmail trong PHP?

php'; . //email. Google. com'

Làm cách nào để kết nối Gmail với PHP?

Viết mã PHP để gửi email bằng Gmail SMTP .
Bước 1. Tải xuống thư viện PHPMailer từ liên kết github này. .
Bước 2. Viết mã PHP để tạo kết nối SMTP. .
Bước 3. Bao gồm các gói và tệp cho giao thức PHPMailer và SMTP. .
Bước 4. Khởi tạo PHP Mailer và đặt SMTP làm giao thức gửi thư

Chủ Đề