Seite 1 von 2

email adressen

Verfasst: 02.05.2005 07:20
von Any
Guten Morgen!

Stehen irgendwo die Emailadressen der user drin? Ich würd gern ein Newsletter schreiben, um zu erklären warum mein Forum nicht geht. Das liegt nämlich am Server glaub ich... und anscheinend wird sich das so schnell nicht ändern :(

Komme ja auch nicht mehr in den Adminbereich, daher auch nicht an die emailadressen... daher frag ich :)

falls wer sehen will, dass es nich geht --> http://bombkatse.de/Any/phpBB2/

Mailadressen auslesen

Verfasst: 02.05.2005 07:38
von gloriosa
Hallo,
dazu habe ich diesen

Code: Alles auswählen

<?PHP

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

// User überprüfen START
if ( $userdata['user_level'] == ADMIN )
{
// Restrict to members:
if( !$userdata['session_logged_in'] ) 
{ 
   header("Location: " . append_sid("login.$phpEx?redirect=mailadress.$phpEx", true)); 
   exit; 
}

   // MAIL ADRESSEN AUSGEBEN START
   $abfrage = "SELECT user_email FROM phpbb_users WHERE user_email != '' ORDER BY user_email ASC";
   $ergebnis = mysql_query($abfrage);
   echo "<span class = 'gensmall'><center><b>Alle Mailadressen in der Datenbank '" . $dbname . "' auf '" . $dbhost . "':</b></center><br><hr>";
   $datei = fopen("mailadress.txt", "w+");
   rewind($datei);
   while($row = mysql_fetch_object($ergebnis))
   {
   echo $row -> user_email .", ";
   fwrite($datei, $row -> user_email .", ");
   }
   echo "<hr></span>";
   fclose($datei);
   // MAIL ADRESSEN AUSGEBEN ENDE
}
else
{
   message_die(GENERAL_MESSAGE, $lang['Not_Authorised'], $lang['Not_Authorised']);
   exit;
}
// User überprüfen ENDE

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
vor einigen Tagen irgendwo entdeckt und ausprobiert. Das "Miniprogramm" liest die Emailadressen aller User aus und packt sie in eine Textdatei. Das funktioniert prima und wie folgt :
1. Obigen Code in eine Datei z.B. mailadress.php kopieren und in die phpBB-Root transferieren.
2. Mit einem Editor eine leere Datei mailadress.txt anlegen ebenfalls in die phpBB-Root transferieren und mit CHMOD 777 versehen.
3. Das Auslesen starten mit http://www.wasauchimmer.de/mailadress.php
4. die Datei mailadress.txt vom Webspace abholen und am Besten gleich durch eine leere Datei ersetzen.
5. Die in der TXT-Datei enthaltenen Emailadressen sind, systembedingt, durch ein Komma getrennt, so daß die aneinandergereihten Emailadressen nicht in der Adresszeile der Emailclients verwendet werden können. Deshalb einfach, mittels Editor und der Funktion Ersetzen, das Kommo durch ein Semikolon ersetzen.
6. Fertig, die nun "versandbereiten" Emailadressen die Adresszeile des Emailclienten kopieren ..... :wink:

Verfasst: 02.05.2005 07:46
von Any
supi! vielen dank, ich werds gleich mal versuchen :)

Verfasst: 02.05.2005 08:20
von Any
hat geklappt!

8)

Verfasst: 02.05.2005 08:42
von Leuchte
Deshalb einfach, mittels Editor und der Funktion Ersetzen, das Kommo durch ein Semikolon ersetzen.
Warum nicht gleich dort

Code: Alles auswählen

fwrite($datei, $row -> user_email .", "); 
das Semikolon setzen?
Desweiteren verfügt PHP über eine Mail-Funktion...

Verfasst: 02.05.2005 08:57
von gloriosa
Hallo Leuchte,
danke für den Hinweis. Ich habe das gleich so

Code: Alles auswählen

   {
   echo $row -> user_email ."; ";
   fwrite($datei, $row -> user_email ."; ");
   }
geändert, dann wird auch die Bildschirmausgabe entprechend angezeigt ! :wink:

Verfasst: 06.12.2005 19:28
von Dogi
Hallo,

der Beitrag ist zwar schon etwas älter, und das Script funktioniert SUPER aber wie bekomme ich das hin das mir nur die eMail Adressen ausgegeben werden von Mitgliedern die mindestens einen Beitrag geschrieben haben.

Habe das ganz Forum durchsucht aber leider nichts gefunden, über eine Antwort und eine Lösung würde ich mich sehr freuen.

DANKE :lol:

Verfasst: 06.12.2005 22:29
von Jan500
hi

das sollte so gehen:
finde

Code: Alles auswählen

$abfrage = "SELECT user_email FROM phpbb_users WHERE user_email != '' ORDER BY user_email ASC"; 
erstze mit

Code: Alles auswählen

$abfrage = "SELECT user_email , user_posts FROM phpbb_users WHERE user_email != ''AND user_posts >= 1 ORDER BY user_email ASC";
;-)

gruß Jan

Verfasst: 06.12.2005 22:46
von Dogi
Hallo,

DANKE aber leider geht es nicht, es kommt folgende Fehlermeldung!
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/htdocs/mailadress.php on line 30
und das ist die Zeile 30
while($row = mysql_fetch_object($ergebnis))
Evt. noch eine Idee ?

Verfasst: 06.12.2005 22:50
von Jan500
hi

probiers mal damit ;-)

Code: Alles auswählen

<?PHP

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

// User überprüfen START
if ( $userdata['user_level'] == ADMIN )
{
// Restrict to members:
if( !$userdata['session_logged_in'] )
{
   header("Location: " . append_sid("login.$phpEx?redirect=mailadress.$phpEx", true));
   exit;
}

   // MAIL ADRESSEN AUSGEBEN START
   $abfrage = "SELECT user_email , user_posts FROM " . USERS_TABLE . "  WHERE user_email != ''AND user_posts >= 1 ORDER BY user_email ASC";
   $ergebnis = $db->sql_query($abfrage);

   echo "<span class = 'gensmall'><center><b>Alle Mailadressen in der Datenbank '" . $dbname . "' auf '" . $dbhost . "':</b></center><br><hr>";
   $datei = fopen("mailadress.txt", "w+");
   rewind($datei);
  while ( $row = $db->sql_fetchrow($ergebnis) )
 
   {  $mail = $row['user_email'] ;
   echo $mail ."; ";
   fwrite($datei, $mail ."; ");
   }
   echo "<hr></span>";
   fclose($datei);
   // MAIL ADRESSEN AUSGEBEN ENDE
}
else
{
   message_die(GENERAL_MESSAGE, $lang['Not_Authorised'], $lang['Not_Authorised']);
   exit;
}
// User überprüfen ENDE

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Jan