Helaas komt het wel eens voor dat e-mail niet aankomt bij de ontvanger. De oorzaak is niet altijd gelijk te achterhalen en kan meerdere oorzaken hebben. Hieronder de meestvoorkomende oorzaken … en oplossing! Mocht u hierna nog steeds problemen ondervinden dan kunt u eens proberen om gebruik te maken van bijvoorbeeld de Mail-Tester dienst op mail tester tool. Deze tool geeft precies aan waarom een e-mail een slechte beoordeling krijgt.

Wij gaan er primair vanuit dat het hier om e-mail gaat die vanuit uw applicatie wordt verzonden (bijvoorbeeld contactformulieren en orderbevestigingen) en niet e-mail via een e-mailprogramma zoals Outlook of Thunderbird.

Microsoft

Helaas verdient Microsoft hier een eigen paragraaf omdat ze bekend staan om mail te weigeren richting o.a Outlook-, Office365-, Hotmail- en Live-gebruikers. Bij andere grote partijen zien we dit in de praktijk veel minder! Dit kan zich op 2 manieren manifesteren:

  • E-mail wordt wel door Microsoft geaccepteerd, maar verdwijnt en komt vervolgens niet in de ontvangende mailbox
  • E-mail wordt geweigerd met een foutmelding

De redenen hiervoor zijn vaak volstrekt onduidelijk en Microsoft is ook niet echt bereidwillig om aan te geven wat nou de exacte reden is.

De oorzaak ligt bij Microsoft en wij zijn helaas David tegen Goliath in dit verhaal. Het enige wat wij kunnen doen is een aanvraag indienen voor verwijdering van de blokkade en zorgen dat onze servers geen spam versturen. Verder zijn wij overgeleverd aan de bereidwilligheid van Microsoft. Ook is het wel zaak om de verdere punten hieronder goed te controleren, want dat kan natuurlijk ook de oorzaak zijn!

Indien de e-mail dusdanig belangrijk is, adviseren wij om gebruik te maken van Sendgrid, SMTP2GO, Mandrill, Mailgun of een andere SMTP-dienst. Deze hebben namelijk wel vaak goede contacten bij Microsoft.

Een geldig return-path ontbreekt

Het “return-path” is een veld welke in een e-mail header hoort te staan en soms niet de juiste waarde bevat. Partijen zoals Gmail controleren dit redelijk strikt en het is dus belangrijk dat dit veld een correcte waarde bevat. Wij adviseren u om deze waarde te vullen met het afzender-adres van de e-mail.

Het is de taak van de gebruikte applicatie om deze waarde correct in te stellen. Hieronder wat voorbeelden waar we vanuit gaan dat from@linqhost.example het afzender-adres is. Dit dient u dus aan te passen naar het te gebruiken afzender adres.

WordPress

Binnen de WordPress applicatie wordt standaard geen geldig return-path opgegeven voor uitgaande mails, noch is hier een optie voor binnen de WordPress instellingen. Het volgende stukje PHP code dien je te plaatsen in ext/email_return_fix.php:

<?php
/*
Plugin Name: Email Return-Path Header Fix
Description: This plugin sets the Return-Path header of outgoing emails to equal the from email address.
Author: Abdussamad Abdurrazzaq
Author URI: http://abdussamad.com
Plugin URI: http://abdussamad.com/archives/567-Fixing-the-WordPress-Email-Return-Path-Header.html
Version: 0.1
License: GPLv2
*/
class email_return_path {
  	function __construct() {
		add_action( 'phpmailer_init', array( $this, 'fix' ) );
  	}

	function fix( $phpmailer ) {
	  	$phpmailer->Sender = $phpmailer->From;
	}
}

new email_return_path();

Cronjobs

Bij gebruik van de “MAILTO=” functie binnen een cronjob, kan de soortgelijke “MAILFROM=” functie gebruikt worden om de cronjob mails van een geldige afzender en return-path te voorzien. Zonder deze instructie wordt de mail verzonden vanaf u_user@d-servernaam.host-ed.eu, waardoor deze mails mogelijk niet aankomen. De cron hoort er dan als volgt uit te zien:

[EL8/SRV] [u_user@d-example|1.2.3.4 ~]$] crontab -l
MAILFROM=from@linqhost.example

0 23 * * * php example_script.php >/dev/null 2>&1

Magento
Ga naar Systeem > Configuratie > Advanced > System > Mail sending settings > Set return path > YES.

