Toon posts:

Sendmail gebruikt localhost i.p.v. MX record

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is de situatie. Ik heb een aantal FreeBSD servers staan met een aantal domeinen die daarop draaien. Een van de servers gebruik ik om alle mail op te vangen met sendmail. Ik draai ook mijn eigen DNS servers en daarin regel ik dus voor elk domein via MX records dat de mail gestuurd wordt naar die ene server.

Nu heb ik het volgende probleem. Alles werkt prima, de mail van de verschillende domeinen komen altijd netjes bij die ene server terecht, BEHALVE in de volgende situatie. Ik draai op een aantal van die servers een script dat het een en ander doet en dan vervolgens een e-mail stuurt naar een e-mailadres van het domein waar het op draait. Daar gaat het fout, want dan gaat de sendmail op die betreffende server opeens proberen localhost te gebruiken als relay en deze kijkt niet naar de MX records voor het betreffende domein. Die mail komt dan dus ook niet waar het moet wezen.

Het probleem is dus eigenlijk in het kort, hoe kan ik ervoor zorgen dat de sendmails op de overige servers kijken naar het MX record voor het betreffende domein.

Ik hoop dat het probleem een beetje duidelijk is, zo niet dan leg ik het graag nog een keer uit.

  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 17-12-2025
Verwijderd schreef op woensdag 23 februari 2005 @ 17:48:
...knip...
Het probleem is dus eigenlijk in het kort, hoe kan ik ervoor zorgen dat de sendmails op de overige servers kijken naar het MX record voor het betreffende domein.

Ik hoop dat het probleem een beetje duidelijk is, zo niet dan leg ik het graag nog een keer uit.
Even nog een vraagje:

Draai je op de server waarop het script gestart wordt ook een Mail Delivery Agent (IMAP/POP3 Servert)?

Dus is de routering van je mail (de kort-door-de-bocht-beredenatie)

MX Server -> Domeinserver -> E-Mail client
-of-
MX Server -> E-Mail client

My weblog


Verwijderd

Topicstarter
Er draait alleen een MDA (qpopper) op de server die de mail moet afhandelen.

Als voorbeeld.

domein.com wordt gehost op server B. Het MX record voor domein.com zegt dat server A de mail moet afhandelen. Ik stuur vanaf mijn eigen pc een e-mail naar gebruiker@domein.com en het gaat netje naar server A, waar het behandeld wordt.

Maar nu draai ik een script op server B. Dit script verstuurt een e-mail naar gebruiker@domein.com. De bedoeling is nu dat sendmail op server B kijkt naar de MX record voor domein.com en vervolgens de mail naar server A stuurt. In plaats hiervan denkt sendmail dat deze e-mail op server B afgehandeld moet worden en probeert hem te bezorgen aan gebruiker (die niet bestaat). En de mail komt dus niet aan.

Verwijderd

Topicstarter
Ik heb nu ontdekt dat van de 6 domeinen die ik op die server heb draaien dit alleen gebeurd bij twee domeinen.

Eentje is mijn host zelf, dus zeg maar machinenaam.domeinA.com. Als ik een e-mail vanaf die machine probeer te sturen naar iemand@machinenaam.domeinA.com, dan gaat hij hem zelf proberen te behandelen, terwijl er in het MX record staat dat een andere server dat moet doen. Het gekke is dat iemand@serverA.com weer wel goed gaat.

Verder gaan dan domeinB.com domeinC.com domeinD.com en domeinE.com allemaal goed en als ik sendmail in test mode run (sendmail -bt) met domeinF.com krijg ik:

code:
1
2
3
4
5
6
7
8
9
10
11
12
canonify           input: iemand @ domeinF . com
Canonify2          input: iemand < @ domeinF . com >
Canonify2        returns: iemand < @ domeinF . com . >
canonify         returns: iemand < @ domeinF . com . >
parse              input: iemand < @ domeinF . com . >
Parse0             input: iemand < @ domeinF . com . >
Parse0           returns: iemand < @ domeinF . com . >
ParseLocal         input: iemand < @ domeinF . com . >
ParseLocal       returns: iemand < @ domeinF . com . >
Parse1             input: iemand < @ domeinF . com . >
Parse1           returns: $# local $: iemand
parse            returns: $# local $: iemand


