Seite 5 von 6

Verfasst: 25.08.2006 04:44
von Fähnchen
Hast du denn sonst einen funktionieren Mailserver Blackeye?
Welches FTP-Programm verwendest du?

Verfasst: 25.08.2006 13:31
von Blackeye
Ich nehme Leap-FTP her. Mailserver hab ich keinen

Verfasst: 25.08.2006 16:53
von Marcelino
Bei mir ging alles einwandfrei. Jetzt plötzlich geht es nicht mehr mit dem SMTP Server von b-one. Hab alles mögliche was hier vorgeschlagen wurde probiert und es ging nicht. Auch bei der Geschichte mit web.de geht es nicht. Da lädt er zwar etwas länger aber dann kommt
Could not connect to smtp host : 110 : Connection timed out

DEBUG MODE

Line : 111
File : smtp.php

Verfasst: 25.08.2006 18:02
von Fähnchen
Blackeye hat geschrieben:Mailserver hab ich keinen
Na, dann kann über PHP auch keine Email gesendet werden.
Dann muss du die SMTP-Variante nehmen. Es geht nicht anders.

Ich habe aber denselben Fehler gehabt trotz funktionierendem Mailserver.

Der Grund war ganz einfach ein fehlerhafter Benutzeraccount in der Datenbank.

@Marcelino: Hast du schon freenet.de probiert?

Verfasst: 26.08.2006 10:15
von Marcelino
Fähnchen hat geschrieben:
@Marcelino: Hast du schon freenet.de probiert?
Damit geht es auch nicht. Allerdings geht es bei mir wieder bei meinem Hostinganbieter b-one Massen Emails zu verschicken, allerdings nur ans Team. Das ging gestern nicht.

Verfasst: 26.08.2006 20:58
von Gooof
Ich finde viel mehr ist der Grund das versende Script... warum geht es denn bei mir nicht?!?
Wenn ich wähle AN ALLE SENDEN geht es nicht.
Wenn ich wähle AN ADMINS & MODERATOREN geht es aufeinmal!

Was kann das denn sein? Und wie kann man das Problem umgehen... am Anfang ging es und jetzt mit der Zeit geht da nichts mehr, Mails werden am Tag mit dem Server über 5000 Stück gesendet.

Danke! :roll:

Verfasst: 26.08.2006 21:07
von Fähnchen
Hey, schaut doch einmal in datenbank eure Useraccounts durch, ob dort alles seine Richtigkeit hat.

Ich hatte kürzlich ein ähnliches Problem. Das Script weigerte sich Standhaft Emails zu versenden. Der Grund war ein Fehlerhafter Useraccount. Im Feld für das Datumsformat stand die Sprache drinne. Diesen Account habe ich korrigiert und einen weiteren, Account gelöscht, der eigentlich für mich als Admin betimmt sein sollte, aber überflüssig war. Sprich durch eine Boardfusion zweimal derselbe Username in der Datenbank.

Nach der Korektur war der Mailversand wieder problemlos möglich.

Verfasst: 26.08.2006 21:12
von Gooof
Das kann bei mir nicht sein, es Funktioniert glaube ich nur bei neuen Foren, Foren mit mehreren Mitgliedern können keine Massenmails mehr versenden. Bei meinem Hosting Service sind schon 1200 Foren angemeldet und bei keinem geht der Versand, es kann nur irgendwas mit dem Code zu tun haben.
Gibt es da evtl. Bugs... denn die Gruppen Massmails gehen ja. Ich kann mir das nur so erklären das es an einem Mod liegt, aber an welchem. :roll:
Ich kann jetzt schlecht bei jedem Forum die Tabelle durchgehen, denn da sind keine Fehler, alles voll ausgefüllt. :wink:

Gibt es vielleicht noch ein anderes Massenmail Tool/Addon für das phpBB?

Verfasst: 26.08.2006 21:24
von Fähnchen
Bei Boards mit vielen Benutzern kann es zu Problemen mit dem Massenmailversand kommen.

Da gibt es ein Workaround für:
http://www.phpbb.de/viewtopic.php?t=119081

Es war nur ein Hinweis von mir aus eigener Erfahrung.
Vielleicht nützt es ja jemandem. :wink:

Verfasst: 26.08.2006 21:52
von Gooof
Mit dem Workaround geht es auch nicht besser, genau das selbe.

Ich poste jetzt mal den Code, vielleicht findet ja einer ne Lösung.
Mails an den Empfänger -1 gehen nicht! Mails an andere z.B. Gruppe 7 geht ohne Probleme.


Im Code ist schon das Workaround installiert.

Code: Alles auswählen