Joomla
Open het bestand libraries/phpmailer/phpmailer.php van je Joomla installatie en zoek naar public $Sender = en zorg dat het er zo uit zien public $Sender = “from@linqhost.example”;

Standaard PHP mail functie
Gebruik de “-f from@linqhost.example” switch in de standaard PHP mail functie mail functie.

<?php mail('from@linqhost.example', 'Onderwerp', 'Hello World! :)', null, '-ffrom@linqhost.example'); ?>

PHPMailer class
Vanaf PHPMailer v5.2.2-beta1 en hoger kan je de volgende code gebruiken:

$mail->ReturnPath='from@linqhost.example';

DKIM ongeldig/ontbreekt

Tegenwoord is het zo'n beetje verplicht om ook je uitgaande e-mails (correct) te ondertekenen met DKIM.  Op onze handleiding van Plesk en HPW staat beschreven hoe je dit zelf kunt uitvoeren. 

SPF record is niet correct

Update 7-12-16: SPF records voor LinQhost servers toegevoegd

Met een (DNS)SPF record geeft u aan welke mailservers namens uw domein mail mogen versturen. De ontvangende e-mail server controleert of dit overeenkomt en kan de e-mail dan bijvoorbeeld weigeren, onderwerpen aan een extra controle of accepteren.

Domeinen die bij ons in de DNS staan krijgen standaard een “SoftFail” wanneer iemand mail probeert te verzenden vanaf een server die niet in de SPF policy is opgenomen. Dit betekent dat deze e-mails extra worden gecontroleerd en mogelijk worden geweigerd.

Het is erg belangrijk dat u inzicht heeft op alle servers die namens uw domein e-mail mogen versturen en deze ook in het SPF record zijn opgenomen.

In onze DNS manager kunt u zelf de SPF records aanpassen naar de waardes die u zelf wilt. Op SPF record uitleg staat omschreven welke SPF aanpassingen u allemaal kunt doen. Bij twijfel kunt u het beste contact opnemen met uw systeembeheerder

Binnen de DNS manager is het SPF record terug te vinden als een record van het type TXT. De inhoud ziet er doorgaans als volgt uit:

v=spf1 a mx ~all

De “a” en “mx” in het bovenstaande voorbeeld geven aan dat alle IP-adressen die aan deze records gekoppeld zijn, sowieso als geldige mailservers worden gezien. De “~all” definieert de SoftFail. De inhoud is verder uit te breiden met aanvullende zaken die u in de SPF record uitleg kunt vinden.

Om er zeker van te zijn dat uw server is opgenomen in de SPF policy kunt u gebruik maken onze LinQhost SPF policy.

Server staat op een zwartelijst

Een veelvoorkomend oorzaak is dat de verzendende mailserver (SMTP) op een zogenaamde zwartelijst (blacklist) staat; de server heeft in het (recente) verleden spam e-mails verzonden. Om dit te voorkomen monitoren wij de IP-reputatie van onze IP-adressen constant. Bij eventuele meldingen grijpen wij gelijk in waardoor de kans zeer klein is dat onze SMTP servers op een zwarte lijst komen te staan. Mocht u gebruik maken van een andere SMTP server dan kunt u het beste contact opnemen met de beheerder van deze server.

Missende reverse DNS record

Onze servers hebben standaard allemaal een reverse DNS record (ook wel PTR record genoemd), waardoor dit probleem bij ons niet voor zou moeten kunnen komen. Mocht u gebruik maken van een andere SMTP server dan is het raadzaam om te controleren of deze een reverse DNS record heeft.

Autoresponder-loop

Wanneer een autoresponder wordt ingesteld, wordt er automatisch op inkomende e-mail berichten gereageerd. Vaak zijn dit berichten over bijvoorbeeld tijdelijke afwezigheid.

Dit vormt echter al snel een probleem wanneer “domme” autoresponders gaan reageren op andere “domme” autoresponders of bounces. Met als gevolg dat er een oneindige stroom van email wordt gegegeneerd. Door de mate van overlast die dit veroorzaakt zien wij dit dan ook als misbruik en kunnen wij je e-mail functionaliteit (tijdelijk) uitschakelen.

De meeste autoresponders (van bijvoorbeeld Google Mail en Microsoft) zijn echter intelligent en voorkomen dit gedrag en zijn dus veilig te gebruiken.