{"id":20430,"date":"2026-11-02T12:29:38","date_gmt":"2026-11-02T11:29:38","guid":{"rendered":"https:\/\/stage.surver.nl\/kennisbank\/wordpress-email-komt-niet-aan\/"},"modified":"2026-11-03T12:16:10","modified_gmt":"2026-11-03T11:16:10","slug":"wordpress-emails-arent-being-delivered","status":"publish","type":"kennisbank","link":"https:\/\/stage.surver.nl\/en\/kennisbank\/wordpress-email-komt-niet-aan\/","title":{"rendered":"Emails from WordPress Are Not Being Delivered: Fixing the Issue with SMTP, SPF, DKIM, and DMARC"},"content":{"rendered":"<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/stage.surver.nl\/wp-content\/uploads\/2026\/11\/kennisbank-wordpress-email-komt-niet-aan-v2.jpg\" alt=\"Emails from WordPress Are Not Being Delivered: Fixing the Issue with SMTP, SPF, DKIM, and DMARC\" class=\"wp-image-20488\" srcset=\"https:\/\/stage.surver.nl\/wp-content\/uploads\/2026\/11\/kennisbank-wordpress-email-komt-niet-aan-v2.jpg 1024w, https:\/\/stage.surver.nl\/wp-content\/uploads\/2026\/11\/kennisbank-wordpress-email-komt-niet-aan-v2-300x188.jpg 300w, https:\/\/stage.surver.nl\/wp-content\/uploads\/2026\/11\/kennisbank-wordpress-email-komt-niet-aan-v2-768x482.jpg 768w, https:\/\/stage.surver.nl\/wp-content\/uploads\/2026\/11\/kennisbank-wordpress-email-komt-niet-aan-v2-18x12.jpg 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A customer calls to say they haven\u2019t received an order confirmation, or you discover that messages from your contact form have been ending up in the spam folder for weeks. Emails sent from WordPress often don\u2019t arrive because they\u2019re sent via the PHP mail function without authentication. Resolve this by using SMTP or a transactional email service and ensuring your domain has correct SPF, DKIM, and DMARC records. Below, you\u2019ll learn how to identify the cause, set up SMTP, and ensure recipients recognize your domain as a trustworthy sender. The background information is provided in <a href=\"https:\/\/stage.surver.nl\/en\/knowledge-base\/domain-dns-email-wordpress\/\">How Domains, DNS, and Email Are Connected<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"waarom-wordpress-mails-niet-aankomen\">Why WordPress Emails Don't Get Delivered<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress emails aren't being delivered because, by default, WordPress sends them without logging into an email server. The feature <code>wp_mail()<\/code> uses the web server\u2019s PHP mail function, which simply sends the message out. Gmail and Outlook then see an email that appears to come from your domain, but that doesn\u2019t originate from a server authorized to send email on behalf of that domain. Think of it like a letter with no sender and no postmark. It ends up in the pile of suspicious mail\u2014which, in the case of email, is the spam folder\u2014or the email is rejected entirely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I usually see one of four causes, often in combination. The first is that WordPress isn\u2019t logging in to a mail server. The second is a sender address that doesn\u2019t belong to your own domain, such as a Gmail address or the visitor\u2019s address. Third, SPF, DKIM, or DMARC are missing from your domain, or they\u2019re incorrect. And finally, many hosting providers restrict outgoing email via PHP to prevent a hacked site from sending spam.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"eerst-checken-waar-gaat-het-mis\">First, check: where is the problem?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The quickest way to find the cause is to follow a set troubleshooting sequence before you start installing plugins. This is the sequence I follow myself.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Check the recipient's spam folder.<\/li>\n\n<li>Send a test email, for example, using the test feature of your SMTP plugin or the Check Email plugin.<\/li>\n\n<li>Enable an email log to see if WordPress is actually sending the email.<\/li>\n\n<li>Check the sender's address under <strong>Settings &gt; General<\/strong> and in your form plugin.<\/li>\n\n<li>Test your domain on internet.nl or with Mail-Tester.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The email log often tells you right away what\u2019s wrong, if you know what the error messages mean. If it says that authentication failed, then either the password is incorrect or your provider is asking for an app password. A connection timeout indicates an incorrect port or a port that\u2019s blocked. And the code 550 5.7.1 means the recipient doesn\u2019t recognize your server as an authorized sender. My rule of thumb is simple. If the email ends up in the spam folder, you have an authentication problem; if it isn\u2019t sent at all, the issue lies in the configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wordpress-mail-versturen-via-smtp\">Sending WordPress Emails via SMTP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SMTP (Simple Mail Transfer Protocol) is the protocol that an email program uses to connect to an email server in order to send messages. With an SMTP plugin, WordPress does exactly the same thing as Outlook on your laptop. There are three options, and which one is right for you depends on how much email your site sends.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"optie-1-via-de-mailbox-van-je-eigen-domein\">Option 1: via your own domain's mailbox<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Install an SMTP plugin, such as WP Mail SMTP, FluentSMTP, or Post SMTP.<\/li>\n\n<li>Enter your email provider's SMTP server.<\/li>\n\n<li>Select port 587 with STARTTLS, or port 465 with SSL if 587 doesn't work.<\/li>\n\n<li>Enter the username and password for an existing mailbox.<\/li>\n\n<li>Lock the sender's address, for example, using <strong>Force From Email<\/strong> in WP Mail SMTP, so that other plugins don't overwrite it.<\/li>\n\n<li>Send a test email.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">To do this, you'll need an email account on your own domain, for example through <a href=\"https:\/\/stage.surver.nl\/en\/managed-hosting\/email-hosting\/\">email hosting<\/a>. This setup works well for a website with a contact form and minimal email traffic. A Surver mailbox can send up to 75 emails per hour.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"optie-2-via-een-transactionele-e-maildienst\">Option 2: via a transactional email service<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Transactional email is automated email sent in response to a visitor\u2019s action, such as an order confirmation, a password reset, or a form submission confirmation. A specialized service delivers these more effectively because it builds a solid sending reputation, keeps logs, and properly handles bounces (undeliverable emails). Well-known examples include Brevo, Mailgun, and Amazon SES. My opinion on this is quite firm: An online store should not send order confirmations using the standard PHP mail function; a transactional email service is not a luxury but a necessity.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"optie-3-via-google-workspace-of-microsoft-365\">Option 3: via Google Workspace or Microsoft 365<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you're already using Google Workspace or Microsoft 365 for your business email, WordPress can also send email through that platform. You'll need an OAuth connection or an app password, and you'll be subject to their sending limits. Both packages, <a href=\"https:\/\/stage.surver.nl\/en\/services\/google-workspace\/\">Google Workspace<\/a> and <a href=\"https:\/\/stage.surver.nl\/en\/services\/microsoft-365\/\">Microsoft 365<\/a>, which, by the way, you can also purchase through Surver. You can read about how to weigh the options in <a href=\"https:\/\/stage.surver.nl\/en\/knowledge-base\/zakelijke-email-kiezen\/\">Email hosting, Google Workspace, or Microsoft 365<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"spf-dkim-en-dmarc-zo-herkent-de-ontvanger-jouw-domein\">SPF, DKIM, and DMARC: How the Recipient Verifies Your Domain<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SPF, DKIM, and DMARC are three TXT records in your DNS that tell recipients whether an email is actually from you. You can read about how DNS works in <a href=\"https:\/\/stage.surver.nl\/en\/knowledge-base\/what-is-dns-and-why-is-it-important\/\">What is DNS?<\/a>, and the function of TXT records is described in <a href=\"https:\/\/stage.surver.nl\/en\/knowledge-base\/dns-records-uitgelegd\/\">DNS Records Explained<\/a>. SPF is a DNS record that specifies which servers are authorized to send email on behalf of your domain. Think of it as the guest list at the door. An example is <code>v=spf1 include:_spf.example-service.nl ~all<\/code>. DKIM is a digital signature included in every email, which the recipient verifies using a public key in your DNS. You receive that key from your email service provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DMARC is a DNS record that tells the recipient what to do if SPF or DKIM fails, and where to send reports. A secure start is <code>v=DMARC1; p=none; rua=mailto:dmarc@jouwdomein.nl<\/code>. When setting this up, I keep seeing the same mistakes. People create a second SPF record instead of extending the existing one, even though there can only be one. Or they forget to add the sending service to the SPF record. What\u2019s less well known is that SPF is limited to 10 DNS lookups, so anyone who adds a lot of services using the \u201cinclude\u201d directive will end up with an invalid record without realizing it. And never set up DMARC right away <code>p=reject<\/code>. Start with <code>p=none<\/code>, review the reports, and then escalate to quarantine and reject. You can track your reputation with Gmail in Google Postmaster Tools.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"contactformulieren-en-woocommerce-mails-goed-instellen\">Setting Up Contact Forms and WooCommerce Emails Correctly<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Form and order emails are most effectively delivered when they\u2019re sent from an address on your own domain. For a contact form, enter the visitor\u2019s address in the \u201cReply-To\u201d field, not the \u201cFrom\u201d field. If the form sends emails on behalf of the visitor, DMARC will fail by definition, because your server is not authorized to send emails on behalf of their domain. Be sure to include a CAPTCHA as well, because spam sent through your form damages your domain\u2019s reputation. Read more at <a href=\"https:\/\/stage.surver.nl\/en\/knowledge-base\/setting-up-a-wordpress-contact-form\/\">Setting Up a Contact Form in WordPress<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In WooCommerce, you can check the sender's name and address under <strong>WooCommerce &gt; Settings &gt; Emails<\/strong>. After making any changes, place a test order and check whether the order confirmation and invoice arrive in both Gmail and Outlook. If you'd like to have this checked periodically, you can do so via <a href=\"https:\/\/stage.surver.nl\/en\/services\/woocommerce-maintenance-management\/\">WooCommerce Management<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At Surver, we have our own solution for this. Our <a href=\"https:\/\/stage.surver.nl\/en\/add-us\/\">transactional email<\/a> It's called Dropper, and you can purchase it as an add-on to your hosting package, for example from <a href=\"https:\/\/stage.surver.nl\/en\/managed-hosting\/wordpress\/\">Managed WordPress Hosting<\/a>. If your online store or form exceeds the 75 emails per hour limit of a standard email account, Dropper is the way to go. If you still have questions about your records after that, our support team will be happy to help. If you\u2019d rather outsource the setup and maintenance of your site entirely, check out <a href=\"https:\/\/stage.surver.nl\/en\/services\/wordpress-maintenance-management\/\">WordPress Maintenance and Management<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"veelgestelde-vragen\">Frequently Asked Questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do I need an SMTP plugin?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, for virtually any site that sends form or order emails. The only exception is if your email already goes through an authenticated transactional service that handles the sending itself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is SMTP for WordPress free?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you use your own domain's mailbox, there's no extra cost, and SMTP plugins have free versions. If you send more emails\u2014at Surver, more than 75 per hour per mailbox\u2014you'll need a transactional email service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is DMARC mandatory?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It's not required by law, but Gmail and Yahoo have required it since 2024 for senders who send large volumes of email. My advice is to always have at least one DMARC record with <code>p=none<\/code> so that you receive reports and can see who is sending emails on behalf of your domain.<\/p>","protected":false},"excerpt":{"rendered":"<p>Een klant belt dat hij geen orderbevestiging heeft gekregen, of je ontdekt dat berichten uit je contactformulier al weken in de spamfolder belanden. E-mails vanuit WordPress komen vaak niet aan omdat ze via de PHP-mailfunctie zonder authenticatie worden verstuurd. Los dit op met SMTP of een transactionele e-maildienst en correcte SPF-, DKIM- en DMARC-records op [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":20488,"template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"kennisbank_categorieen":[63,54],"class_list":["post-20430","kennisbank","type-kennisbank","status-publish","has-post-thumbnail","hentry","kennisbank_categorieen-domein-dns","kennisbank_categorieen-e-mail"],"acf":[],"_links":{"self":[{"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/kennisbank\/20430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/kennisbank"}],"about":[{"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/types\/kennisbank"}],"author":[{"embeddable":true,"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/users\/2"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/media\/20488"}],"wp:attachment":[{"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/media?parent=20430"}],"wp:term":[{"taxonomy":"kennisbank_categorieen","embeddable":true,"href":"https:\/\/stage.surver.nl\/en\/wp-json\/wp\/v2\/kennisbank_categorieen?post=20430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}