<?php
/***************************************************************************
*                             admin_mass_email.php
*                              -------------------
*     begin                : Thu May 31, 2001
*     copyright            : (C) 2001 The phpBB Group
*     email                : support@phpbb.com
*
*     $Id: admin_mass_email.php,v 1.15.2.7 2003/05/03 23:24:01 acydburn Exp $
*
****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', 1);

if( !empty($setmodules) )
{
	$filename = basename(__FILE__);
	$module['General']['Mass_Email'] = $filename;
	
	return;
}

//
// Load default header
//
$no_page_header = TRUE;
$phpbb_root_path = './../';
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

//
// Increase maximum execution time in case of a lot of users, but don't complain about it if it isn't
// allowed.
//
@set_time_limit(1200);

$message = '';
$subject = '';

//
// Do the job ...
//
if ( isset($HTTP_POST_VARS['submit']) )
{
	$subject = stripslashes(trim($HTTP_POST_VARS['subject']));
	$message = stripslashes(trim($HTTP_POST_VARS['message']));
	
	$error = FALSE;
	$error_msg = '';

	if ( empty($subject) )
	{
		$error = true;
		$error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_subject'] : $lang['Empty_subject'];
	}

	if ( empty($message) )
	{
		$error = true;
		$error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
	}

	$group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]);

	$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not select group members', '', __LINE__, __FILE__, $sql);
	}

	if ( $row = $db->sql_fetchrow($result) )
	{
		$bcc_list = array();
		do
		{
			$bcc_list[] = $row['user_email'];
		}
		while ( $row = $db->sql_fetchrow($result) );

		$db->sql_freeresult($result);
	}
	else
	{
		$message = ( $group_id != -1 ) ? $lang['Group_not_exist'] : $lang['No_such_user'];

		$error = true;
		$error_msg .= ( !empty($error_msg) ) ? '<br />' . $message : $message;
	}

	if ( !$error )
	{
		include($phpbb_root_path . 'includes/emailer.'.$phpEx);

		//
		// Let's do some checking to make sure that mass mail functions
		// are working in win32 versions of php.
		//
		if ( preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery'])
		{
			$ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';

			// We are running on windows, force delivery to use our smtp functions
			// since php's are broken by default
			$board_config['smtp_delivery'] = 1;
			$board_config['smtp_host'] = @$ini_val('SMTP');
		}

    $sendloops = ceil((count($bcc_list)-1)/500);
    $sendstart = 0;
    for ($j = 0; $j <= $sendloops; $j++)
    { 
		$emailer = new emailer($board_config['smtp_delivery']);
	
		$emailer->from($board_config['board_email']);
		$emailer->replyto($board_config['board_email']);

		for ($i = $sendstart; ($i < count($bcc_list)) && ($i < ($sendstart + 500)); $i++)
		{
			$emailer->bcc($bcc_list[$i]);
		}

		$email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "\n";
		$email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n";
		$email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n";
		$email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n";

		$emailer->use_template('admin_send_email');
		$emailer->email_address($board_config['board_email']);
		$emailer->set_subject($subject);
		$emailer->extra_headers($email_headers);

		$emailer->assign_vars(array(
			'SITENAME' => $board_config['sitename'], 
			'BOARD_EMAIL' => $board_config['board_email'], 
			'MESSAGE' => $message)
		);
		$emailer->send();
		$emailer->reset();
      $sendstart = $sendstart + 500;
    } 
		message_die(GENERAL_MESSAGE, $lang['Email_sent'] . '<br /><br />' . sprintf($lang['Click_return_admin_index'],  '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>'));
	}
}	

if ( $error )
{
	$template->set_filenames(array(
		'reg_header' => '../subSilver/error_body.tpl')
	);
	$template->assign_vars(array(
		'ERROR_MESSAGE' => $error_msg)
	);
	$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
}

//
// Initial selection
//

$sql = "SELECT group_id, group_name 
	FROM ".GROUPS_TABLE . "  
	WHERE group_single_user <> 1";
if ( !($result = $db->sql_query($sql)) ) 
{
	message_die(GENERAL_ERROR, 'Could not obtain list of groups', '', __LINE__, __FILE__, $sql);
}

$select_list = '<select name = "' . POST_GROUPS_URL . '"><option value = "-1">' . $lang['All_users'] . '</option>';
if ( $row = $db->sql_fetchrow($result) )
{
	do
	{
		$select_list .= '<option value = "' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
	}
	while ( $row = $db->sql_fetchrow($result) );
}
$select_list .= '</select>';

//
// Generate page
//
include('./page_header_admin.'.$phpEx);

$template->set_filenames(array(
	'body' => '../subSilver/admin/user_email_body.tpl')
);

$template->assign_vars(array(
	'MESSAGE' => $message,
	'SUBJECT' => $subject, 

	'L_EMAIL_TITLE' => $lang['Email'],
	'L_EMAIL_EXPLAIN' => $lang['Mass_email_explain'],
	'L_COMPOSE' => $lang['Compose'],
	'L_RECIPIENTS' => $lang['Recipients'],
	'L_EMAIL_SUBJECT' => $lang['Subject'],
	'L_EMAIL_MSG' => $lang['Message'],
	'L_EMAIL' => $lang['Email'],
	'L_NOTICE' => $notice,

	'S_USER_ACTION' => append_sid('admin_mass_email.'.$phpEx),
	'S_GROUP_SELECT' => $select_list)
);

$template->pparse('body');

include('./page_footer_admin.'.$phpEx);

?>

Wie es aussieht funktioniert hier der Code:

Code: Alles auswählen

$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;
Wo ist der Code jetzt umgekert?