senäh

17senäh und so…

PHPMailer auf 1&1 Kundenservern

PHP, Server & Config
17. Nov 2011
Kommentare: 16

PHPMailer auf 1&1 Kundenservern

Kategorien: PHP, Server & Config | 17. Nov 2011 | Kommentare: 16

Ich hatte neulich die Ehre für einen Kunden, dessen Server von 1&1 gehostet wird, zu arbeiten. An sich hat alles so weit funktioniert bis auf das Kontaktformular. Anfangs dachte ich es lag am PHPMailer – einer praktischen Bibliothek für den Mailversand über PHP. Allerdings trat das Problem durch einen falsch angegebenen SMTP-Host auf.

Statt dem üblichen localhost oder dem für 1&1-Postfächer typischen smtp.1und1.de musste der Host mrvnet.kundenserver.de lauten. Außerdem wichtig: keine Authentifizierung. Code-Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require("inc/class.phpmailer.php");
$mail = new PHPMailer(true);

$mail->IsSMTP();
$mail->Host     = "mrvnet.kundenserver.de";

$mail->SetFrom($senderMail, $senderName);
$mail->AddAddress($receiverMail, $receiverName);

$mail->Subject  = 'Nachricht über das Kontaktformular';
$mail->Body     = $message;
$mail->CharSet  = "utf-8";
$mail->WordWrap = 72;

try {
    if(!$mail->Send())
        throw new Exception();
    return 'success';
} catch (Exception $e) {
    return 'error: ' . $mail->ErrorInfo;
}

Wer näheres zum PHPMailer wissen, sollte sich die Tutorial-Sektion und Beispiele auf deren Webseite mal zu Gemüte führen. Kurz zum Code: das beim Instanzieren des PHPMailers übergebene true sorgt dafür, dass evtl. auftretende Fehlermeldungen nicht direkt ausgegeben (echo), sondern als Fehlermeldung geworfen werden (throw new Exception).

Ich hoffe ich konnte dem ein oder anderen Googler damit ein bisschen Haareraufen ersparen ;)

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)

Kommentare (16)

  1. mrvnet.kundenserver.de…..
    Danke! Ich habe es mit der oft kolportierten Version versucht, über sendmail anstatt smtp zu senden, wonach ich auch keine Fehlermeldung mehr erhalten habe, allerdings auch keine Mails rausgegangen sind. Mit dem richtigen smtp-Server ohne Auth geht’s aber. Hat mir eine Menge Kopfschmerz erspart.

  2. Danke auch von meiner Seite!
    Bei mir lief alles bis Juli 2012, dann auf einmal nicht mehr – ohne Vorwarnung. Manchmal kann 1&1 echt nerven!

    • Manchmal ist gut. Ich würde bei allem was Hosting anbelangt die Finger von 1&1 lassen. Aber manchmal hat man keine Wahl.
      Schön, dass nicht nur ich das Problem hatte :)

  3. SUPER – vielen dank !
    ich verwende zwar nicht “PHPMailer” – aber Host “mrvnet.kundenserver.de” und “keine Authentifizierung”
    waren die loesung.
     
     

  4. Auch von mir den ALLERBESTEN DANK! 

    Bis Mai lief unser Script mit phpmailer normal, danach plötzlich nicht mehr! Ewig gegoogelt, nix gefunden, unfähiger 1&1 Support – jetzt endlich die Lösung! 2 thumbs up!!!!

  5. Habe nun versucht mit mrvnet.kundenserver.de und keine Authentifizierung, die E-Mails werden zwar gesendet aber diese landen immer im SPAM-Ordner. Lokal habe ich mit Authentifizierung mit durch smtp.1und1.de probiert, dabei kommen die E-Mails ganz normal an. Ist das etwa nur bei mir so?

    • Hey Johannes,

      das Einordnen in den Spam-Ordner passiert ja nicht bei der Absenden der Mails. Du sagst ja nicht “Achtung, hier kommt eine Spam-Mail”. Der Mail-Provider macht das. Und das ist auch halbwegs verständlich. Wenn du z.B. beim Entwickeln alle 5 Minuten eine Mail an das entsprechende Konto schickst, wird ein Algorithmus irgendwann vermuten, dass es sich um Spam handelt.

      Eigentlich sollte es genügen, wenn du den Absender einmalig zulässt und die Mail aus dem Spam holst. Eigentlich. Hängt von deinem Mail-Provider ab.

      Ich hoffe das hilft dir erstmal weiter.
      Viele Grüße,
      Enno

    • Hey das ist ja super das etwas ältere Beiträge so schnell beantwortet werden!
      Klar du hast recht, hätte vielleicht etwas ausführlicher testen sollen ob bevor ich hier bombe. Wird ja wahrscheinlich bei anderen nicht im Spam landen aber die Sache ist einfach folgende: wenn ich lokal mit Authentifizierung verschicke, auch wenn in 30 Sekunden Takt ist es absolut immer normal im Posteingang. Und das es ohne Authentifizierung immer im Spam landet habe ich mir wohl selber zuzuschreiben^^
      Das stört mich trotzdem etwas.
      Werde das aber die Tage nochmal ausführlich ohne Authentifizierung testen melde mich dann. 

  6. Vielen Dank für die Hilfe – der 1&1-Support konnte mir nicht helfen, daher bin ich froh dass du hier eine Hilfestellung bietest. Leider landen die versendeten Mails immer noch im Spam-Ordner. Seltsam.
    PS: Woher weißt du, dass man mrvnet.kundenserver.de angeben muss?

    • Hey Daniel, danke für deinen Kommentar. Freut mich, dass es jemandem außer mir hilft.
      Zu dem Spam-Problem: schau mal, was Johannes über dir kommentiert hat, der hatte das Problem auch. Das könnte von der Testerei kommen. Das Markieren als Spam passiert ja auf der Gegenseite, nicht beim Versenden der Mail.
      Woher ich das weiß? Keine Ahnung, wirklich. Vermutlich etwas Googelei + Trial & Error. So, wie man als Programmierer halt Probleme löst :D

  7. Hallo,
    vielen Dank, mir hat deine Anleitung auch sehr geholfen.
    Jedoch lädt die Internetseite beim Versenden einer E-Mail extrem lange, wenn ich es folgendermaßen implementiere (schematisch):

    Kannst du mir vielleicht weiterhelfen ? Ich habe das aktuelle “1&1-Basic”-Paket und benutze PHP5.5.
    Normal sollte die Seite schnell geladen sein (keine Bilder etc.).
    Danke !
    mfg

    • Jetzt hat der doch wirklich meinen Code umgesetzt:D
      Hier nochmal ohne die kleiner/größer-Zeichen:
      html
      head /head
      body
      ?php ?
      /body
      /html

    • Hey Florian,

      es gibt ein paar Probleme, weswegen ich dir leider nicht so richtig helfen kann:

      1. Das Problem kann vielseitige Gründe haben.
      2. Ich habe bis auf dieses Mailer-Problem keine weitere Erfahrung mit 1&1 (und bin da ehrlich gesagt auch ganz froh drüber).
      3. Dein Code wird nicht so recht geladen. Ich weiß gerade nicht genau, wie sich das hier mit gestrippten/escapeten Tags verhält.

      Kurz: ich kann dir leider nicht weiterhelfen.
      Dazu: Sorry für die späte Antwort. Die Kommentar-Benachrichtigung ist in meinem Spam-Ordner gelandet.

      Viele Grüße
      Enno