<?php

    
function remove_gubins($stringer) {
        
/* twitter doesn't seem to like < > or " so these are removed.
           This function was contributed by si */
        
$removal = array("<"">""\"");
        
$additional = array("("")""");
        
$clean str_replace($removal$additional$stringer);
        return 
$clean;
    }

    
/**
      * This function updates the status of a given twitter account.
      * $status is a string containing the new status. 
      */
    
function update_status($status) {
        
$username "account2"/* put your twitter username here */
        
$password "password"/* put your twitter password here */
        
$status htmlentities(remove_gubins($status));
        
$curl_handle curl_init('http://twitter.com/statuses/update.xml');
        
curl_setopt($curl_handleCURLOPT_POST1);
        
curl_setopt($curl_handleCURLOPT_POSTFIELDS"status=$status");
        
curl_setopt($curl_handleCURLOPT_USERPWD"$username:$password");
        
$buffer curl_exec($curl_handle);
        
curl_close($curl_handle);
    }

    
$user   "user@gmail.com"/* your gmail username in the form user@gmail.com */
    
$pass   "gmail_password"/* your gmail password */
    
$connection imap_open("{imap.gmail.com:993/imap/ssl}INBOX"$user$pass);

    
$headers imap_headers($connection);
    for(
$i 1$i sizeof($headers)+1$i++) {
        
$mailHeader imap_headerinfo($connection$i);
        
$from $mailHeader->fromaddress;
        
$subject strip_tags($mailHeader->subject);
        
$id trim($mailHeader->message_id);
        list(
$from$discard) = explode(' <'$from); /* remove the email address */
        
$from remove_gubins($from); /* remove any < > " */

        /* mysql database details: */
        
$dbhost 'localhost';
        
$dbuser 'db_username';
        
$dbpass 'db_password';

        
$conn mysql_connect($dbhost$dbuser$dbpass) or die ('Error connecting to mysql');
        
$dbname 'Email'/* the database name */
        
mysql_select_db($dbname);
        
$query "SELECT COUNT(*) AS blah FROM TwitterEmail WHERE email='$user' AND id='$id'";
        
$result mysql_fetch_array(mysql_query($query));
        if (
$result['blah'] == 0) { /* if this email has not already been checked */
            /* when first running this program, it's a good idea to comment out the above line
               so that all your current inbox is inserted into the database. */
            
$query 'INSERT INTO TwitterEmail VALUES (\'' $user '\', \'' $id '\');';
            
mysql_query($query);
            
$query 'SELECT last_subject FROM TwitterSubject WHERE email =\'' $user '\';';
            
$result mysql_fetch_array(mysql_query($query));
            echo 
"Subject: $subject\n RESULT: " $result['last_subject'] ."\n";    
            if (
$subject == $result['last_subject']) {
                echo(
"Subject Matched\n");
                
$subject .= ' - ';
            }
            
$subj mysql_real_escape_string($subject);
            
$query "INSERT INTO TwitterSubject (email, last_subject) VALUES ('$user', '$subj')";
            
$query .="ON DUPLICATE KEY UPDATE last_subject='$subj';";
            
mysql_query($query);
          
$status 'FROM: ' $from ' SUBJECT: ' $subject;
            echo 
$status "\n";
            
update_status($status) or die ('Unable to update status');
        }
        
mysql_close($conn);
    }
?>