Can’t find what you’re looking for? Ask a question on the support forum.
To view the details one time go to the Postie admin page and click the “Debug” button and the details will be displayed on your screen.
See also Get Detailed Postie Output
WordPress cron (which Postie relies on) doesn’t run unless a page is accessed on the site. So if you send an email, but nobody accesses the site for 3 days Postie won’t be given the chance to fetch the email and publish the post.
To ensure that Postie runs smoothly on a low or no volume site you need to ensure that a page gets hit (any page is fine). Use something like cron + curl on Linux or install curl on Windows and use the Scheduled Tasks control panel or use one of the online cron services. See this page for more info.
It has been reported that enabling the “alternate” cron has worked for some people.
In your wp-config.php file add:
define('DISABLE_WP_CRON', true); define('ALTERNATE_WP_CRON', true);
add this before the line that says “That’s all, stop editing! Happy blogging.”
If Postie isn’t working right and you see “Fatal error: Out of memory…” in your logs it is time to increase how much memory PHP allocates to WordPress.
By default 40Mb is allocated.
To change your memory open up your
wp-config.php file and add one of the following settings
Increase PHP Memory to 64MB
Increase PHP Memory to 96MB
Please note, this setting may not work if your host does not allow for increasing the PHP memory limit–in that event, contact your host to increase the PHP memory limit. Also, note that many hosts set the PHP limit at 8MB.
Postie relies on the built-in WordPress Cron process to fetch emails and turn them into posts. However, WordPress requires that there be traffic to your site in order to run the Cron process.
The first check you must do to be sure the WordPress Cron is enabled (it is by default). Clicking Test Config on the Postie settings page will tell you if Cron is disabled. Look for
If you see
DISABLE_WP_CRON: On open your wp-config.php file and find a line like
if present, remove it. WordPress Cron should now work.
If you would prefer to have more fine-grained control of how Postie checks for mail or you can’t get the WordPress Cron to work, you can setup a cron job.
The software utility Cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general-purpose nature makes it useful for things like connecting to the Internet and downloading email at regular intervals. The name cron comes from the Greek word for time, χρόνος chronos.
The Easy Way
If your hosting company uses cPanel for managing your domain you can add a cron job through the cPanel interface. See the cron job docs then choose one of the commands listed below.
The Techie Way
Setup a cronjob to access http://<mysite>/wp-cron.php
Note this runs all the WordPress cron jobs if they are scheduled to run. Note also that if you have set Postie to check for emails every 30 minutes accessing this URL every 5 minutes will not speed things up, it will just ignore the request until 30 minutes have passed since the last check. Change the frequency by changing the Postie settings.
If your site runs on a UNIX/linux server, and you have shell access, you can enable mail checking using cron.
Example: This starts the wp-cron every ten minutes with wget
*/10 * * * * /usr/bin/wget -O /dev/null http://<mysite>/wp-cron.php >/dev/null 2>&1
The Unusual Way
We currently recommend that you access http://<mysite>/wp-cron.php rather than using http://<mysite>/?postie=get-mail as documented below, however, sometimes direct access is required. Please be aware that this method does not check to see if Postie is already running so it is possible to cause many email checks to be running at the same time which can cause all sorts of problems.
Setup a cronjob to access http://<mysite>/?postie=get-mail Note that every time you access this page Postie will run – it is like clicking Run Postie on the Admin screen.
Note that before Postie 1.6 the URL was: http://<mysite>/wp-content/plugins/postie/get_mail.php This URL is no longer supported.
As of version 1.5.5 you can click the “Debug” button to have Postie check for emails and report debugging information to the screen.
To always log debug info to a log file
You can enable a higher level of logging for Postie activity by setting the “Enable Debug Logging” setting on the Mailserver tab.
Once you turn this on Postie will display on screen and write to your log file some very detailed information about what is happening. This information can be very useful in diagnosing an issue.
Typically the WordPress log file is located at
If the debug.log file doesn’t show up then create a file debug.log in the wp-content directory and then “chmod 666 debug.log” or use cpanel to do the same thing.
It is possible that the error log is in a different location. Clicking Test Config will tell you where it is located.
There are 2 features that can be used to remove signatures.
The first one is the “Signature Patterns” setting. This is a list of regular expressions (RegEx) that are used to specifically look for signatures. These work best with the “plain” “Preferred Text Type” setting and if your email come from a variety of sources, but you may need to play with the RegExes to meet your needs.
The second method is the “Text for Message End” setting. This is a word or phrase that indicates the end of the post and that it and everything after it in the email should be ignored.
For example I get a newsletter that always has the text “I hope you enjoy the post.” after the real content. If I put that in “Text for Message End” everything from that text to the end of the email will be ignored.
This method works best if you have a single email source such as a newsletter.
It appears that Google mail (Gmail) will add a placeholder to the plain text version of your email that looks something like this: [image: Inline image 1]
This will occur for each image inserted “inline” which is the default.
This text is actually in the message, Postie is not adding it.
The best workaround is to change the “Preferred Text Type” setting to “Html”
If you can’t get Postie to work and you’ve checked all the other FAQs it is likely that you are experiencing a conflict between Postie and another plugin or your theme.
The first thing to try is switching your theme to one of the standard themes such as twentyfifteen. Now trying testing Postie again. If Postie works then you need to get in contact with your theme author to see what the problem is.
If Postie is still not working the next step is to disable all plugins except Postie. Test that Postie works with no other plugins active. If Postie still doesn’t work then something more serious is wrong and you will need to ask for help in the support forum.
Assuming Postie works with all the plugins disabled then next step is to enable one plugin at a time and test to see if Postie is still working. If Postie stops working then you know which plugin caused the conflict and you should contact the plugin author.
If your posts are blank except for attachments it is likely that you have your “Preferred Text Type” setting set to “plain” and you are using one of the following email clients:
- Apple Mail on iPhone/iPad
When you send an email your client has the option of sending plain (unstyled) email, HTML (styled) email or both. In the case of the above email clients they only send HTML email in some cases and if Postie is set to look for plain it won’t find any content. The fix is to turn on the “Text Fallback” option.
bbPress is a forum plugin for WordPress. Since most forums allow you to interact with them via email there are many people looking for this feature in bbPress. Out of the box bbPress does not have the ability to send or receive emails so many people look to Postie to help.
Unfortunately there are many difficulties in getting Postie to work with bbPress (or any other forum software) due to the fact that the incoming and outgoing emails need to have some way to hook them together so the right forum topic is updated. Postie only deals with incoming emails so it is not an ideal solution for this problem.
Luckily there is a ppPress plugin located here: https://github.com/rmccue/Falcon
There are some limitations, but it seems to be the only solution that supports a full round trip emails.
If you ever see the message “Could not update post in the database” when researching why an email didn’t show up here are the things to check:
- Click the Test Config button and look at the encoding section:
- default_charset, DB_CHARSET, WordPress encoding and Postie encoding should all the same and are ideally UTF-8.
- Verify that the DB_CHARSET actually matches the encoding on the database and the tables.
- Consider upgrading your version of PHP to 5.6 or newer. Some users have reported that the error goes away when upgrading from PHP 5.3 to 5.6.
- Consider upgrading MySQL. The function that detects the condition which causes this error relies on the database to do character set conversion/validation in some cases.
- Add a pre_post_update filter and inspect the values in the $data parameter.
If you are getting a message in the logs something like:
Socket error: 13 – Permission denied getemails: There was an error connecting to the server Permission denied
And you are running SELINUX then likely you need to give Apache permission to connect
You do this by changing the httpd_can_network_connect variable. The httpd_can_network_connect variable has this documentation: Allow HTTPD scripts and modules to connect to the network
Run the following command while logged into the same server that has Postie on it:
setsebool -P httpd_can_network_connect 1