Last active
January 22, 2020 14:51
-
-
Save bachors/8d8a1aa482bb3eabdff1 to your computer and use it in GitHub Desktop.
Reading emails from a IMAP mailbox - PHP example http://ibacor.com/demo/reading-emails-php/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<title>IMAP mailbox - iBacor</title> | |
<!-- Custom style --> | |
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap.min.css"> | |
<style> | |
pre { | |
white-space: pre; | |
white-space: pre-wrap; | |
word-wrap: break-word; | |
} | |
</style> | |
</head> | |
<body> | |
<div class="alert alert-info alert-dismissable">Tutorial: <a style="color:#333;text-decoration:underline" href="http://ibacor.com/blog/reading-emails-from-a-imap-mailbox-php-example/" target="_BLANK">Reading emails from a IMAP mailbox - PHP example</a></div> | |
<?php | |
error_reporting(0); | |
// Multiple email account | |
$emails = array( | |
array( | |
'no' => '1', | |
'label' => 'Inbox Email 1', | |
'host' => '{mail.domain.com:143/notls}INBOX', | |
'username' => 'mail1@domain.com', | |
'password' => 'xxxxxxxxxx' | |
), | |
array( | |
'no' => '2', | |
'label' => 'Inbox Email 2', | |
'host' => '{mail.domain.net:143/notls}INBOX', | |
'username' => 'mail2@domain.net', | |
'password' => 'xxxxxxxxxx' | |
) | |
// bla bla bla ... | |
); | |
foreach ($emails as $email) { | |
$read = imap_open($email['host'],$email['username'],$email['password']) or die('<div class="alert alert-danger alert-dismissable">Cannot connect to yourdomain.com: ' . imap_last_error().'</div>'); | |
$array = imap_search($read,'ALL'); | |
if($array) { | |
$html = ''; | |
rsort($array); | |
$html.= '<div class="panel panel-default"> | |
<div class="panel-heading"> | |
'.$email['label'].' | |
</div> | |
<div class="panel-body"> | |
<div class="panel-group" id="accordion">'; | |
foreach($array as $result) { | |
$overview = imap_fetch_overview($read,$result,0); | |
$message = imap_body($read,$result,0); | |
$reply = imap_headerinfo($read,$result,0); | |
$html.= ' <div class="panel panel-default"> | |
<div class="panel-heading"> | |
<h4 class="panel-title"> | |
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#'.$email['no'].$result.'"> | |
<span class="subject">'.substr(strip_tags($overview[0]->subject),0,50).'.. </span> | |
<span class="from">'.$overview[0]->from.'</span> | |
<span class="date">on '.$overview[0]->date.'</span> | |
</a> | |
</h4> | |
</div> | |
<div id="'.$email['no'].$result.'" class="panel-collapse collapse"> | |
<div class="panel-body"> | |
<pre>'.$message.'<hr>From: '.$reply->from[0]->mailbox.'@'.$reply->from[0]->host.'</pre> | |
</div> | |
</div> | |
</div>'; | |
} | |
$html.= '</div> | |
</div> | |
</div>'; | |
echo $html; | |
} | |
imap_close($read); | |
} | |
?> | |
<!-- Javascript --> | |
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script> | |
</body> | |
</html> |
its working for me.
Good Coding and working perfectly....
Works perfectly :)
I had found solution, Error is with this line
$message = imap_body($read,$result,0);
Now, I am using
$message = imap_body($read,$result,1.2);
To receive body content in text/html format
Below i had given datails of available options. This might some one
()Root Message Part (multipart/related)
(1) The text parts of the message (multipart/alternative)
(1.1) Plain text version (text/plain)
(1.2) HTML version (text/html)
(2) The background stationary (image/gif)
Code runs, but message body and subject are not from the same message. Any ideas?
Great article,
I have a issue cannot display message body in accordion section. Any suggestion.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
code too very bad