PHP sendmail mit Netcup-Smtp-Server

  • Hallo!
    Ich würde gerne die mail() Funktion meines Webservers (Root Server L) über den selber SMTP-Server laufen lassen wie den meines Hosting Tarifs.
    Dem Hosting Tarif ist die Domain "unturned-server-organiser.com" zugeordnet.
    Eingestellt habe ich das ganze schon insoweit das meine Konfigurationsdateien so aussehen:


    php.ini:

    Code
    1. [mail function]
    2. SMTP=mail.unturned-server-organiser.com
    3. smtp_port=25
    4. auth_username=support@unturned-server-organiser.com
    5. auth_password=meinpasswort
    6. sendmail_from=norepy@unturned-server-organiser.com
    7. sendmail_path = ""C:\xampp\sendmail\sendmail.exe" -t"



    sendmail.ini:

    Code
    1. [sendmail]
    2. smtp_server=mail.unturned-server-organiser.com
    3. smtp_port=25
    4. smtp_ssl=auto
    5. auth_username=support@unturned-server-organiser.com
    6. auth_password=meinpasswort
    7. hostname=mail.unturned-server-organiser.com


    Als Fehler bekomme ich dann immer zurück:

    Code
    1. mail(): SMTP server response: 450 4.7.1: Helo command rejected: Host not found


    Ich hoffe ihr könnt mir helfen ich bin ratlos. Ich geh davon aus das ich das HELO-Command wohl irgendwo einstellen kann, aber ich weiß nicht wie das aussehen soll und wo ich das einstellen muss..

  • Erstmal danke für deine Antwort.
    Das Ergebniss von MXToolbox sieht so aus:


    Code
    1. PWS3v2 1563ms
    2. 0 b.gtld-servers.net 192.33.14.30 NON-AUTH 31 ms Received 2 Referrals , rcode=NO_ERROR unturned-server-organiser.com. 172800 IN NS jobs.ns.cloudflare.com,unturned-server-organiser.com. 172800 IN NS jasmine.ns.cloudflare.com,
    3. 1 jasmine.ns.cloudflare.com 173.245.58.170 AUTH 15 ms Received 2 Answers , rcode=NO_ERROR unturned-server-organiser.com. 300 IN MX 5 mxf943.netcup.net,unturned-server-organiser.com. 300 IN MX 10 mail.unturned-server-organiser.com,


    Die Domain habe ich oben eigentlich schon genannt: "unturned-server-organiser.com"


    Wie genau sollte ich jetzt weitermachen?

  • Hmm, ich hatte die Domain für irgendeinen Dummy gehalten.
    Na gut.
    Also erstmal fällt auf dass du zwei MX Einträge hast - einmal den Host von netcup und einmal deine Domain.
    Ist das Absicht?


    Dann fällt auf dass sich dein Server im HELO mit 'mxf943.netcup.net' meldet, also dem Hostname von netcup.
    Das sollte wohl eher 'mail.unturned-server-organiser.com' sein.


    Auch dein Reverse-Lookup (IP 46.38.249.67) sollte wohl auf 'mail.unturned-server-organiser.com' gehen und nicht auf die netcup-Domain.


    Thomas

  • Die zwei MX Einträge kommen durch die Zuweisung von netcup zustande. Die wurden also automatisch generiert. Generell sind alle DNS Einträge vom CCP generiert (durch das Zuweisen auf den Hosting Tarif).
    Lediglich eine Subdomain die auf den angesprochenen Root Server verweist habe ich selber angelegt. (Ein simpler A Record)
    Ich verstehe zugegebener Maßen nicht viel von dem ganzen DNS kram. Also könntest du mir vielleicht so konkret wie möglich sagen inwiefern ich die Einträge ändern muss.
    Insbesondere weiß ich nicht wo ich den Reverse Lookup ändern kann.

  • Hallo discounter,


    okay, überzeugt.
    Ich hab gedacht du willst selber einen Mailserver einstellen.


    Wenn du natürlich über die Server von netcup senden willst dann müsstest du am DNS nix ändern, das stimmt.


    Warum aber nun dein Sendmail nicht geht - ich hab keine Ahnung :-)


    Gibst du mir mal den Programmcode mit dem du die mail()-Funktion aufrufst?
    Ich richte mir dann mal sendmail ein.
    Das wird ein kleines bisschen dauern...


    Thomas

  • Ich kann dir meinen Code so nicht geben aber um zum Testen ob die Mails versendet werden sollte eine PHP Datei mit dem folgenden Inhalt reichen.



    Erneut nochmal ein Danke das du dir die Mühe machst mir weiter zu helfen.

  • Ich hab schon voller Eifer losgelegt, dann ist mir aufgefallen dass es ja Windows ist.
    Für Windows hab ich gerade keinen freien Testserver rumstehen.
    (Außerdem wäre mir das installieren von PHP und Sendmail zu kompliziert...)


    An deiner Stelle würde ich mir das HELO-Kommando mal ansehen.
    Lad dir einfach Wireshark runter und schneide den Netzwerkverkehr mit.
    Eventuell musst du SMTP SSL in der Sendmailconfig abschalten damit du den Netzwerkverkehr auch mitlesen kannst.
    (ACHTUNG: In dem Moment wird natürlich dein Passwort im Klartext durch das Internet geblasen, nimm also lieber einen Testaccount)


    Wenn du das hast kannst du den Netzwerkverkehr mal hier posten (gerne ohne Passwörter) und dann sehen wir das HELO Kommando schon.


    Ich vermute dass der Host den du beim HELO angibst falsch ist.
    Das sehen wir aber im Mitschnitt.


    Bei Wireshark oben in die Filterzeile 'tcp.dstport == 25 || tcp.srcport == 25' eingeben um nur die richtigen Pakete zu sehen.
    Dann rechtsklick auf das Erste und 'Follow TCP Stream' auswählen damit du alles im Klartext lesen kannst.


    Das sollte dann in etwa so aussehen:
    (Quelle: Wikipedia)


    (bei obigen Beispiel gibt der Maileinlieferer im HELO 'relay.example.org'.
    Der Mailserver versucht nun die IP dahinter zu ermitteln. Gibt es den Host nicht so kommt wohl der Fehler den du bekommst.


    Thomas


    PS: Ich hoffe netcup erlaubt das verbinden ohne SSL zum Mailserver, sonst kann man die Wireshark Sache vergessen.

  • Ich hab den Mitschnitt mal in den Anhang gepackt.


    Wobei ich hier eventuell auch selber schon den entscheidenen Teil gefunden habe:

    Code
    1. Simple Mail Transfer Protocol Response: 220 mxf943.netcup.net ESMTP Postfix\r\n Response code: <domain> Service ready (220) Response parameter: mxf943.netcup.net ESMTP Postfix
    2. No. Time Source Destination Protocol Length Info 11098 50.604703 37.120.165.80 46.38.249.67 SMTP 76 C: HELO WIN-R2QPMJVRFOE


    Ich weiß nur nicht was ich damit anfangen soll...

  • @discounter:
    sendmail schickt beim HELO deinen lokalen Computernamen 'WIN-R2QPMJVRFOE'.
    (Den kann man natürlich per DNS nicht auflösen, deswegen mag dich der Mailserver nicht!)
    Es sollte hier eigentlich 'mail.unturned-server-organiser.com' senden.
    Entweder kannst du das sendmail beibringen, oder aber du änderst deinen Windows-Computernamen auf 'mail.unturned-server-organiser.com' - was imho sowieso richtig wäre.


    Wenn an deinem Computernamen nix wichtiges hängt (Lizenzen oder Konfigurationen) würde ich diesen mal ändern (Neustart erforderlich) und dann nochmal probieren.


    Postfix als Smarthost ist in etwa das gleiche was du gerade machst - nur dass du eben sendmail statt Postfix nimmst.


    Thomas

  • Das mit dem Computernamen funktioniert nicht, da ich "-" in der Domain habe. Naja ich fand die Lösung ohne hin nicht schön..
    Wenn du dir meine Konfiguration von [sendmail] ansiehst. Hab ich den Host sogar schon auf "mail.unturned-server-organiser.com" gestellt.


    Die Beschreibung dafür ist sogar das der Hostname das "helo" mehr oder weniger repräsentiert..


    ; sendmail will use your hostname and your default_domain in the ehlo/helo
    ; smtp greeting. you can manually set the ehlo/helo name if required


    Also ich weiß echt nicht wo ich das noch umstellen könnte..

  • Das hätte ich jetzt als nächstes gemacht, aber die Lösung war sehr viel simpler. Wenn ich "sendmail_path" definiere müssen alle anderen Zeilen der [mail function] auskommentiert werden sonst nutzt php das definierte sendmail nicht. In der sendmail-Konfigurationsdatei hatte ich unter "host=" ja schon das Helo Command fesrgelegt.
    Es funktioniert jetzt alles einwandfrei. Wenn ich doch nur gewusst hätte das es so einfach sein kann