Move emails to selected IMAP Folder

David Carr

IMAP Tutorials PHP & MySQL

Moving email from one IMAP mailbox folder another is a simple process this short tutorial will show you how.

First create a form with a list the list will be populated with all the mailbox folders using imap_list. Remember you'll need an open connection to the server first in this example my stream is referenced in $mbox.

<form action="" method="post">
<?php
$list = imap_list($mbox, '{imap.example.org}', "*");
echo "<select name='moveMail'>n";
echo "<option value=''>Move selected emailsn";
if (is_array($list)) {
     foreach ($list as $val) {

     if (preg_match("/}/i", $val)) {
     $arr = explode('}', $val);
     }

     if (preg_match("/]/i", $val)) {
    $arr = explode(']/', $val);
    }

    $box = trim(stripslashes($arr[1]));
    $box = $arr[1];
    $boxval = str_replace('INBOX.', '', $box);
    echo "<option value=".imap_utf7_decode($box).">".imap_utf7_decode($boxval)."</option>n";

    }
}
echo "</select>n";
?>
<input type="submit" name="submit" value="Move to Folder" />
</form>

The following code will run as long as a folder has been selected and the form has been submitted. If no folder has been selected nothing will happen.

The selected email is passed to a variable called $mailbox which is passed to a function called imap_mail_move which will copy the email to the desired folder it also request the imap stream and the message number. Since the function copies the email we need to remove it from the current folder, this is easily done by calling imap_expunge which will remove any emails waiting to be deleted.

<?php
//move mail to mailbox
if(isset($_POST['moveMail']))
{
    if($_POST['moveMail'] !=''){
        $mailbox = $_POST['moveMail'];
        //move mail to new folder
        @imap_mail_move($mbox,$msgno,$mailbox);
        //delete selected email from current folder
        @imap_expunge($mbox);
    }
}
?>

 

Laravel Modules Your Logo Your Logo Your Logo

Become a sponsor

Help support the blog so that I can continue creating new content!

Sponsor

My Latest Book

Modular Laravel Book - Laravel: The Modular way

Learn how to build modular applications with Laravel Find out more

Subscribe to my newsletter

Subscribe and get my books and product announcements.

Fathom Analytics $10 discount on your first invoice using this link

© 2006 - 2024 DC Blog. All code MIT license. All rights reserved.