"Contact Form 7" auf goneo-Webspace zum Laufen kriegen

Mail

Kontaktformulare sind eine gute Sache, wenn sie funktionieren. Funktionieren sie nicht, werden sie schnell zu einem Quell steten Ärgernis. Dies ist der Fall, wenn man seine WordPress-Installation auf goneo-Webspace liegen hat. goneo hat nämlich im März sein System dergestalt modifiziert, dass Mail-Skripte nur noch mit einer bei goneo angelegten Email-Adresse funktionieren. Dies ist eine Reaktion auf das erhöhte Spam-Aufkommen.

Möchte man dann - so wie ich - seinen Blog mit dem ganz ausgezeichneten PlugIn "Contact Form 7" ausstatten, wird das nicht von Erfolg gekrönt sein, auch wenn bei Testläufen immer die Meldung "Email wurde erfolgreich versandt." erscheint. Man muss dem Skript also irgendwie seine bei goneo angemeldete Email-Adresse mitteilen.

Dies kann man einerseits sicherlich im PlugIn selbst machen, was kompliziert ist und genau bis zum nächsten Update hält, oder man geht den Weg über die php.ini. Letztere Möglichkeit beschreibe ich im folgenden, wobei mod_rewrite aktiviert sein muss, was auf dem goneo-Webspace problemlos möglich und generell empfehlenswert ist.

Also dann: Nehmen wir an, unser Kontaktformular ist über den URL "http://www.meine-homepage.tld/kontaktformular/" im WordPress-System erreichbar. Dann müssen wir kurz gesagt nur eine Kopie der php.ini mit den entsprechenden Anpassungen in das Verzeichnis "/kontaktformular/" laden und schon funktioniert alles.

Dafür brauchen wir als erstes das Verzeichnis "/kontaktformular/". Da wir mod_rewrite benutzen, existiert dieses Verzeichnis nicht. Wir legen es aber einfach an, indem wir auf der root-Ebene unserer WordPress-Installation (dort, wo die Ordner wp-admin, wp-content und wp-includes liegen) einen Ordner erstellen und "kontaktformular" nennen. In diesen kopieren wir die "index.php"-Datei von der root-Ebene und modifizieren sie im Text-Editor der Wahl folgendermaßen:

Aus Zeile 17…

require('./wp-blog-header.php');

wird…

require('../wp-blog-header.php');

Nicht wundern, es wurde wirklich nur ein Punkt hinzugefügt.

Als nächstes brauchen wir eine Kopie der php.ini, um "Contact Form 7" unsere Email-Adresse mitteilen zu können. Um diese in den Ordner "kontaktformular" zu kopieren, legen wir im Ordner eine PHP-Datei an und nenne sie "copyini.php". In diese fügen wir folgenden Code-Schnippel ein:

PHP
<?php
$cfg=get_cfg_var('cfg_file_path');
if (copy($cfg,'./php.ini')) {
    echo "Kopieren erfolgreich"; }
else {
    echo "Kopieren fehlgeschlagen"; }
?>

Danach gehen wir in den Browser und rufen das Skript auf, indem wir "http://www.meine-homepage.tld/kontaktformular/copyini.php" in die Adresszeile eintippen. Nun sollte im Browser-Fenster die Zeile "Kopieren erfolgreich" erscheinen. Das bedeutet, dass eine Kopie der php.ini im Ordner "kontaktformular" angelegt wurde.

Nun schmeißen wir die Datei copyini.php weg und nehmen uns die php.ini vor. Einfach im Text-Editor der Wahl öffnen und die Zeile 630

sendmail_path = /usr/local/sbin/sendmail -t -i

durch folgende ersetzen:

sendmail_path = /usr/local/sbin/sendmail -t -i -f mail@meine-homepage.tld

Nun noch speichern und fertig ist die Laube!

Ich möchte allerdings noch einmal darauf hinweisen, dass sich diese Anleitung nur auf WordPress-Installationen bezieht, die auf goneo-Webspace liegen. Solltet ihr bei einem anderen Hoster sein und Probleme haben, kann ich euch nur das Support Forum nahe legen.

Nachtrag:

Der Sicherheit halber solltet ihr zum Schluss noch den Zugriff auf auf die php.ini-Datei über den Browser per .htaccess unterbinden. Das geht mit folgendem Code-Schnipsel, der in besagte .htaccess-Datei eingetragen werden muss:

.htaccess
<Files php.ini>
   order allow,deny
   deny from all
</Files>

Weiterführende Links:

Bild: The slot for the mail next to the front door also has the doorbell button on it. von Samuraijohnny unter CC-Lizenz

  • Twitter
  • Facebook
  • del.icio.us
  • MisterWong.DE
  • Yigg
  • MySpace
  • StumbleUpon
  • Webnews.de
  • LinkArena
  • Technorati
  • Digg

