Получение почты с сервера POP3 с использованием php

Я пытаюсь получить почту из POP3 (я использую почтовый сервер POP3, и я пытаюсь получить почтовый контент и хранить его в таблице базы данных для моего проекта.), Но я не могу найти для этого сценарий PHP, все только для IMAP.

Вы знаете, как получать почту с сервера POP3?

Благодарю.

Несколько удивительно, что библиотека imap PHP также может использоваться для работы с почтовыми ящиками POP3. Разумеется, большинство расширенных функций IMAP не будут работать (например, папки или выборка частей сообщения), но реализована базовая функциональность POP3.

Основное отличие – это строка опций, которую вы передаете imap_open – чтобы процитировать эту страницу:

// To connect to a POP3 server on port 110 on the local server, use: $mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password"); 

Кроме этого, это справедливое плавание – вам не нужно больше imap_open, imap_num_msg, imap_body, imap_delete и imap_close для базового доступа к POP3.

Функции IMAP PHP могут обрабатывать как коробки IMAP, так и POP3.

Эти функции позволяют работать с протоколом IMAP, а также с методами доступа NNTP, POP3 и локального почтового ящика.

Однако следует предупредить, что некоторые IMAP-функции не будут корректно работать с протоколом POP.

есть примечание пользователя, которое содержит интересный фрагмент. Вы можете взглянуть на него. Я ничего не могу сказать о его качестве, но с поверхности, все хорошо.


Ниже приведенное примечание:

Ибо все люди, приходящие сюда, молятся:

1) простой способ чтения MIME-приложений или

2) мертвый способ доступа к папкам POP3

Не смотрите дальше.

 function pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false) { $ssl=($ssl==false)?"/novalidate-cert":""; return (imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass)); } function pop3_stat($connection) { $check = imap_mailboxmsginfo($imap); return ((array)$check); } function pop3_list($connection,$message="") { if ($message) { $range=$message; } else { $MC = imap_check($mbox); $range = "1:".$MC->Nmsgs; } $response = imap_fetch_overview($mbox,$range); foreach ($response as $msg) $result[$msg->msgno]=(array)$msg; } function pop3_retr($connection,$message) { return(imap_fetchheader($connection,$message,FT_PREFETCHTEXT)); } function pop3_dele($connection,$message) { return(imap_delete($connection,$message)); } function mail_parse_headers($headers) { $headers=preg_replace('/\r\n\s+/m', '',$headers); preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)?\r\n/m', $headers, $matches); foreach ($matches[1] as $key =>$value) $result[$value]=$matches[2][$key]; return($result); } function mail_mime_to_array($imap,$mid,$parse_headers=false) { $mail = imap_fetchstructure($imap,$mid); $mail = mail_get_parts($imap,$mid,$mail,0); if ($parse_headers) $mail[0]["parsed"]=mail_parse_headers($mail[0]["data"]); return($mail); } function mail_get_parts($imap,$mid,$part,$prefix) { $attachments=array(); $attachments[$prefix]=mail_decode_part($imap,$mid,$part,$prefix); if (isset($part->parts)) // multipart { $prefix = ($prefix == "0")?"":"$prefix."; foreach ($part->parts as $number=>$subpart) $attachments=array_merge($attachments, mail_get_parts($imap,$mid,$subpart,$prefix.($number+1))); } return $attachments; } function mail_decode_part($connection,$message_number,$part,$prefix) { $attachment = array(); if($part->ifdparameters) { foreach($part->dparameters as $object) { $attachment[strtolower($object->attribute)]=$object->value; if(strtolower($object->attribute) == 'filename') { $attachment['is_attachment'] = true; $attachment['filename'] = $object->value; } } } if($part->ifparameters) { foreach($part->parameters as $object) { $attachment[strtolower($object->attribute)]=$object->value; if(strtolower($object->attribute) == 'name') { $attachment['is_attachment'] = true; $attachment['name'] = $object->value; } } } $attachment['data'] = imap_fetchbody($connection, $message_number, $prefix); if($part->encoding == 3) { // 3 = BASE64 $attachment['data'] = base64_decode($attachment['data']); } elseif($part->encoding == 4) { // 4 = QUOTED-PRINTABLE $attachment['data'] = quoted_printable_decode($attachment['data']); } return($attachment); } 

вы можете использовать pop3-почтовый клиентский класс, который может получать доступ к почтовым ящикам электронной почты, используя протокол POP3. Вы получите каждую часть тела электронной почты и можете сохранить ее в базе данных, даже если вы можете получить прикрепленные файлы, не удаляя исходную почту во входящих. Для получения дополнительной информации посетите http://www.phpclasses.org/package/2-PHP-Access-to-e-mail-mailboxes-using-the-POP3-protocol.html.

ЕСЛИ у вас есть сборка PHP с поддержкой IMAP, было бы легко увидеть документацию IMAP (особенно комментарии на этой странице) по адресу http://php.net/manual/en/book.imap.php

ОБНОВЛЕНИЕ: для уточнения моего ответа – как вы видите в комментариях и ссылках на функции, функции PHP imap_ * могут использоваться также для pop3.