Al jaren heb ik dus zelf een mailserver. En soms gebeurd het dat je geblacklist wordt. Dat is dan meestal wel te verklaren. Meestal werd een e-mail account gehackt, wegens een te gemakkelijk paswoord of een virus die ergens is binnen geslopen op de PC van mijn klant.
De e-mail service verleen ik al meer dan 20 jaar. Dit soort incidenten is minimaal, maar de incidenten bij hotmail kan ik daarentegen niet meer tellen op 2 handen.
Ja, ik heb me ingeschreven op hun Junk Email Reporting program (JMRP) en het Smart Network Data Services programma (SNDS) - http://postmaster.live.com/snds/
Dit is voor mij een waardeloze tool. Want de status aldaar is al altijd deze geweest: "All of the specified IPs have normal status"
Euh, hallo. "En waarom blokkeer je dan de e-mails?"
Vandaag had ik er genoeg van.
Als hotmail niet voor een oplossing zorgt dan moet ik het maar zelf doen.
Todo voor vandaag was dus. Leid alle e-mail af naar een andere mailserver wanneer de ontvanger @hotmail.com is.
Dit is vrij eenvoudig in te stellen op Postfix. Veel meer werk is het om bij de smtp-provider alles in te stellen voor de vele domeinen die ik heb.
Postfix Transport Map
De transport map definieerd de 'routering' (of transport) voor ontvangende adressen. Normaal is deze setting niet ingevuld.
postconf transport_maps
Dit geeft standaard de setting terug zonder waarde
transport_maps =
De transport_maps parameter verwijst naar een bestand waar een 'tabel' staat met regels. Dit bestand zal gehashed worden, vandaar het woord hash: gevolgd door de bestandslocatie. Maak in het bestand /etc/postfix/main.cf er het volgende van:
vi /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
Bewaar het bestand en bewerk vervolgens de transport file:
vi /etc/postfix/transport
hotmail.com relay:[smtp-relay.sendinblue.com]:587 outlook.com relay:[smtp-relay.sendinblue.com]:587 hotmail.be relay:[smtp.sendgrid.net]:587 outlook.be relay:[smtp.sendgrid.net]:587 live.com relay:[smtp.sendgrid.net]:587 live.be relay:[smtp.sendgrid.net]:587 msn.com relay:[smtp.sendgrid.net]:587
Bewaar dit en verander het tekstbestand in een database
postmap /etc/postfix/transport
Authenticatie
We hebben verwezen naar 2 smtp-services. Uiteraard moet je rechten hebben om van de smtp dienst gebruik te kunnen maken. Ik vond het voor zowel SendGrid als Sendinblue vrij eenvoudig om dit op te zetten en in te stellen. Je weet dat je in de interface ergens moet zijn bij het onderdeel SMTP en dat je een gebruikersnaam en paswoord nodig hebt.
Eens deze zijn aangemaakt gaan we deze gaan toevoegen aan Postfix
vi /etc/postfix/main.cf
# outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000
vi /etc/postfix/sasl_passwd
[smtp-relay.sendinblue.com]:587 smtp_username:smtp_password [smtp.sendgrid.net]:587 apikey:de api sleutel
Ook dit paswoord bestand wordt omgezet naar een tabel
postmap /etc/postfix/sasl_passwd
Zo. We zijn klaar en kunnen postfix herstarten en kijken in de log naar waar de emails gestuurd worden.
systemctl restart postfix tail -f /var/log/maillog
Tips en problemen
Wanneer je een 'relay access denied' ziet dan is er iets niet juist met de gebruikersnaam en paswoord. Of iets bij de SMTP-service provider.
De email zal in dit geval blijven hangen in de queue. Om die een stamp te geven:
postqueue -f
Wanneer je gebruik maakt van postfixadmin dan kan het dat je de transport file moet toevoegen aan de virtual_mailbox_maps (in de config van Postfix)
virtual_mailbox_maps = hash:/etc/postfix/transport proxy...