Not a developer? Go to

Plugin and Theme Directory

Post Office v1.2.6

By Six Apart
Posted June 12, 2008, in Web Services.


Post Office is a plugin for Movable Type that allows users to post to their blog via email. It works by connecting Movable Type to an existing email account, like GMail or any POP or IMAP compliant mailbox, and periodically scanning for messages to post.

Depending upon your configuration preferences, each user can be given a unique email address to post an entry to, uniquely identifying them and the blog they want to post to when sending an email.



The latest version of the plugin can be downloaded from the its Github repo. Packaged downloads are also available if you prefer.

Copy the contents of PostOffice/plugins into /path/to/mt/plugins/

run-periodic-tasks must be configured. Further details can be found on the page Setting up run-periodic-tasks.


Navigate to Tools > Plugins > Post Office > Settings and enter in the connection info for your email provider as well as author and entry preferences. Note that this plugin can be configured at the system or blog level.

Email Destination Configuration

The following fields configure Post Office’s connection to the address that users send new entries to.

  • Destination Inbox: The email address authors send posts to when they want Movable Type to post those messages to this blog.

  • Mail Server Type: POP3 or IMAP

  • Email Account Host: The host for the email account which Movable Type uses to post to this blog. Example:

  • Use SSL: check if the host requires an encrypted connection. (If using Gmail or Google Apps, check Use SSL.)

  • Email Account Username: The username for the email account which Movable Type uses to post to this blog. (If using Gmail or Google Apps, specify the email address as in the Destination Inbox field.)

  • Email Account Password: The password for the email account which Movable Type uses to post to this blog.

Entry and Author Configuration

  • Default Post Status: This determines if entries are automatically published as they are received (“Published”) or if they must be manually published (“Draft”).

  • Embed Attachments: By default, a photo attached to an email will become an asset, an asset-entry relationship will be created, and the asset will be embedded at the end of the entry. Uncheck this option to not embed the asset (but still turn attachments into assets and create the asset-entry relationship).

  • Allow all MT Authors from this Blog to Post: If you check this box, Movable Type will allow all of the authors of this weblog to post via email using the email address in their author profile.

  • Require Web Services Password in Address: If you check this box, Post Office will require users to include their Web Service Password as an extension on their e-mail address. So the “From” address should contain a “+” followed by their Web Services Password value. This provides additional authentication for incoming messages. (i.e., user+nnnnn@…)

  • Email Addresses Allowed to Post: Movable Type will post messages received from these email addresses. Separate multiple addresses with a comma.

  • Allow Any Email: This option will simply publish any email received in the destination inbox. Users are not authenticated in any way, making posting completely anonymous. The Default Author is assigned entry ownership in this case.

  • Email Alias Matches MT Username: Checking this box will result in Post Office looking for a matching MT user based on the alias portion of the sender email address (the part before the @ sign). For example, if the email was sent by, Post Office would check to see if there is an MT Author with the username johnsmith. If a match is found, the entry will be posted as that MT user (if the user has posting permissions in the blog). If no match is found, Post Office will still try to look for a user with a matching email address.

  • Default Author: This is the “default” author, the person to whom entries are assigned if no other valid author exists. Email addresses specified in the above field will be attributed to this author if they are not valid Authors.


Before you can start emailing entries to your configured blog, you need to grab a specially-crafted email address: click the Write Entry button in the configured blog and scroll to the bottom of the screen. Look for the text “Email to ”. Click this link and/or save the provided email address to your address book.

Notice that the format of this address is not quite as you might expect. For example, if your Destination Inbox email address is you may noticed that the address in the “Email to ” link is In this example, “5” references the blog ID.

If you’ve selected the “Require Web Services Password in Address” configuration option you may notice that your web services password is part of the address in the “Email to ” link. If this feature is enabled note that the “Email to ” address is unique to each user.

Finally, now that you’ve got this email address you can send an email to test posting!

Drafting an Email Entry

Post Office will look at your email contents to create an entry formatted just as you require.

The subject of your email becomes the Entry Title. The body of your email becomes the Entry Body. If any files are attached to your email, they will be converted into Assets.

The subject of your email can also specify a category and tags for your entry. A basic subject line that becomes the Entry Title might look like this:

My first emailed entry!

Specifying a category in addition to the Entry Title is easy: include brackets around the category name. If the specified category doesn’t exist, it will be created for you when the message is processed. Only one category may be specified.

[Movable Type Tests] My first emailed entry!

Additionally, specifying a category, Entry Title, and tags is easy. Specify tags with a leading hashmark; many tags can be specified.

[Movable Type Tests] My first emailed entry! #PostOffice #Email

Lastly, send your email!


  • Mail::IMAPClient (for IMAP)
  • Mail::POP3Client (for POP) (included with Post Office)
  • Email::Address (included with Post Office)
  • Email::MIME (included with Post Office)
  • IO::Socket::SSL


Movable Type versions: Verified





rm_blogger on June 20, 2008, 4:36 p.m. Reply

I have it installed and once I got the proper perl modules installed it quit throwing errors but it’s not doing anything and the email link that shows under the create entry screen is incorrect.

