IMAP Email display
December 11, 2003 1:03 PM Subscribe
I need a simple PHP/Perl script that displays the subjects of the last 10 emails in my inbox via an IMAP connection. I'd like to use it as an include on a personal portal page. [more inside]
I can't program on that level and everything I've found so far on the intarweb is a huge integrated portal suite that does way more than I need. Is there a script out there to do this or should I buy someone some beer to write it?
I can't program on that level and everything I've found so far on the intarweb is a huge integrated portal suite that does way more than I need. Is there a script out there to do this or should I buy someone some beer to write it?
Example 1 on php.net's imap_open page is a good start. I just ran it on my php host and they had all the require libs installed and it ran without a hitch.
In my case, it took a few seconds to run. You probably don't want to do this in real time, but rather as a period cron job and buffer the output.
posted by jschuur at 2:10 PM on December 11, 2003
In my case, it took a few seconds to run. You probably don't want to do this in real time, but rather as a period cron job and buffer the output.
posted by jschuur at 2:10 PM on December 11, 2003
If you'd prefer perl, it shouldn't be too difficult to repurpose this thing.
posted by xiffix at 2:18 PM on December 11, 2003
posted by xiffix at 2:18 PM on December 11, 2003
Something like this?
posted by boaz at 3:00 PM on December 11, 2003
<?php
// the server attributes, edit to yours
$mailhost = 'your.mailserver.com';
$username = 'yourusername';
$password = 'yourpassword';
$mail_stream = imap_open( "{{$mailhost}}INBOX", $username, $password);
$message_count = imap_num_msg($mail_stream);
$i = ($message_count > 10) ? $message_count - 10 : 1;
for (; $i < $message_count; $i++)
{
$mesg = imap_headerinfo( $mail_stream, $i);
// look at the imap_headerinfo() function ref
// to see all the info the $mesg object holds.
// and change the echo() func to meet your needs
echo("{$mesg->subject}<br>");
}
imap_close($mail_stream);
?>
It probably took me longer to weed out all the < and > characters when posting this than to write it. You'll doubtless have to play with the echo line to get the output formatted how you want it (or to read it into an array); this is strictly proof-of-concept here, but it works for me.posted by boaz at 3:00 PM on December 11, 2003
Response by poster: Ugg, OSX doesn't have that module compiled by default. This is gonna get ugly.
posted by machaus at 4:50 PM on December 11, 2003
posted by machaus at 4:50 PM on December 11, 2003
Try Mark Liyanage's PHP module. It's much more complete.
posted by boaz at 5:01 PM on December 11, 2003
posted by boaz at 5:01 PM on December 11, 2003
Response by poster: Yeah, I just installed that and it didn't break anything else. Sweet! Thanks for everyone's help.
posted by machaus at 10:00 PM on December 11, 2003
posted by machaus at 10:00 PM on December 11, 2003
« Older What does it mean to "eq" a recording? | I have an Apple iBook. Advice on getting an... Newer »
This thread is closed to new comments.
posted by majick at 1:09 PM on December 11, 2003