Kan ik WordPress e-mail met SMTP laten versturen? Ja, in dit artikel leggen we je uit hoe je uitgaande SMTP correct instelt in WordPress. Het is belangrijk dat je dit met SMTP authenticatie doet over een met SSL/TLS-beveiligde verbinding.
Inhoudsopgave
- SMTP Mailer
- WP Mail SMTP
- Post SMTP Mailer/Email Log
- Auth-SMTP plugin in eigen beheer
- Bijzonderheden: SSL en poort 465 voor GMail
E-mail via authenticated SMTP en over een TLS-beveiligde verbinding versturen biedt een grotere zekerheid van het aankomen van e-mails bij de ontvangers. Als je dit anoniem via de webserver localhost verstuurt, dan wordt het sneller als spam aangemerkt.
Dit artikel behandelen we drie (3) plugins, namelijk SMTP Mailer, WP Mail SMTP by WPForms en Post SMTP Mailer/Email Log.
Ook laten we één methode zien waarbij je eigen code gebruikt. Als je een andere plugin wilt gebruiken dan is het belangrijk dat deze STARTTLS ondersteunt. Steeds zijn de instellingen die je moet gebruiken hetzelfde.
Zorg ervoor dat je in ieder geval een e-mailaccount bij Vevida beschikbaar hebt, en de daarbij behorende inloggegevens (e-mailadres + wachtwoord). De in dit artikel gebruikte gegevens zijn fictief. Vervang info@example.nl en het-wachtwoord door de inloggegevens van jouw e-mailaccount.
Let op: vaak zetten plugins je wachtwoord leesbaar in de database! Zorg ervoor dat dit verwijderd wordt als je een plugin niet meer gebruikt en verwijdert.
SMTP Mailer
De SMTP Mailer plugin maakt een menu-item aan onder Instellingen, genaamd SMTP Mailer. Hier kun je in één pagina de volgende instellingen maken:
- SMTP host: smtp.vevida.com
- SMTP authenticatie: Ja
- SMTP gebruikersnaam: e-mailadres (bijv. info@example.nl)
- SMTP wachtwoord: het-wachtwoord van het account
- Type versleuteling: TLS
- SMTP poort: 587
- E-mailadres afzender: e-mailadres (bijv. info@example.nl)
- Naam afzender: Je naam
- SSL verificatie uitschakelen: Nee, dus uitgevinkt laten
Sla de instellingen op met de knop Wijzigingen opslaan. Via kun je via de tab “Test e-mail”stuur je eenvoudig een testbericht.
WP Mail SMTP
Heb je WP Mail SMTP by WPForms éénmaal geïnstalleerd en geactiveerd, dan vind je een menu-item WP-Mail-SMTP onder Instellingen. De volgende instellingen neem je op onder Algemeen:
- E-mailadres afzender: e-mailadres vanwaaruit de e-mails worden gestuurd (bijv. info@example.nl)
- Mailer: Andere SMTP-service aanvinken
Onderdeel Andere SMTP-service
- SMTP-host: smtp.vevida.com
- Versleuteling: TLS
- SMTP-poort: 587
- Auto-TLS: Aan
- Authenticatie: Aan
- SMTP-gebruikersnaam: e-mailadres (bijv. info@example.nl)
- SMTP-wachtwoord: het-wachtwoord van het account
Klik hierna op de knop Instellingen Opslaan. Via de tab E-mailtest kun je nu een test e-mail sturen.
Post SMTP Mailer/Email Log
Als Post SMTP Mailer/Email Log geïnstalleerd en geactiveerd, dan vind je de plugin-opties via het nieuwe menu-item Post SMTP. Toon alle instellingen is de meest snelle manier om de plugin te configureren voor authenticated SMTP en StartTLS.
Tabblad Account
- Type: SMTP
- Mailer type: PostSMTP
Onderdeel Transport instellingen:
- Uitgaande e-mailserver hostnaam: smtp.vevida.com
- Uitgaande e-mailserver poort: 587
- Envelope-From e-mailadres: e-mailadres (bijv. info@example.nl)
- Beveiliging: STARTTLS
- Authenticatie: Plain
- Gebruikersnaam: e-mailadres (bijv. info@example.nl)
- Wachtwoord: het-wachtwoord van het account
Ga naar het tabblad Bericht, vul bij E-mailadres je e-mailadres weer in.
Hierna klik je Wijzigingen opslaan en via verstuur een testbericht kun je nu een test e-mail sturen.
Via het menu-item E-mail log kun je een log inzien van alle verzonden e-mailberichten. Dat kan handig zijn, maar dit kan ook erg snel heel veel worden. Verwijder logberichten regelmatig en leeg de prullenbak daarna.
Auth-SMTP plugin in eigen beheer
Voor geavanceerde WordPress-gebruikers! Vevida geeft hierop geen ondersteuning.
Als je niet afhankelijk wilt zijn van een externe pluginleverancier, of niet wilt dat het wachtwoord van je e-mailadres in de MySQL-database staat opgeslagen, dan kun je vrij eenvoudig je eigen plugin hiervoor ontwikkelen. Of de functionaliteit toevoegen aan je al bestaande site-specific plugin.
Ga als volgt te werk, een kort stappenplan:
- maak een map
wp-eigen-smtp
, met daarin het bestandwp-eigen-smtp.php
. De map- en bestandsnaam mogen niet overeenkomen met een bestaande WordPress plugin. Voeg je eigen plugin-header eraan toe:<?php /** * Send authenticated SMTP email over TLS with WordPress * @wordpress-plugin * Plugin Name: Authenticated SMTP e-mail over TLS in WordPress * Plugin URI: https://vevida.com * Description: Sends email using authenticated SMTP (SMTP AUTH), over an TLS encrypted connection in WordPress. * Version: 1.4 * Author: Jan Reilink * Author URI: https://www.saotn.org * License: GPL-2.0+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt */
- open het bestand
wp-includes/pluggable.php
en scroll naar regel 145 (GitHub link). - kopieer en plak alle code vanaf
if ( ! function_exists( 'wp_mail' ) ) :
, inclusief de functiewp_mail
, tot en metendif;
op regel 550 in het eigen pluginbestand, onder de plugin-header. - vervang
endif;
door afsluitende accolade}
. - zoek de regel
$phpmailer->isMail();
en vervang dit door$phpmailer->isSMTP();
. - direct hieronder plaats je de volgende PHP-code:
$phpmailer->SMTPSecure = SMTP_SECURE; // set security schema $phpmailer->SMTPAuth = SMTP_AUTH; // enable SMTP authentication $phpmailer->Port = SMTP_PORT; // set the SMTP server port $phpmailer->Host = SMTP_HOST; // SMTP server $phpmailer->Username = SMTP_USER; // SMTP server username $phpmailer->Password = SMTP_PASS; // SMTP server password $phpmailer->From = SMTP_FROM; // SMTP From email address $phpmailer->FromName = SMTP_FROM_NAME; // SMTP From name $phpmailer->SMTPDebug = SMTP_DEBUG; // debug can be very verbose
Upload je plugin (eventueel eerst inpakken als .zip
-bestand).
Nu configureer je je eigen SMTP-mailer plugin door in wp-config.php
de volgende instellingen op te nemen:
define( 'SMTP_USER', 'info@example.nl' );
define( 'SMTP_PASS', 'het-wachtwoord' );
define( 'SMTP_PORT', '587' );
define( 'SMTP_SECURE', 'tls' );
define( 'SMTP_AUTH', true );
define( 'SMTP_HOST', 'smtp.vevida.com' );
/* als je een ander From-adres opgeeft */
define( 'SMTP_FROM', 'afzender@example.nl' );
/* naam v/d afzender */
define( 'SMTP_FROM_NAME', 'Vevida WP hosting' );
/* alleen voor debugging, zet dan op 1 of 2 pas op voor wachtwoorden op het scherm */
define( 'SMTP_DEBUG', 0 );
Activeer je plugin en e-mails die WordPress nu verstuurt met de wp_mail() functie gaan via authenticated SMTP over een beveiligde TLS-verbinding.
Dit heeft het lichte voordeel dat het wachtwoord van je e-mailaccount niet in de database staat. Een nadeel is dat je regelmatig de code in wp-includes/pluggable.php
moet controleren, het kan maar zo stoppen met functioneren. Vanwege updates in dit pluggable.php-bestand kunnen genoemde regelnummers afwijken van de werkelijkheid.
Bijzonderheden: SSL en poort 465 voor GMail
In de meeste plugins kan je ook GMail als uitgaande SMTP-server in WordPress gebruiken. In plaats van StartTLS en poort 587 stel je SSL en poort 465 in. Dit kan handig zijn als je smtp.gmail.com wilt gebruiken.
Maar let op: als je GMail SMTP wilt gebruiken moet je Toegang door minder goed beveiligde apps inschakelen in je Google Account. Dat is iets wat wij niet aanraden!