Any way to troubleshoot this?

Arindam Ganguly on July 22, 2008, 1:09 p.m. Reply

is the email the one you setup for this purpose? is it pop3 compliant? gmail provides this.

if it is..the email in the entry page should be the same with a +number in it. the number is the id of your blog. so the plugin knows where to post to

Cindi Knox on August 30, 2008, 6:13 p.m. Reply

If I set up a mailbox called mailboxname, and the email in the entry page is mailboxname+1, the mailserver is going to reject mail to

Cindi Knox on August 30, 2008, 8:26 p.m. Reply

Add requirement:

Your e-mail server MUST ignore the +n added to the local-part.

To verify, set up an email address ( Send an e-mail ( If the e-mail is successfully received (at, your e-mail server is capable of working with this plugin.

Gautam Patel on September 3, 2008, 7:50 p.m. Reply

A few things to note:

  1. The plus-style email addressing is only required if you have multiple blogs running off a single installation
  2. Not all service providers accept plus-style email addressing. Gmail does. Use gmail.
  3. When configuring PO, for “host” enter, and tick ON SSL required.

thegreenpages on September 20, 2008, 7:18 p.m. Reply

Thanks for the tip Gautam Patel!

Minh Nguyá»…n on March 10, 2009, 10:54 p.m. Reply

There’s plenty of unofficial documentation at the Movable Type Wiki.

Rob G on April 1, 2009, 10:13 p.m. Reply

I’ve installed PostOffice and the additional software but can’t get the Settings option on the Plugin configuration page, only Info.

Help please!

spierce on August 14, 2009, 6:56 a.m. Reply

We have installed the PostOffice plugin and have our default post status set to draft but it still automatically posts. Can anyone help?

Tom on August 27, 2009, 1:13 p.m. Reply

Has anyone made this go with the Enterprise version? I’m trying everything using a pop3 Gmail account, but no posts ever show up. I’ve tried using the “+” syntax, not using it, setting the permission on the top-level plugin screen and the blog-level plugin screen.

The docs say it runs a process “periodically.” What’s the period? Can it be modified? And what is the process? I don’t see it anywhere in the crontabs.

I’ve got to say, too, that as usual the documentation is sketchy, confusing and incomplete. For example, there’s nothing called an “API Key” in my enterprise version. I have a blog ID number and a Web Services Password, nothing else. Can’t we at least have some consistent nomenclature to work against?

anina .net on September 8, 2009, 2:32 a.m. Reply

is there anyone who has gotten this plugin to work on 4.21?

are there any other mobile blogging with photo possibilities out there? i wished that this plugin would work but i cannot find anyone who has been able with it’s documentation (very sketchy) to make it work.

any other free options out there?

hanschuh123 on October 30, 2009, 1:40 a.m. Reply


if I have correctly understood the documentation of the postOffice plug then it doesnt supported to filter tags out of a email.

but how to solve this problem now, is maybe a ready solution existing or not? certainly i cant find anything.

can someone give me please a little bit information?


Alex Teslik on October 17, 2010, 11:29 p.m. Reply

Man, the move to github has been a complete trainwreck for the people who actually want to use these plugins. Is it anyone’s job to make sure the links on these plugin pages (1) actually work and (2) go to the latest version of these plugins? The download link goes to PostOffice version 1.0, but version 1.1 has been on github since March! :(

The really sad news is that I only realized that after I downloaded 1.0 here and hacked on it for two days. I was going to make a patch, but now I don’t have time to port in the 1.1 stuff and make a patch, so forget it. You can download what I did here and patch it yourself:

The only file I changed from 1.0 is the module. Here is what I added/fixed:

  • detect html or text email format and set the line breaks for the entry automatically. This makes text emails appear correctly, and html emails appear correctly without having to change any blog settings.

  • process message parts in a single loop (instead of two loops as in 1.1) while still replacing cid and loc links with the correct asset. The structure allows for future modifications, such as the automatic embedding of youtube videos, quicktime movies, audio files, etc.

  • auto-rotate email images based on EXIF tags. This allows iphone users to mail images to their blog and have them appear correctly. The EXIF tag is updated after rotation so that Mobile Safari and some other browsers do not rotate the image again based on the Orientation tag.

  • deposit asset files in dated folders like 2010/10/17/asset.jpg instead of placing them all at the site root level of the blog and making one hell of a mess.

Tested with iPhone 4, GMail, and OpenWebMail. HTML and text formats. MTOS 4.23.

Alex Teslik on October 17, 2010, 11:30 p.m. Reply

A link to github anywhere on this page would be helpful as well.

Alex Teslik on October 17, 2010, 11:41 p.m. Reply

I should also mention that the parts processing in my version is recursive to any depth, like an email message. This ensures more accurate re-creation of the email as a post entry.

vincent on March 4, 2011, 4:16 a.m. Reply

Does this plugin work with MT 5.04? Why not add an option to check the mail box manually so that we can make sure whether it works or not?

classified ads on July 16, 2012, 7:27 a.m. Reply

Thank Gautam Patel, I got it!

Leave a Comment