Hallo an die Profis hier...
Ich verzweifle tatsächlich gerade am phpMailer. Meine (wenn überhaupt) Anfängerkenntnisse in PHP reichen hier bei weitem nicht aus. Ich versuche gerade, mein funktionierendes mail-Script in ein phpMailer-Script zu verwandeln, da das andere bei dem neuen Hoster nicht mehr funktioniert.
Zur Vorgeschichte: hier und das wurde mir als Hilfe angeboten, aber ich werde auch da nicht schlau draus.
Ich habe jetzt das Original-Beispiel von GitHub genommen, bei mir einfügt, die SMTP-Daten angepasst (ich weiß nicht mal, ob die richtig sind) und dann entsprechende Schnipsel aus meinem ursprünglichen Mail-Script genommen.
Hier das Original auf dem alten Server und neuen Server. Unten als Datei angehängt.
Und hier das neue Script auf dem neuen Server.
Nun zu meinen Problemen.
- Es beginnt schon beim Aufruf der Seite mit dem Fehler in Zeile 9. Ich habe diesen vendor/autoloader.php nicht. Der ist ja gar nicht in der ZIP-Datei enthalten. Wo soll ich denn den bitte hernehmen und wofür ist der gut?
- Ich möchte natürlich meine Funktionen mitübernehmen. Also der Honeypot kommt aus meinem alten Script, die Variable $message_sent, die if-else-Clause im HTML-Code und die $invalid_classname. Die will ich natürlich wieder haben und habe sie vorerst mal dorthin gesetzt, wo ich vermute, dass sie passen müsste.
- Ich verstehe so gut wie nichts von dem Code des phpMailers. Mein altes Script habe ich verstanden. Das Problem ist halt dann, dass ich nicht weiß, was ich wo ändern muss, damit ich die Funktionen, die ich brauche, wieder habe.
- Server Settings: Hier habe ich mal reingeschrieben, was ich vom Hoster habe. Ob das mit dem TLS stimmt, weiß ich nicht, das habe ich so stehen lassen. Host, Username/PW und Port habe ich geändert. Das PW habe ich natürlich für den Upload hier unkenntlich gemacht.
- Recipients: setFrom soll wohl die Adresse sein, die mir als Empfänger in den Mails angezeigt wird. Der User gibt einen Namen und eine E-Mail-Adresse ein und das soll mir auch angezeigt werden. Ich sehe in den Beispielen aber immer, dass man sich quasi selbst ein E-Mail schickt. Wieso das denn? Das Mail soll doch vom der Person kommen, die das Formular auf der Website ausfüllt.
- Recipients: addAddress sind dann die Mailadressen des Empfängers - da habe ich 3 angegeben. addReplyTo - die Antwort soll ja wieder an den User gehen, also dasselbe wie in setFrom.
- Attachments brauche ich nicht, habe ich auskommentiert.
- Content: Mein nächstes Problem. Ich brauche kein HTML, denn der User wird auf der Website für seinen Text kein HTML verwenden und sonst würden mir ja keine Zeilenumbrüche etc angezeigt in dem Text, den ich dann als Mail empfange. Von daher müsste ich da false schreiben? Was mache ich dann mit Body und AltBody, wenn ich ohnehin kein HTML vom User haben möchte? Im alten Script sah das so aus: $body = $name . " hat dir eine Nachricht geschickt.\n\n\n" .$message; Diese Variablen habe ich im phpMailer noch nicht definiert (wo? nach try vor den Server Settings?). Im phpMailer müsste das dann so ausschauen, bin ich da richtig? $mail->Body = $_POST['name'] . " hat dir eine Nachricht geschickt.\n\n\n" .$_POST['message']
- Anstatt Message has been sent bzw. not been sent hätte ich gern dieselben Ausgaben wir im anderen Script. Das echo könnte dann raus, da sollte eig mein if-else greifen.
- Was die exceptions bzw. $e macht, ist mir auch noch nicht klar. Muss wohl irgendwas mit den ErrorInfos zu tun haben?
Fragen über Fragen. Es tut mir echt leid, aber ich verzweifle hier. Genau das ist auch der Grund, warum ich mich da vor Wochen nicht rangetraut habe. Ich habe gewusst, ich versteh's nicht. Mit der normalen mail-Funktion und entsprechenden Tutorials komme ich aber klar. So ist dann mein Script entstanden. Nur wie bastle ich das jetzt in einen phpMailer um, dass der ganze Spaß auch auf dem neuen Server läuft? Genau damit habe ich nämlich nicht gerechnet - dass es bei all-inkl läuft und bei Hosttech nicht.
Seid mir nicht böse, aber ich brauche wirklich eure Hilfe und ich hoffe, dass wir das gemeinsam irgendwie hinkriegen.
Danke schon mal!
LG
Elly