Código de PHP - Conectar a una cuenta de correo y descargar los mensajes de la bandeja de entrada

Imágen de perfil
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Conectar a una cuenta de correo y descargar los mensajes de la bandeja de entradagráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 5 de Febrero del 2019 por xve
1.192 visualizaciones desde el 5 de Febrero del 2019
Este simple código, sirve para comprobar si una cuenta de correo y su contraseña son correctos, y poder leer los mensajes de correo de su buzón de entrada utilizando IMAP.

Atención, al leer los correos los marca como leídos.

20120808
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 5 de Febrero del 2019gráfica de visualizaciones de la versión: 20120808
1.193 visualizaciones desde el 5 de Febrero del 2019
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?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;
    private $user;
    private $pass;
    private $port;
 
    // connect to the server and get the inbox emails
    function __construct($server,$user,$pass,$port=143) {
        $this->server=$server;
        $this->user=$user;
        $this->pass=$pass;
 
        $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);
    }
 
    // return true if connect() correctly
    function isConnected() {
        if($this->conn)
            return true;
        return false;
    }
 
    // get a specific message (1 = first email, 2 = second email, etc.)
    function getMessage($msg_index=NULL) {
        if (!$this->isConnected || 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];
    }
 
    // return the messages in inbox folder
    function getMessageNumber() {
        if (!$this->isConnected) {
            return;
        }
        return $this->msg_cnt;
    }
 
    // read all messages in the inbox folder
    function inbox() {
        if (!$this->conn) {
            return;
        }
 
        $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;
    }
}
 
// iniamos la clase
$mail=new Email_reader('servidor.com', 'usuario@dominio.com', 'xxxxxxxxxx');
 
if($mail->isConnected) {
    echo "Error en la conexion";
    return;
}
 
echo "Hay ".$mail->getMessageNumber()." mensajes en la bandeja de entrada";
 
// mostramos el contenido del primer mensaje
echo "<pre>";
print_r($mail->getMessage(1));
echo "</pre>";



Comentarios sobre la versión: 20120808 (1)

17 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar la versión: 20120808

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5055