Geschrieben am 11. Juni 2009 • Abgelegt unter Tips und Tricks, Tutorial, WordPressRivva

11 Kommentare zu ""Contact Form 7" auf goneo-Webspace zum Laufen kriegen"

  1. Frank

    19.6.2009

    Danke für den Tipp,
    Hatte auch das Problem, ist zwar blöd kann aber Goneo verstehen, dass sie was gegen Spams unternehmen müssen! Ich habe mich mit meinem Problem an Support bei Goneo gewandt, die haben mir dann sehr gut weitergeholfen. Ich finde es aber schön, dass du dir die Mühe machst um zu helfen.

  2. Besten Dank für den Tipp, habe schon selbst recherchiert, aber nichts gefunden, was den Versand blockiert. Leider braucht es bei mir einige Zeit, bis die Mail dann endlich im Postfach ankommt.

  3. Jan

    25.6.2009

    Danke für den Tip. Kannst du noch erklären, wie man bei goneo mod_rewrite aktiviert?

  4. Jan

    25.6.2009

    Ich habe es so zum laufen bekommen:

    Ich habe die modifizierte php.ini in das Verzeichnis "/wp-content/plugins/contact-form-7/admin" kopiert damit läuft es auch. Was beim nächsten Update geschieht weiß ich noch nicht...

  5. @jan: du erstellst auf deinem rechner eine leere text-datei und nennst sie htaccess.txt

    diese lädst du ins root-verzeichnis deiner wordpress-installation und benennst sie in .htaccess (vorne mit punkt, hinten ohne suffix!) um.

    daraufhin gehst du ins backend unter "einstellungen => permalinks" und wählst deine präferierte permalink-struktur. nun wird die .htaccess-datei mit den nötigen angaben versehen und mod_rewrite ist aktiviert.

    mehr muss man nicht machen.

  6. ofkoors

    21.7.2009

    Hallo! Kurze Frage zum letzten Artikel: Was muss bei worpress unter den permalink einstellungen machen bzw. was für ne einstellung wähle ich??

  7. Emanuel

    21.7.2009

    das kommt darauf an, was du möchtest. ich wähle immer benutzerdefinierte struktur: "/%category%/%postname%/"

    macht für mich am meisten sinn. es gibt allerdings auch leute, die schwören darauf, das datum mit in die permalinks zu nehmen. angeblich erleichtert das den suchmaschinen, die beiträge zeitlich einzuordnen.

  8. ofkoors

    22.7.2009

    Hallo! Habe alles fast so gemacht wie bei dir beschriebn...doch leider bekomme ich immer noch keine emails! Wenn ich die copyiny.php über den browser aufrufe funktioniert das kopieren nicht. Ich muss anstatt "http://www.meine-homepage.tld/kontaktformular/" diese adresse "http://www.meine-homepage.tld/wordpress/kontaktformular/ eingeben dann erscheint kopieren erfolgreich. Kann es vielleicht daran liegen...??? Oder muss auch noch wo anders die php.ini hin kopieren und abändern???
    Mfg
    ofkoors

  9. Emanuel

    23.7.2009

    das tutorial geht davon aus, dass die wordpress-installation auf der obersten ebene liegt.

    sollte sie bei dir im unterordner "wordpress" liegen, wird natürlich aus jedem 'http://www.meine-homepage.tld/' ein 'http://www.meine-homepage.tld/wordpress/.'

  10. Hallo.
    Danke für die Anleitung. Hätte da aber noch 1-2 Fragen, da ich es nicht zum laufen kriege.

    Das Kontaktformular ist bei mir so zu erreichen:
    http://www.gl-l.eu/allgemein/kontakt.html

    Und hab diese Strucktur: /%category%/%postname%.html

    Wie muss ich den Ordner benennen?
    Hab es mal mit allgemein angelegt und dort die angepasste index.php angelegt und auch die copyini.php

    Wenn ich die URL aufrufe, kommt bei mir leider nur ne leere Seite:
    http://www.gl-l.eu/allgemein/copyini.php

    Was hab ich da falsch gemacht?
    Wäre um ein Tipp dankbar =)

    Viele Grüße

    Sammy

  11. Emanuel

    28.2.2010

    hallo sammy, aus der ferne ist das natürlich nicht so leicht zu beurteilen. man kann grundsätzlich davon ausgehen, dass, wenn du auf deinem webspace im root-verzeichnis einen ordner 'allgemein' angelegt und in diesen die datei copyini.php gelegt hast, diese über die von dir genannte adresse erreichbar sein sollte.

    wenn der pfad also stimmt und die datei trotzdem nicht erreichbar ist, bin ich überfragt. das einzige, was mir dann noch einfiele, wäre, dass es vielleicht probleme mit dem mod_rewrite und der von dir angefügten dateiendung .html für unterseiten gibt. ist aber reine spekulation.