Kortom, die probeert hij zelf af te handelen. Er staat niks in mijn local-host-names en virtusernames files. Ik zou echt niet weten waarom hij bij dat domein opeens anders doet als bij de andere.

Weet iemand hoe ik hier achter kan komen?

Verwijderd

Topicstarter
Daar komt nog bij dat een nslookup van de MX records op die server wel de juiste info geven voor dat domein.

  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 17-12-2025
Probeer eens in je resolv.conf
code:
1
nameserver 194.109.6.66
Waarbij je 194.109.6.66 vervangt door jouw (interne) DNS server.

En als dat niet lukt moet je dan in je sendmail.mc config
code:
1
define(`SMART_HOST', `server-A')


Wat meer info

Ik post net en zie vervolgens de reactie van andijvie2004
PS, je kan je posting ook editten... dan hoef je niet een nieuwe posting te doen.

[ Voor 22% gewijzigd door capedro op 23-02-2005 23:14 ]

My weblog


Verwijderd

Topicstarter
Okay, ik ben achter het volgende gekomen. Wat Capedro poste heb ik geprobeerd, maar dat werkt niet.

Ik heb ontdekt dat al mijn servers hetzelfde doen. Alle sendmails willen de mail die vanaf die server gestuurd wordt naar een domein, waarvan de reverse DNS pointer naar een ip wijst dat gekoppeld is aan diezelfde server, zelf doen. De rest doen ze netjes via de MX records.

Ik weet nog niet wat ik met die informatie kan, maar dat het zo is is zeker. Ik heb het op 5 servers getest, sommige daarvan hebben een domein of twintig draaien, met een ip of 4 en bij alle 4 domeinen die een reverse pointer naar een van die ips hebben gaat het dan fout.

Nogmaals, het gaat alleen fout als de e-mail vanaf diezelfde server gestuurd wordt.

Ik hoop dat iemand weet wat ik hiermee kan (anders dan mijn reverse pointers verwijderen natuurlijk).

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Als jij in de sendmail config opgeeft dat je mailserver verantwoordelijk is als endpoint voor een domein, dan zal sendmail idd geen DNS lookups meer doen voor MX records, maar gewoon dat ding lokaal afleveren.
Verder ken ik sendmail totaal niet, maar iig is dit wel het geval bij qmail, postfix en exim.

Verwijderd

Topicstarter
_JGC_ schreef op donderdag 24 februari 2005 @ 15:28:
Als jij in de sendmail config opgeeft dat je mailserver verantwoordelijk is als endpoint voor een domein, dan zal sendmail idd geen DNS lookups meer doen voor MX records, maar gewoon dat ding lokaal afleveren.
Verder ken ik sendmail totaal niet, maar iig is dit wel het geval bij qmail, postfix en exim.
Ik heb volgens mij nergens gezegd dat ik dat opgegeven heb en dat heb ik natuurlijk ook niet gedaan.

Verwijderd

Is dit niet iets dat je oplost met de nsswitch.conf file, hier kan je de volgorde van het resolven opgeven, het lijkt mij dat je eerst je DNSserver wilt gebruiken ipv. je hosts file zodat altijd het juiste centrale DNS- of MX-record wordt gebruikt.

  • _JGC_
  • Registratie: Juli 2000
  • Nu online
Verwijderd schreef op donderdag 24 februari 2005 @ 16:04:
[...]


Ik heb volgens mij nergens gezegd dat ik dat opgegeven heb en dat heb ik natuurlijk ook niet gedaan.
Mja, hostname die gelijk is aan dat domein?

Verwijderd

Hm, volgens mij heb ik hetzelfde, of een soortgelijk probleem als jij. Andere software, maar wel dezelfde symptonen.
Ik gebruik een Windows 2003 Server, en host websites, en heb een eigen mailsever (mailEnable) en een dns server draaien. Wanneer een klant een eigen mailserver heeft, dan pas ik keurig het MX record aan. Dit werkt prima van buitenaf, maar de emails die via de webserver worden verstuurd (via ingevulde formulieren etc) komen op m'n lokale mailserver binnen!
Aanvankelijk wilde ik mijn mailserver gewoon als backupserver laten gebruiken als extra service, maar alleen als ik het domein verwijder van m'n mailserver komen de mails pas aan bij klant z'n mailserver. NB. het heeft niet te maken met de mxrecord prioriteit parameter. Zelfs al heb ik 1 mx record erin staan, en de DNS server gerestart om eventuele caching te verwijderen, dan nog gaan de emails naar de localhost.
Is dit hetzelfde probleem of heb ik het verkeerd begrepen?

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 25 februari 2005 @ 02:41:
[...]


Hm, volgens mij heb ik hetzelfde, of een soortgelijk probleem als jij. Andere software, maar wel dezelfde symptonen.
Ik gebruik een Windows 2003 Server, en host websites, en heb een eigen mailsever (mailEnable) en een dns server draaien. Wanneer een klant een eigen mailserver heeft, dan pas ik keurig het MX record aan. Dit werkt prima van buitenaf, maar de emails die via de webserver worden verstuurd (via ingevulde formulieren etc) komen op m'n lokale mailserver binnen!
Aanvankelijk wilde ik mijn mailserver gewoon als backupserver laten gebruiken als extra service, maar alleen als ik het domein verwijder van m'n mailserver komen de mails pas aan bij klant z'n mailserver. NB. het heeft niet te maken met de mxrecord prioriteit parameter. Zelfs al heb ik 1 mx record erin staan, en de DNS server gerestart om eventuele caching te verwijderen, dan nog gaan de emails naar de localhost.
Is dit hetzelfde probleem of heb ik het verkeerd begrepen?
Ja dat KAN hetzelfde zijn en hier is de oplossing.

Ik heb de oplossing gekregen van iemand in comp.mail.sendmail en ik ben hem daar erg dankbaar voor, want ik heb er echt heeeeeeeeeel erg lang naar gezocht. Iedereen blijft overal ook constant beweren dat het wel mijn fout zal zijn omdat ik dat domein ergens zou hebben gezet, zodat sendmail denkt dat het verantwoordelijk is hiervoor (niet op dit forum, maar ik heb het op meer plaatsen gepost), terwijl ik zeker wist dat dat niet zo was.

De oplossing is verdomd simpel, maar ik denk gewoon dat veel mensen zich nauwelijks realiseren dat ze hetzelfde probleem hebben, omdat mail van buitenaf gewoon goed gaat. De situatie die speedy_w beschrijft is er eentje waar je erachter komt.

De oplossing:

zet in sendmail.cf:

code:
1
O DontProbeInterfaces=True

Dit zorg ervoor dat sendmail niet de mail van ips gekoppeld aan de server zelf gaat behandelen. Dit geldt dus ook voor domeinen met een reverse DNS pointer naar een ip van de server.

Ik hoop dat iemand hier iets aan heeft in de toekomst.

Verwijderd

Verwijderd schreef op vrijdag 25 februari 2005 @ 12:49:
[...]

Ja dat KAN hetzelfde zijn en hier is de oplossing.

Ik heb de oplossing gekregen van iemand in comp.mail.sendmail en ik ben hem daar erg dankbaar voor, want ik heb er echt heeeeeeeeeel erg lang naar gezocht. Iedereen blijft overal ook constant beweren dat het wel mijn fout zal zijn omdat ik dat domein ergens zou hebben gezet, zodat sendmail denkt dat het verantwoordelijk is hiervoor (niet op dit forum, maar ik heb het op meer plaatsen gepost), terwijl ik zeker wist dat dat niet zo was.

De oplossing is verdomd simpel, maar ik denk gewoon dat veel mensen zich nauwelijks realiseren dat ze hetzelfde probleem hebben, omdat mail van buitenaf gewoon goed gaat. De situatie die speedy_w beschrijft is er eentje waar je erachter komt.

De oplossing:

zet in sendmail.cf:

code:
1
O DontProbeInterfaces=True

Dit zorg ervoor dat sendmail niet de mail van ips gekoppeld aan de server zelf gaat behandelen. Dit geldt dus ook voor domeinen met een reverse DNS pointer naar een ip van de server.

Ik hoop dat iemand hier iets aan heeft in de toekomst.
Gefeliciteerd met je oplossing! Da's mooi.
Ik heb hier ook even zitten kijken maar nog geen oplossing kunnen vinden (ik werk met andere mail software en kon een dergelijke switch niet vinden, maar ik ga wel eens navragen op het MailEnable forum.
Pagina: 1