• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

RocketGeek

Home of WP-Members, The Original WordPress Membership Plugin

  • WordPress Plugins
    • WP-Members
      • FAQs
      • Quick Start
      • Documentation
      • Extensions
    • Advanced Options
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Download Protect
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Invite Codes
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • MailChimp Integration
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • PayPal Subscriptions
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Salesforce Web-to-Lead
    • Security
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Text Editor
      • Purchase the Plugin
      • Get the Pro Bundle
    • User List
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • User Tracking
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Memberships for WooCommerce
    • WordPass
  • Blog
    • Basics
    • Tips and Tricks
    • Filters
    • Actions
    • Code Snippets
    • Shortcodes
    • Design
    • Release Announcements
  • Store
    • Cart
    • Checkout
  • Contact
  • Log In
  • Show Search
Hide Search
Home » Plugins » WP-Members » Documentation » FAQs » Email troubleshooting

Email troubleshooting

WP-Members uses the native WP function wp_mail to send all emails. This is a native WordPress function and is generally robust.

Once the plugin generates an email, the wp_mail() function will attempt to send it.

A lot of things can happen after that so just because it was handed off by wp_mail(), that does not equate to being “sent.”

If you are on shared hosting, you are likely at the mercy of an email queue with several hundred other accounts also on your shared server.  There is usually no way for you to track an email once it is generated and sent to the queue when you are on shared hosting.

It should also be noted that just because your WP site successfully sends one type of email (such as a new registration or password reset), that does not mean ALL emails will make it through the process. Your sending host (and the receiver) will evaluate every email that goes out to check whether it meets their rules.

Use an SMTP account

It is recommended that you configure WordPress to send email through an SMTP account.   This will give you a much more robust process because you will be sending email through an actual account on an email server instead of relying on your webserver.  You will be able to track emails and they will have a higher probability of being sent/received.  This recommendation is based on my many years as both a WordPress developer AND running my own WP sites.  (I also spent some time as one of the component maintainers of the Mail Component in WordPress Core.)

In my opinion, the best method to send using an SMTP account is to set up your account details and credentials as part of your wp-config.php file.  I have an article on how to do that as well as some example code you can use on Github.  If you cannot do this or are uncomfortable applying this kind of customization, there are a lot of plugins available to run wp_mail() through your SMTP account. I recommend WP Mail SMTP. It has been around a long time and has a good track record of success.

Using SMTP will solve most problems, both on the sending and receiving end.

If you can’t use SMTP

If you cannot use SMTP, you will need to understand something about how emails sent via web scripts work.  Unless you are running your own hardware, your host will likely require that you be sending email from an actual email address. WordPress will by default send from wordpress@yourdomain.com.  It is possible that if this is not an actual address on your account, your host may not allow this.

Even if your host does allow email aliases, the receiver may choose to reject it even before it gets to any spam filter on your specific account.

For best results, send using an actual address.  WP-Members has a setting for you to set the “from” address and “from name” in the email settings.  Use an actual address using a domain that matches your site domain.

Similar to the above, some hosts and receivers require that an email have proper headers.  WordPress does not apply “from” addresses in the email header by default.  WP-Members has a filter for the emails that it sends so you can add a “from” address to the header.

Another trick that helps make your email look less like spam and more like a legitimate email is to make sure the “from” address is the same as the “send” address so that the return path is the same as the address the message is coming from.

Some other links/info

For more information on wp_mail(), how to troubleshoot, and how to set up SMTP, please see this post on my personal blog.

Subscribers to the support site have access to the Send Test Emails extension for the plugin which will allow you to send tests of each of the plugin’s emails.  Get this extension from the downloads area.

  • Getting Started
  • Recommended WordPress® Settings
  • Plugin Settings
    • Options
    • Fields
    • Dialogs
    • Emails
    • New Feature Settings
  • Managing Content
    • Restricting Posts
    • Restricting Pages
    • Show Excerpts
    • Custom Post Types
  • Managing Users
    • Import Users
    • Export Users
    • Edit Users
    • Search Users
  • Login
  • Registration
    • Choosing Fields
    • Create a Registration Page
    • Moderating Registration
    • Using CAPTCHA
    • Removing Registration Options
  • User Profile
  • Membership Products
    • Membership Properties
    • Membership Levels
  • Menus
    • Individual Menu Items
    • Logged In Menus
    • Login/Logout Menu Link
  • Customizing Emails
    • Email Address
    • Email Content
    • Email Format
    • Email Shortcodes
    • Email Troubleshooting
  • Customizing Forms
    • Create a Custom Stylesheet
    • Using the WordPress Customizer
    • Login Form HTML
    • Registration Form HTML
    • Widget Login Form HTML
  • Translation and Localization
    • Maintain a custom translation file
    • Filter untranslated strings
    • Multi-language Considerations
  • Shortcodes
    • Pages and Forms
    • Login Status
    • User Fields
    • Email
    • Other Shortcodes
  • WP-CLI Commands
  • API Functions
  • Filter Hooks
  • Action Hooks
  • FAQs
    • Email troubleshooting
    • The plugin isn’t blocking my content
    • How can I prevent registration spam?
    • How to add a shortcode
    • How to apply login redirects
    • Are files protected?
    • Why can’t users log in?
    • Why does reCAPTCHA v3 fail?
    • Troubleshooting Really Simple Captcha
    • Why do I get a 403 error?
    • How do I use code snippets?
    • My changes aren’t showing up
    • How to hide the “Admin Bar”
    • How to add a forgot password link
    • Password reset doesn’t show any fields
    • Domain not included in the password reset link
    • There was an error processing the form
    • Hidden vs. Restricted
  • Demo Videos
  • How to Request Support
  • Copy Settings for Support
  • Hosting Recommendations

Ready to get started?

Join Today!

© 2023 · butlerblog.com · RocketGeek is built using WordPress, WP-Members, and the Genesis Framework

  • butlerblog.com
  • WP-Members Support Subscription
  • Privacy Policy
  • Terms of Service
  • Refund Policy