Библиотека PHP для чтения электронной почты

В настоящее время я использую библиотеку SwiftMailer для отправки электронной почты, но, к сожалению, она предназначена только для отправки, а не для получения. Мне интересно... есть ли аналогичная библиотека для подключения через IMAP к учетной записи электронной почты и чтения электронной почты (IE дает мне возможность просматривать электронную почту). Я знаю, что здесь находится набор функций PHP IMAP: http://us3.php.net/manual/en/book.imap.php

Но мой вопрос: кто-нибудь знает об альтернативной библиотеке или классе-оболочке IMAP для получения/просмотра всех ваших электронных писем?

Я серьезно ничего не мог найти, спасибо заранее.


person TheFrack    schedule 08.08.2012    source источник
comment
Я программирую утилиту, которая мне не поможет. Если бы я хотел узнать о доступных почтовых клиентах, я бы написал на SuperUser...   -  person TheFrack    schedule 09.08.2012
comment
Попробуйте github.com/MonstaApps/PHP-IMAP-Fetcher. Направлять или получать электронные письма, входить в MySQL и сохранять вложения.   -  person Daniel Williams    schedule 20.12.2017


Ответы (2)


см. ниже ур: --

http://www.php.net/mailparse

http://garrettstjohn.com/entry/reading-emails-with-php/

или попробуйте: -

Чтение электронной почты с помощью PHP

<?php

    class Email_reader {

        // imap server connection
        public $conn;

        // inbox storage and inbox message count
        private $inbox;
        private $msg_cnt;

        // email login credentials
        private $server = 'yourserver.com';
        private $user   = '[email protected]';
        private $pass   = 'yourpassword';
        private $port   = 143; // adjust according to server settings

        // connect to the server and get the inbox emails
        function __construct() {
            $this->connect();
            $this->inbox();
        }

        // close the server connection
        function close() {
            $this->inbox = array();
            $this->msg_cnt = 0;

            imap_close($this->conn);
        }

        // open the server connection
        // the imap_open function parameters will need to be changed for the particular server
        // these are laid out to connect to a Dreamhost IMAP server
        function connect() {
            $this->conn = imap_open('{'.$this->server.'/notls}', $this->user, $this->pass);
        }

        // move the message to a new folder
        function move($msg_index, $folder='INBOX.Processed') {
            // move on server
            imap_mail_move($this->conn, $msg_index, $folder);
            imap_expunge($this->conn);

            // re-read the inbox
            $this->inbox();
        }

        // get a specific message (1 = first email, 2 = second email, etc.)
        function get($msg_index=NULL) {
            if (count($this->inbox) <= 0) {
                return array();
            }
            elseif ( ! is_null($msg_index) && isset($this->inbox[$msg_index])) {
                return $this->inbox[$msg_index];
            }

            return $this->inbox[0];
        }

        // read the inbox
        function inbox() {
            $this->msg_cnt = imap_num_msg($this->conn);

            $in = array();
            for($i = 1; $i <= $this->msg_cnt; $i++) {
                $in[] = array(
                    'index'     => $i,
                    'header'    => imap_headerinfo($this->conn, $i),
                    'body'      => imap_body($this->conn, $i),
                    'structure' => imap_fetchstructure($this->conn, $i)
                );
            }

            $this->inbox = $in;
        }

    }

    ?>
person Abid Hussain    schedule 08.08.2012
comment
Я получил Notice: Unknown: SECURITY PROBLEM: insecure server advertised AUTH=PLAIN (errflg=1) in Unknown on line 0 ?? - person TheCrazyProfessor; 03.05.2017

Вероятно, наиболее надежным будет использование классов электронной почты Zend:

Текущая версия

Zend 1.12 (без пространств имен, подходит для устаревших приложений)

person Tomáš Fejfar    schedule 14.05.2014