How does the plugin send mail?
Through wp_mail() , so it uses whatever WordPress itself is configured to use. The plugin dropped its own SMTP settings in 2.68.0; if you need SMTP, install an SMTP plugin and WP-EMail will follow it.
How can I customize my E-Mail link?
Edit the E-Mail Link Template under WP-Admin -> E-Mail -> Settings . It is the whole of the link’s markup, and it ships as:
<a href="%EMAIL_URL%" data-wp-email-popup="%EMAIL_POPUP%" title="Email This %POST_TYPE%" rel="nofollow">%EMAIL_ICON% Email This %POST_TYPE%</a>
Four variables are available:
- %EMAIL_URL% — the e-mail page or popup for this post
- %EMAIL_POPUP% — 1 when the E-Mail Link Type is the popup, 0 otherwise; it belongs inside the data-wp-email-popup attribute
- %EMAIL_ICON% — the envelope glyph, drawn inline
- %POST_TYPE% — the singular name of what is being viewed: Post , Page , or a custom post type’s own label
Leave one out to drop it. A template without %EMAIL_ICON% is a text link; one holding nothing but %EMAIL_ICON% is an icon, and the anchor’s title is then what a screen reader announces. Restore Default Template puts the shipped markup back.
An unrecognised variable is left in the markup as written rather than blanked, so a typo shows up on the page instead of silently emptying the link.
Setting the third parameter of email_link() to false returns the link instead of echoing it:
$email_link = function_exists( 'email_link' ) ? email_link( '', '', false ) : ''; echo $email_link;
The first two parameters are still accepted so that a theme written before 3.0.0 does not fatal, but they no longer do anything.
How can I show my E-Mail stats?
Two ways. Add the widget named “Email” under WP-Admin -> Appearance -> Widgets , or call one of the template tags from your theme.
How can I display the Most E-Mailed Posts?
Insert this into your theme:
if ( function_exists( 'get_mostemailed' ) ) { get_mostemailed( 'both', 10 ); }
The first parameter is what to list — post , page or both — and the second is how many.
How can I display the totals?
get_emails() for everything sent, get_emails_success() for what went out successfully, get_emails_failed() for what did not, and get_email_count() for one post:
if ( function_exists( 'get_emails' ) ) { get_emails(); } Visitors are told to wait before sending, or every log row shows the same IP
Your site is behind a reverse proxy or CDN — Cloudflare, a load balancer, nginx in front of Apache — so the address PHP sees is the proxy’s, not the visitor’s. Because the interval between e-mails is keyed on that address, every visitor shares one interval and each of them is told to wait for somebody else’s send.
The real address is in a forwarded header, but WP-EMail ignores those by default: any client can send one with any value, so trusting them blindly lets a visitor forge an address and bypass the interval entirely. Opt in only if a proxy you control actually sets the header.
If you know which header it is, name it under WP-Admin -> E-Mail -> Settings in the Header That Contains The IP field — for example HTTP_CF_CONNECTING_IP for Cloudflare. That is the narrowest option, and the one to prefer.
To trust the usual set instead ( X-Forwarded-For , CF-Connecting-IP and friends), add this to wp-config.php above the /* That's all, stop editing! */ line:
define( 'WP_EMAIL_TRUST_PROXY', true );
If you need to decide per request — say, only trust the header when the request arrives from your load balancer — use the filter instead:
add_filter( 'wp_email_trust_proxy', function () { return isset( $_SERVER['REMOTE_ADDR'] ) && '10.0.0.1' === $_SERVER['REMOTE_ADDR']; } );
With none of the three set, the plugin uses REMOTE_ADDR — correct on a plain host, and the proxy’s address behind one.
How do I hide remarks when viewing E-Mail logs in WP-Admin?
Add this to your wp-config.php :
define( 'WP_EMAIL_SHOW_REMARKS', false );
The constant was called EMAIL_SHOW_REMARKS before 3.0.0. The plugin only defines it if you have not, so your setting survives upgrades.
How can I keep some post text from being sent in the E-Mail?
Wrap it:
[donotemail]Text within this tag will not be displayed when emailed[/donotemail]
The text inside will not appear in the message, but it will still show on the post or page as normal. Note that if you also run WP-Print, text inside [donotemail] will not be printed either.
I made changes to the CSS, how can I keep them from being overridden on the next upgrade?
Put them in your theme’s own stylesheet. Everything the plugin styles sits under the .wp-email class, so .wp-email label { ... } in your theme is enough to override a rule, and your changes are never touched by an upgrade.
Before 3.0.0 the plugin looked for a copy of email-css.css in your theme directory and loaded that instead of its own. That is gone: it meant a theme had to reproduce the whole file to change one rule, and every upgrade that added a rule silently skipped those themes.
How can I make the E-Mail title different from the post title?
Add a custom field with the key wp-email-title , and it will be used as the E-Mail title.
How can I set a default or suggested remark for the user?
Add a custom field with the key wp-email-remark , and it will be placed in the remarks field on the E-Mail form.
What does the plugin store in my database?
Two option rows — wp_email_options for the settings and wp_email_version for the version it last ran — and one table holding the log. Deleting the plugin from the Plugins screen removes all three, along with every pre-3.0.0 row.