SMTP in der Domain ermitteln

  • Servus zusammen,

    ich möchte den SMTP Server im Netzwerk ermitteln, da ja smtp.DOMAIN.com nicht immer der standard ist.
    ich weiß es gibt eine möglichkeit mit nslookup den MX Eintrag des email servers zu bekommen, mit dem kann ich aber keine Mails verschicken.
    kennt ihr eine möglichkeit diesen MX EIntrag, oder sonst irgendwie, um zu wandeln um den SMTP Server rauszufinden?

    vorab schonmal wozu ich es brauch.
    Es sollen Email Reports eingerichtet werden, um es dem Enduser leichter zu machen will ich den SMTP selbst ermitteln, anstatt ihn etwas konfigurieren zu lassen.
    ihr kennt das bestimmt, die leute die sowas machen sollen sind die DAU´s :D

    Einmal editiert, zuletzt von cashmoney (5. Dezember 2011 um 15:39)

  • Also innerhalb eines Netzwerkes kannst du so den smtp Server ermitteln wenn du den MX Eintag hast:

    1. CMD öffnen
    2. nslookup
    3. set type=mx
    4. deineDomain.de

    Dann erhällst du eine Liste von Infos unter anderem den smtp.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ne, ich bekomm nur den MX eintrag, und der lautet halt so wie bei google: server.domain.com
    ich weiß aber das der SMTP so heißt: smtp.domain.com, und genau den eintrag will ich auch irgendwoher bekommen.
    oder meinst du ich kann über diesen MX eintrag genauso emails verschicken?

    > google.de
    Server: xxx
    Address: xxx

    Non-authoritative answer:
    google.de MX preference = 10, mail exchanger = google.com.s9a1.psmtp.com
    google.de MX preference = 10, mail exchanger = google.com.s9a2.psmtp.com
    google.de MX preference = 10, mail exchanger = google.com.s9b1.psmtp.com
    google.de MX preference = 10, mail exchanger = google.com.s9b2.psmtp.com

    edit: ich merk die mails kommen auch dann raus, wenn ich den MX addressieren und net den smtp.domain.com,
    kurz zur verständniss: der smtp server macht nix anderes wie einen der MX einträge auswählen, den mit der niedrigsten nummer. sind da mehrere eingetragen funktionieren alle und ich kann mir sogesehen einen von dennen picken. ok^^

    jetzt die nächste frage: gibst in autoit so eine funktion den MX rauszufinden, oder muss ich nslookup ausführen und das dann weiter verarbeiten?

    Einmal editiert, zuletzt von cashmoney (5. Dezember 2011 um 14:04)

  • du erhällst sowas in der Art zurück:

    domain.de MX preference = 9, mail exchanger = smtp.domain.de
    domain.de namseserver = xx.domain.de
    domain.de namseserver = xx.domain.de
    domain.de namseserver = xx.domain.de
    smtp.domain.de internet adress = xxx.xxx.xxx.xxx
    xx.domain.de internet adress = xxx.xxx.xxx.xxx
    xx.domain.de internet adress = xxx.xxx.xxx.xxx
    xx.domain.de internet adress = xxx.xxx.xxx.xxx

    Wenn du etwas anderes angezeigt bekommen hast dann hast wohl nur nslookup gemacht und danch nicht "set type=mx" und "domain.de". Google ist kein netzinterner SMTP. Du solltest dir klar darüber werden was du haben willst ;).

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • naja das ist ja das komische, ich bekomm eben nicht smtp.domain.de zurück, obwohl der type auf MX gestellt ist.
    ich bekomm einfach: irgend_ein_server.domain.com, versende ich eine Email über den, funktioniert es! also nem ich an das ist der smtp?

  • Ja der SMTP muss nicht unbedingt auch smtp. irgendwas heißen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • alles klar, dann hat sich das schonmal erledigt. und wie schauts aus, gibst da ne funktion in autoit oder muss ich den nslookup auswerten?

  • ok, danke dir, hast mir weitergeholfen. mit stdoutRead bekomm ich jetzt alles zurück. wie kann ich jetzt nur den server parsen?

    [autoit]

    #include <Constants.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Local $PID = Run(@ComSpec & " /c nslookup -type=MX domain.com", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    Local $line

    [/autoit][autoit][/autoit][autoit]

    While 1
    $line = StdoutRead($PID)
    If @error Then ExitLoop
    ConsoleWrite($line)
    MsgBox(0, "STDOUT gelesen:", $line)
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • Zum Beispiel so:

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $PID = Run(@ComSpec & " /c nslookup -type=MX domain,com", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    Local $line

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $line = StdoutRead($PID)
    If @error Then ExitLoop
    ConsoleWrite($line)
    If $line <> "" Then
    $smtp = _StringBetween($line, "mail exchanger = ", @CRLF)
    MsgBox(0, "", $smtp[0])
    EndIf
    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Weißte was ich immernoch nicht verstehe....

    so schaut meine ausgabe in der console aus, wenn ich es per msgbox ausgebe bekomme ich die 2 server, in der console is aber jedesmal dieses kack non-authoritative answer dabei... woher kommt das?
    hier der autoit code

    [autoit]


    #include <Constants.au3>
    #include <String.au3>
    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    local $PID = Run(@ComSpec & " /c nslookup -type=MX %USERDOMAIN%.com", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    Local $line

    [/autoit][autoit][/autoit][autoit]

    While 1
    $line = StdoutRead($PID)
    If @error Then ExitLoop
    If $line <> "" Then
    $smtp = _StringBetween($line, "mail exchanger = ", @CRLF)
    EndIf
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    for $i = 0 to UBound($smtp)-1
    ConsoleWrite($smtp[$i]&@CRLF)
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • mail exchanger ist nicht immre der korrekte Eintrag. In den Nameserver-Einträgen der Domain muss der zum senden verwendete Server gar nicht drin stehen. Wer z.B. GoogleApps für seine Domain verwendet, sendet über den Googlemail-server. Dieser muss dazu nicht deiner Domain zugeordnet werden.
    Du solltest vielleicht folgendes tun:
    1) Eine Liste für bekannte Mailanbieter verwalten
    2) smtp.example.com überprüfen
    3) Die MX-Einträge abfragen und
    3a) mit einer Liste für bekannte Anbieter vergleichen (z.B. GoogleApps, M$ Live Domains, df.eu, ...)
    3b) Dies MX-Einträge direkt testen

  • Nenn mir einen fähigen Netzwerkadmin der GoogleApps in einer Domain einsetzt ;). Richtig es gibt keinen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • also ich frag jetzt einfach ab, ob es ein SMTP.@LogonDomain.com gibt, wenn nicht dann les ich die MX einträge und nimm da den ersten.
    wenn davon keiner funktioniert, haben die halt pech und müssen das manuel eintragen ;)