PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mailto


Beginner
29.09.2002, 17:52:35
Hallo zusammen,

folgendes Problem: Ich möchte eine Funktion welche mir in meine eMail als Empfänger alle email-Adressen aus eier mysqldatenbank Tabelle ausliest und sonst wie bei einem "normalen" mailto-link mein email Programm bzw. eine neue Nachricht öffnet.

Es handelt sich um einen Newsletter, an die mittels eines Klicks eine eMail verschickt werden kann.
Falls sich jemand schon mal damit auseinandergesetzt hat wäre ich über Hilfe dankbar.
Sorry, dass ich selber zu blöd bin aber ich bin halt noch recht frisch auf diesem Gebiet allerdings willig zu lernen. :-)

Bis denne
Beginner

AndreasBecker
29.09.2002, 20:02:38
Hi,

also, so wie ich das sehe, gibt es 2 Möglichkeiten, dein Problem zu lösen:

a) Du machst keinen Mailto-Link, um deine Newsletter zu verschicken, sondern ein entsprechendes Mailformular, welches die Eingaben an ein (Php)Skript schickt und die Email Adressen aus einer (MySQL)Datenbank liest, an die die Mail verschickt wird (mittels Schleife und entsprechender mail() Befehle).

b) Du machst eben doch den mailto: Link und musst die Adresse bereits aus der Datenbank laden, wenn du den Link erstellst.

Dazu folgendes:
Man stelle sich eine Tabelle in der Datenbank vor, in der alle Email Adressen gespeichert sind (da reichen schon ID und email (varchar) völlig aus als Angaben, es ist jedoch noch erweiterbar mit anderen Angaben wie Name, Vorname usw. ...)

Zunächst macht man sich eine SQL Abfrage á la

"SELECT email_adresse FROM tabellenname"

Die Ergebnisse dieser Abfrage packt man nun in ein Object (mysql_fetch_object) oder in ein Array (mysql_fetch_array) und verbindet das ganze mit einer While Schleife, um den mailto-Link mittels bcc-Angaben zu "bauen".

Bsp.:

( ... Verbindung zur Datenbank herstellen ... )
$sql = "SELECT email_adresse FROM tabellenname";
$result = mysql_query ($sql);

echo "<a href=mailto:webmaster@meine_seite.de?bcc=";

while ($email_data = mysql_fetch_array ($result))
{
echo $email_data [email_adresse].",";
}

echo "&subject=Hier_das_Thema_hin&body=Hier%20den%20Text%20hinein!>Hier klicken, um Newsletter zu versenden!</a>";


So müsste es in etwa funktionieren!

Beginner
30.09.2002, 14:26:56
Danke, funktioniert ;-)

Beginner

mad-boy
01.10.2002, 14:59:39
Original geschrieben von AndreasBecker

while ($email_data = mysql_fetch_array ($result))


Hi,
also ich hab mich mit MySQL noch nicht beschäftigt, aber ich denke es hat damit auch nicht viel zu tun, aber warum schreiben in dieser Zeile immer alle $blabla = mysql_fetch_array($bla0) eigendlich müsste da doch ein == hin, oder???

MiH
02.10.2002, 09:40:09
while($row = mysql_fetch_array($result)
bedeutet du weisst der variablen $row den inhalt von mysql_fetch_array zu.
dies geschieht über $var = $inhalt.

es ist also kein vergleich zweier werte sondern eine zuweisung von inhalt. :)

mad-boy
02.10.2002, 14:12:10
Ja, schon, aber wie kann eine Zuweisung als Bedingung genutzt werden, dabei entsteht doch kein true oder false, oder?

MiH
02.10.2002, 14:53:07
also ja kein true oder false entstehen sondern einfach nur der inhalt von mySQL ergebnis in der variable gespeichert werden. mehr nicht udn weniger auch nicht.

mad-boy
02.10.2002, 14:58:34
ja, das is mir schon alles klar, aber die Schleife wird doch normalerweise nur dann unterbrochen, wenn eine Prüfung false ergibt!
Mir is schon klar was da passiert, ich will eben nur verstehen warum dadurch die Schleife unterbrochen wird! Denn diese Zuweisung findet doch immer statt, und wenn mysql_fetch_array leer ist, dann bekommt eben $email_data auch "nichts" zugewiesen, aber dadurch kann doch nicht die Schleife unterbrochen werden?!?

MiH
02.10.2002, 17:07:23
mysql_fetch_*() liefert einen array.

diese schleife wird so lang duchlaufen bis sie am letzten array element angekommen ist.
wenn nix mehr da ist bricht dann die schleife ab ;)

mad-boy
02.10.2002, 17:46:07
achso, also diese Schleife hat mit der Zuordnung gar nix zu tun oder wie? Also wenn ich nur
while(msql_fetch_array($bla))
schreiben würde, ginge das auch, ja?