Zum Inhalt springen

mm_forum 0.1.6 Emailbenachrichtigung klappt nicht

Erstellt am 5. Mai 2008 · 18 Antworten · letzte Antwort am 6. Mai 2008

Tags: E-Mail-Versand, Frage

thomas_vienna ·

Hi Ben!
Irgend so etwas habe ich auch vermutet.
Seltsam nur, dass diese Fehler nicht bei allen anderen auch auftritt.
Danke, dass du dich da mal schlau machst!
Liebe Grüße,
Thomas

Benjamecho ·

Ich bin leider nicht so fit, was Datenbankabfragen angeht...
Jedoch folgendes finde ich merkwürdig

list($to_username, $to_usermail) = $GLOBALS['TYPO3_DB']->sql_fetch_row($GLOBALS['TYPO3_DB']->exec_SELECTquery($this->getUserNameField().',email','fe_users','uid="'.$row['user_id'].'"'));

-> das Komma vor "email"

In einer alten Version stand vor dem Komma noch "username", aber sowohl ohne Komma, als auch mit "username" davor komme ich nicht weiter.

Im Bugtracker ist das Problem auch schon bekannt: http://bugs.typo3.net/view.php?id=195

thomas_vienna ·

Hi!
Bin leider auch kein Profi aber:

Sollte diese Zeile nicht eher so aussehen:

list($to_username, $to_usermail) = $GLOBALS['TYPO3_DB']->sql_fetch_row($GLOBALS['TYPO3_DB']->exec_SELECTquery($this->getUserNameField().'username','email','fe_users','uid="'.$row['user_id'].'"'));

Ich frage mich auch, was in folgender Funktion gemacht wird:

$this->getUserNameField()

Noch eine Frage an dich. Wo genau legst du das debug textfile an? Oder wird das File durch das php Script angelegt? Dannkann ich auch leichter Test machen...

Danke!
Thomas

thomas_vienna ·

Noch eine Frage:
weißt du ob user_id richtig übergeben wird.
Davon hängt nämlich ab, b in der DB etwas gefunden wird.

Benjamecho ·

Ich habe das kleine PHP-Snippet für die Textdatei direkt vor die if-Abfrage eingebaut und das Textdokument ist dann in meinem /html/ Ordner gelandet. Wofür die Funktion genau gut ist habe ich auch noch nicht verstanden. Jedenfalls ist sie in dieser Version neu hinzugekommen.

m.​helmich ·
thomas_vienna schrieb

Sollte diese Zeile nicht eher so aussehen:

list($to_username, $to_usermail) = $GLOBALS['TYPO3_DB']->sql_fetch_row($GLOBALS['TYPO3_DB']->exec_SELECTquery($this->getUserNameField().'username','email','fe_users','uid="'.$row['user_id'].'"'));

Nein. Wie in der Quelltextdokumentation zu entnehmen, liefert getUserNameField() den Namen des Datenbankfeldes, in welchem der Benutzername steht, also in aller Regel "username". Daher muss auch das Komma vor "email" stehen (sonst würde ja schließlich das Feld "usernameemail" abgefragt) und daher ist auch das hinzufügen des "username"-Feldes überflüssig (noch dazu ohne Komma und als eigener String).
Im Bugtracker wurde das Problem bereits korrekt erkannt; ein Patch steht im SVN zur Verfügung.

Martin

Benjamecho ·

@Thomas: Ich habe nur die kleine Änderung vorgenommen, daher brauchgte ich nicht die ganze Datei.

@Martin: Besten Dank, jetzt funktioniert es! Eine Frage: warum hast Du die Änderung nicht entsprechend dem Vorschlag im Bugtracker gemacht, sondern die !empty($to_usermail)-Abfrage rausgeworfen? Wenn beim user keine Adresse hinterlegt ist, braucht das Forum doch erst keinen Mailversuch zu starten, oder wird das an anderer Stelle breits überprüft?

m.​helmich ·
Benjamecho schrieb

@Martin: Besten Dank, jetzt funktioniert es! Eine Frage: warum hast Du die Änderung nicht entsprechend dem Vorschlag im Bugtracker gemacht, sondern die !empty($to_usermail)-Abfrage rausgeworfen? Wenn beim user keine Adresse hinterlegt ist, braucht das Forum doch erst keinen Mailversuch zu starten, oder wird das an anderer Stelle breits überprüft?

Hallo,

die Abfrage ist doch noch drin...?

Martin

Benjamecho ·
m.helmich schrieb

die Abfrage ist doch noch drin...?

Jetzt sehe ich es auch, sorry, habe offensichtlich in der falschen Version geschaut.

Muss die Änderung auch bei der darauf folgenden Funktion send_newpost_mail_forum durchgeführt werden? Da fehlt jedenfalls in der if-Abfrage die $to_usermail-Variable.

Ben