mailtool is a diagnostic utility for handling various operations on mailboxes. mailtools main uses include: display the list of folders in a mailbox; displaying list of messages in a mailbox; and copying mailboxes.
The following mailboxes can be accessed by mailtool:
imap://userid@server[/options]An IMAP account. mailtool will prompt for the login password.
imaps://userid@server[/options]An IMAP account accessed via an encrypted SSL connection.
pop3://userid@server[/options]A POP3 account. mailtool will prompt for the login password.
pop3s://userid@server[/options]A POP3 account accessed via an encrypted SSL connection.
maildir:pathA local maildir mailbox. path specifies the maildirs location relative to the home directory (NOT the current directory).
mbox:pathLocal mbox mail folders. path specifies the path to an mbox folder file, or a directory containing mbox folders, relative to the home directory (NOT the current directory).
inbox:pathLocal mbox mail folders, like mbox:path; additionally, the system spool mailbox is automatically copied to $HOME/Inbox, which is accessible as folder INBOX.
The name of a remote IMAP or POP3 server may be followed by one or more options that control various settings of the IMAP or POP3 connection:
/cramDo not open the account unless the server supports secure password authentication. Secure password authentication verifies the accounts password using a challenge/response authentication mechanism (where the label "cram" comes from). The actual password is never actually transmitted to the server, and therefore cannot be intercepted while in transit over an untrusted network.
Secure password authentication is not supported by all servers. This option may not work with some servers. This option does not enable secure password authentication, it only mandates its use. If the server supports secure password authentication, it will be used even without the /cram option. Traditional userid/password authentication will be used only if the server does not implement secure password authentication. The /cram option makes secure password authentication mandatory.
The /cram option is marginally useful even with encrypted server connections. The secure password authentication never sends the explicit password to the server. Encryption makes it theoretically impossible to recover the password from an encrypted data connection; but with secure authentication the password is never sent over the connection in the first place (the passwords validity is certified by exchanging certain mathematical calculations between the server and the client). If the server is compromised, the compromised server will not receive the account password (unless the password is recovered from the server in other ways).
/imapDo not use the SMAP if the server claims the availability of this experimental mail access protocol, and fall back to IMAP compatibility mode (this option is meaningful only with imap:// and imaps:// URLs).
/notlsDo not upgrade a plain connection to an encrypted one. This option is primarily used for testing and debugging purposes. Sometimes this option might be useful with servers that claim to offer encryption, but are unable to do so when taken up on their offer.
/novalidate-certDo not validate the servers SSL certificate when using an encrypted connection. Normally the mail servers SSL certificate must be validate when using an encrypted connection. The certificates name must match the servers name, and the certificate must be signed by a trusted certificate authority.
The encrypted connection normally fails if the certificate cannot be validate. Validation requires that a list of trusted certificate authorities must be known and configured. Its simply impossible to know which certificate authorities are valid without an explicit list of valid, known, trusted, certificate authorities. If a trusted authority list is not configured, no certificate can be validated. If the servers certificate is a self-signed certificate (this is often used for testing purposes), or if its not signed by a known authority, the encrypted connection fails.
This /novalidate-cert option disables certificate validation. The encrypted connection will be established even if the servers certificate would otherwise be rejected.
This option is applicable even when an encrypted IMAP or POP3 connection is not explicitly requested. Many mail servers are capable of automatically upgrading unencrypted connections to a fully-encrypted connection. If a mail server claims to be able to use encryption, then theres no reason not to use it. The result is that all encryption certification requirements still apply even when encryption is not explicitly requested.
-tree shows a hierarchical representation of mail folders in account. -list generates a simple folder listing, one folder name per line. -tree shows folder names, while -list shows the actual mail folder path in account.
mailtool -tree | -list account
mailtool -tree imap://email@example.com/novalidate-cert/cram
-create creates a new subfolder of folder in account. The new subfolders name is name. -createdir creates a new folder directory (a folder that contains other folders).
mailtool -create | -createdir folder name account
mailtool -create INBOX.lists announcements maildir:Maildir
This command creates a new folder announcements as a subfolders of INBOX.lists in the local maildir.
-delete deletes an existing folder in account.
mailtool -delete | -deletedir folder account
-deletedir deletes a folder directory.
mailtool -delete INBOX.lists.announcements maildir:Maildir
-renames renames an existing oldfolder. The folder is renamed as name, as a subfolder of folder. folder may be an empty string if the folder should be moved to the top level of accounts folder hierarchy.
mailtool -rename oldfolder folder name account
mailtool -rename INBOX.lists.announcements INBOX.lists Announcements maildir:Maildir
The folder INBOX.lists.announcements is renamed to INBOX.lists.Announcements. This slightly unusual way to rename folder allows folders to be relocated in the mail accounts folder hierarchy.
-index downloads and prints a summary of all messages in folder, in account. The summary shows the senders and recipients address, the messages subject, and size.
mailtool -index folder account
mailtool -index INBOX imap://firstname.lastname@example.org/novalidate-cert
-remove removes message #n (ranging from 1 to the number of messages in the folder) in folder, in account. The message numbers may be obtained by using -index.
mailtool -remove folder n account
n may be a comma-separated list of message numbers, in strictly numerically increasing order. -remove confirms the list of messages to remove and issues a Ready: prompt. Press ENTER to remove the messages.
mailtool -remove INBOX 28,31 imap://email@example.com/novalidate-cert
-filter is a combination of -index and -remove. folders index is downloaded, and the summary of each message is shown, one message at a time. Each messages summary is followed by a prompt: Delete, Skip, or Exit. Pressing D removes the message, S leaves the message unchanged, and E leaves the remaining messages unchanged.
mailtool -filter folder account
mailtool -filter INBOX pop3://firstname.lastname@example.org/novalidate-cert
-filter is not meant to be used with large folders. Unless messages are removed quickly, the connection to the server may be disconnected for inactivity.
This command copies an entire folder, fromfolder in fromaccount to a new folder, tofolder (which will be created, if necessary) in toaccount. Optionally, -recurse specifies that all subfolders of fromfolder should also be copied.
mailtool [-recurse] -tofolder tofolder -copyto toaccount -fromfolder fromfolder fromaccount
mailtool -tofolder INBOX -copyto maildir:Maildir \ -fromfolder "INBOX" imap://email@example.com/novalidate-cert
mailtool -recurse -tofolder INBOX.converted_mail \ -copyto maildir:Maildir -fromfolder "mail" \ imap://firstname.lastname@example.org/novalidate-cert
This example first copies the INBOX on the IMAP server to $HOME/Maildir, then copies subfolders of mail on the IMAP server to the converted_mail subfolder in the maildir.
mailtool -tofolder INBOX -copyto maildir:Maildir \ -fromfolder "INBOX" inbox:mail
mailtool -recurse -tofolder INBOX.converted_mail \ -copyto maildir:Maildir -fromfolder "" mbox:mail
This example first copies $HOME/Inbox (accessed as the INBOX folder in inbox:mail) to $HOME/Maildir, then copies mbox folders from $HOME/mail to the converted_mail subfolder in the maildir.
Mail accounts that contain hybrid folders (folders that contain both messages and subfolders) can only be copied to account types that also support hybrid folders: either local maildirs, or to remote servers that support hybrid folders.