Skip to main content
Glama

delete_email

Remove emails permanently from your mailbox by marking them as deleted and expunging them from the server. Specify the message ID or UID to target specific emails for deletion.

Instructions

Delete email (mark as deleted and expunge)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
folderNoFolder containing the email (default: INBOX)INBOX
message_idNoMessage ID (sequence number)
uidNoUnique ID of the message

Implementation Reference

  • The core implementation of the delete_email logic within the EmailMove class, which marks emails with the \\Deleted flag in the IMAP folder.
    def delete_email(
        self, folder: str, uids: int | list[int], expunge_immediately: bool = False
    ) -> bool:
        """
        Delete emails from a folder.
    
        This marks emails with \\Deleted flag. If expunge_immediately
        is True, permanently deletes them. Otherwise, they will be
        deleted when the folder is expunged or closed.
    
        Args:
            folder: Folder containing the emails
            uids: Email UID or list of UIDs to delete
            expunge_immediately: If True, permanently delete now
    
        Returns:
            True if successful
    
        Raises:
            EmailMoveError: If operation fails
    
        Example:
            >>> move = EmailMove(conn)
            >>> move.delete_email('INBOX', [1, 2, 3])
            True
        """
        if not folder:
            raise EmailMoveError("Folder name is required")
    
        # Select folder
        self._select_folder(folder)
    
        uid_string = self._validate_uids(uids)
    
        try:
            # Add \\Deleted flag
            response = self._conn.uid("STORE", uid_string, "+FLAGS (\\Deleted)")
    
            if response[0] != b"OK":
                error_msg = (
                    response[1][0].decode("utf-8", errors="replace")
                    if response[1]
                    else "Unknown error"
                )
                raise EmailMoveError(f"Failed to delete email: {error_msg}")
    
            # Expunge if requested
            if expunge_immediately:
                self.expunge(folder)
    
            return True
    
        except EmailMoveError:
            raise
        except Exception as e:
            raise EmailMoveError(f"Failed to delete email: {str(e)}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AdJIa/mail-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server