Seite 1 von 1

E-Mail Benachrichtigung bei Antwort auf ein Thema

Verfasst: 10.01.2008 19:06
von SkYfiGhTeR
Hallo,

ich habe ein phpBB 2.0.22 mit einigen MODs.

Ich habe schon längere Zeit nichts mehr an dem Forum geändert (was MODs anbetrifft und eigentlich auch die Einstellungen), jedoch hat jetzt ein User berichtet, dass die E-Mail Benachrichtigung bei einer Antwort auf ein Thema nicht funktioniert.

Ich habe das dann selbst getestet und mal bei verschiedenenen Themen auf "Bei Antworten zu diesem Thema benachrichtigen" geklickt und ein Posting gemacht und es kommt wirklich keine E-Mail.

Auch bei einem neu erstellten Thema mit angehakter Option "Benachrichtigt mich, wenn eine Antwort geschrieben wurde" funktioniert es nicht.

Die Benachrichtigungs-Funktion bei neuen privaten Nachrichten funktioniert einwandfrei.

Die E-Mail zur Account-Aktivierung wird auch einwandfrei verschickt.

Im ACP ist "Benutzer E-Mails per Board" deaktiviert, was ja damit aber auch nichts zu tun hat. Daher ist auch "Nutze einen SMTP Server zum Mailen" nicht gesetzt.

Es kann und wird natürlich so sein, dass die Funktion einwandfrei funktioniert hat, bevor irgdeneiner der MODs hinzugekommen ist.

Ich bin daher die MOD-Liste durchgegangen und konnte mir hinsichtlich des Problems nur einen MOD vorstellen, der hier evtl. mit ins Spiel gebracht werden könnte.

Das wäre der "Easy Admin Topic Notifier" von StefanKausL in Version 1.0.4.

Diesen habe ich eingebaut und so erhält jeder Administrator bei jedem neuen Thema im Forum eine Benachrichtigungs-Mail.

Es wurde lediglich die functions_post.php bearbeitet (und die E-Mail.tpl hochgeladen):

Code: Alles auswählen

#-----[ OPEN ]---------------------------------------------
#
includes/functions_post.php

#
#-----[ FIND ]---------------------------------------------
#
			$topic_id = $db->sql_nextid();

#
#-----[ AFTER, ADD ]---------------------------------------------
#
			sk_send_mail_to_admins($topic_id, $post_subject);

#
#-----[ FIND ]---------------------------------------------
#
?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
function sk_send_mail_to_admins($topic_id, $post_subject) {
	global $board_config, $lang, $db, $phpbb_root_path, $phpEx;

	include($phpbb_root_path . 'includes/emailer.'.$phpEx);
	$emailer = new emailer($board_config['smtp_delivery']);

	$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
	$script_name = ($script_name != '') ? $script_name . '/viewtopic.'.$phpEx : 'viewtopic.'.$phpEx;
	$server_name = trim($board_config['server_name']);
	$server_protocol = ($board_config['cookie_secure']) ? 'https://' : 'http://';
	$server_port = ($board_config['server_port'] <> 80) ? ':' . trim($board_config['server_port']) . '/' : '/';

	$sql = "SELECT user_email, user_lang FROM " . USERS_TABLE . " WHERE user_level = " . ADMIN;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql);
	}

	while ($row = $db->sql_fetchrow($result))
	{
		$emailer->email_address(trim($row['user_email']));
		$emailer->use_template('easy_admin_topic_notifier', 'english');  // See Notes!
		$emailer->from($board_config['board_email']);
		$emailer->set_subject($lang['New_post']);
		$emailer->assign_vars(array(
			'SITENAME' => $board_config['sitename'],
			'TOPIC_TITLE' => $post_subject,
			'U_TOPIC' => $server_protocol . $server_name . $server_port . $script_name . '?' . POST_TOPIC_URL . "=$topic_id",
			'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
		);
		$emailer->send();
		$emailer->reset();
	}
	$db->sql_freeresult($result);
}

#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
Evtl. liegt es an dieser Veränderung...einfach eine originale function_posts.php habe ich jetzt noch nicht genommen, da ich nicht genau weiß, ob ich noch andere Veränderungen an der Datei vorgenommen hatte und so dann irgendetwas außer Funktion setze. ;)

Falls man es anhand des Codes natürlich nicht sagen kann, werde ich wohl nicht darum herumkommen.

Danke im Voraus.

Verfasst: 12.01.2008 22:20
von SkYfiGhTeR
Hallo,

hm...scheint ein wohl nicht allzu häufiges Problem zu sein, zumindest in dieser "Art".

Die Suche nach diesem Thema mit der E-Mail Benachrichtigung brachte zwar einige Ergebnisse, jedoch bezogen die sich eher allgemein auf E-Mail Einstellungen und solche Geschichte.

Meine Vermutung liegt jedoch eher darin, dass die gepostete Code-Änderung durch den eingebauten MOD "schuld" ist.

Falls dazu natürlich niemand etwas weiß, werde ich es wohl einfach mal "wagen" müssen und die functions_post.php kurz gegen die aus dem Original-Paket austauschen müssen. ;)

Freue mich natürlich trotzdem noch über evtl. Hilfe oder Tipps.

Verfasst: 23.01.2008 16:17
von SkYfiGhTeR
Hallo,

schade, dass sich bisher noch niemand gemeldet hat.

Ich habe soeben nun einmal die functions_post.php gegen eine Originale functions_post.php getauscht.
Dann habe ich bei einem bestehenden Thema die Option "Bei Antworten zu diesem Thema benachrichtigen" aktiviert und mit einem anderen Benutzer ein Posting in diesem Thema verfasst.
Danach habe ich umgehend eine entsprechende Mail erhalten.

D.h. es liegt an der functions_post.php wie von mir vermutet, wegen der Modifizierung (s. erster Beitrag).

Wäre prima, wenn mir da jemand weiterhelfen könnte.

Es sollte eben so sein, dass weiterhin alle Administratoren _immer_ eine E-Mail erhalten, sobald ein neues Thema im Forum eröffnet wurde. Und dabei soll natürlich die normal Funktion für Antworten auf einzelne Beiträge weiterhin funktionsfähig bleiben, was sie derzeit ja nicht mehr ist.

Danke.

Verfasst: 23.02.2008 10:29
von SkYfiGhTeR
Hallo,

einen Monat später und ich probiere es einfach nochmal...da es mir doch relativ wichtig wäre, dass diese Funktion wieder einwandfrei funktioniert.
Vielleicht hat ja doch jemand eine Idee...

Danke.