Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(1);
- class Email_reader
- {
- // imap server connection
- public $conn;
- // inbox storage and inbox message count
- private $inbox;
- private $msg_cnt;
- // email login credentials
- private $server = 'SERVER_NAME';
- private $user = 'USER_NAME';
- private $pass = 'PASSWORD';
- private $port = 110; // 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 = $this->msg_cnt; $i > 0; $i--) { // Get messages in reverse order
- for ($i = 0; $i <= $this->msg_cnt; $i++) {
- $in[] = array(
- 'index' => $i,
- 'header' => imap_headerinfo($this->conn, $i),
- 'body' => imap_fetchbody($this->conn, $i,"1"),
- 'structure' => imap_fetchstructure($this->conn, $i)
- );
- /*
- * Testing Purpose Only: Below code will limit the mails to given counter
- */
- // if($i == $this->msg_cnt){
- // break;
- // }
- }
- $this->inbox = $in;
- return $in;
- }
- function extract_msg_without_quoted_reply($mail_content){
- // Stripping Out Quoted Text
- $mail_content = preg_replace('/.*((^>+\s{1}.*$)+\n?)+/mi', '', $mail_content);
- // Stripping Out Unwanted elements
- $mail_content = str_replace('>:','',$mail_content);
- $mail_content = str_replace('>','',$mail_content);
- $mail_content = str_replace('<','',$mail_content);
- $mail_content = str_replace('wrote:','',$mail_content);
- $mail_content = trim($mail_content);
- $mail_content = str_replace("'", "\\'", $mail_content);
- return $mail_content;
- }
- }
- $obj = new Email_reader;
- echo "<pre>",print_r($obj->inbox()),"</pre>";die;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement