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
DISABLE_WP_CRON: Off
If you see DISABLE_WP_CRON: On
open your wp-config.php file and find a line like
define('DISABLE_WP_CRON', true);
if present, remove it. WordPress Cron should now work.
External Cron
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.
From Wikipedia
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 you are using a hosting company that doesn’t allow you access to cron or you don’t want to mess with it you can use a service like SetCronJob or EasyCron to access http://mysite.com/wp-cron.php
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.com/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.
Linux
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.com/wp-cron.php >/dev/null 2>&1
Windows
You will need to install wget or curl.
Then use the Task Scheduler control panel to call wget or curl.
Examples:
wget http://mysite.com/wp-cron.php
curl http://mysite.com/wp-cron.php
The Unusual Way
We currently recommend that you access http://mysite.com/wp-cron.php rather than using http://mysite.com/?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.com/?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.com/wp-content/plugins/postie/get_mail.php This URL is no longer supported.