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
    [mail function]
    SMTP=mail.unturned-server-organiser.com
    smtp_port=25
    auth_username=support@unturned-server-organiser.com
    auth_password=meinpasswort
    sendmail_from=norepy@unturned-server-organiser.com
    sendmail_path = ""C:\xampp\sendmail\sendmail.exe" -t"



    sendmail.ini:

    Code
    [sendmail]
    smtp_server=mail.unturned-server-organiser.com
    smtp_port=25
    smtp_ssl=auto
    auth_username=support@unturned-server-organiser.com
    auth_password=meinpasswort
    hostname=mail.unturned-server-organiser.com


    Als Fehler bekomme ich dann immer zurück:

    Code
    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
    PWS3v2 1563ms
      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,  
    
    
    
    
      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
    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
    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...

  • Eine andere Möglichkeit die auch sicher geht ist die Domain dem Hosting zuweisen und dann nur den A Record wieder auf den Server zeigen zu lassen. Dadurch kann man die ganze E-Mail verwaltung im WCP machen.

  • @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..

  • Alternativ Postfix installieren und selber Mailserver sein? Musst ja nur senden...


    Postfix unter Linux ist in 5 Minuten installiert und in 10 konfiguriert, wies da aber unter Windows aussieht weiß ich leider ned, da hab ich bislang nur Exchange eingerichtet, aber das kostet nen Haufen Kohle.


    Thomas

  • 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