Eerst zal je je dus een beetje moeten verdiepen in hoe mailen überhaupt werkt. Allereerst is de misvatting dat het To: adres het adres is waar naartoe een mail wordt gestuurd (geadresseerde) en het From: adres waarvandaan wordt gemaild (afzender), zoals je zelf ook al aangeeft. In werkelijkheid is dat respectievelijk het Evelope-from (ook Sender of Return-path) en het Envelope-to adres.
Checks op basis van of een bepaalde mailserver mail mag versturen met een bijbehorende Envelope-from heet SPF (Sender Policy Framework) checking. Helaas werkt dat maar ik een klein aantal gevallen, omdat daarvoor het domein dat gefaket wordt een SPF record moet hebben dat ook nog eens harde eisen stelt aan de versturende mailserver.
Er zijn nog meer checks om te zien of een mail legitiem is en daarvoor kan je het beste kijken naar welke checks een gemiddelde MTA (mailserver) doet, zoals Exim. Je kan Exim bijvoorbeeld configureren dat ie probeert bij de mailserver van het mogelijk gefakete domein een mail af te leveren (maar in feite dus alleen checkt of het afzenderadres bestaat).
Hoe dan ook, deze checks wil je vast niet zelf gaan uitvoeren. Ik hoop voor je dat de MTA behorende bij dat betreffende IMAP account dat al voor je doet.
Als je gewoon een scriptje wil maken dat de afzender van een mail bepaalt dan moet je kijken naar de regels Envelope-from, From, Sender en Return-path in de headers van een e-mail.
Je loopt dan wel tegen problemen aan wanneer mails zijn geforward of gerelayed zijn volgens het SPF schema (zoals het zou moeten). Dan krijg je Envelope-from adressen met daarin geëncode het oorspronkelijke Envelope-from adres zodat een eventuele bounce bij de oorspronkelijke versturende partij komt en de SPF check niet onnodig faalt. Zo zijn er nog talloze dingen waar je rekening mee moet houden voor je kan zeggen dat een e-mailadres in de mail de werkelijke afzender is. Vaak moet je dat dan zelf interpreteren. Voor heel simpele dingen kan je gewoon het From veld pakken, maar zoals je zelf al zegt, kan je dat eenvoudig faken.
Indien gates.nl geen SPF record heeft is dat te doen.
gates.nl's mailserver is het MX-record dat hoort bij gates.nl:
#host -t mx gates.nl
gates.nl mail is handled by 10 mail.gates.nl.
#host -t a mail.gates.nl
mail.gates.nl has address 94.124.120.73
Je bedoelt dat mensen mailen met de uitgaande mailserver van hun ISP, bijvoorbeeld smtp.telfort.nl met als Envelope-from user@gmail.com? Dat zal heel vaak worden geweigerd bij de ontvanger, want (voorbeeld gmail):
# host -t txt gmail.com
gmail.com descriptive text "v=spf1 redirect=_spf.google.com"
# host -t txt _spf.google.com
_spf.google.com descriptive text "v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ?all"
Wat dus geen van alle matcht met het ip adres van smtp.telfort.nl, maar op zich niet direct wordt geweigerd, omdat niet alle andere servers direct worden uitgesloten. Dit geeft doorgaans alleen een kleine score extra in het spamfilter. Maar als het eindigde op -all, dan kan je verwachten dat je mail niet ver komt.
Lezen, lezen, headers bestuderen, mailservers configureren, googlen... Ach, zo leer je nog eens wat.

Ik heb het gewoon door de jaren heen geleerd, uit ervaring.
[
Voor 55% gewijzigd door
gertvdijk op 18-01-2009 02:57
]