
Problém s rozesíláním E-mailu na více adres najednou
Dobrý den mám menší problém se scriptem přes který by se měly hromadně odesílat e-maily na adresy které jsou zapsány v databázi...
každý kdo má zájem mlže tam svou adresu zapsat...
$dbhost="***********";
$dbusr="********";
$dbpassw="********";
$dbname="*********";
@$link=mysql_pconnect($dbhost,$dbusr,$dbpassw) or die("<p class='nadpis'>Server nepřipojen !!!</p>");
@$db=mysql_select_db($dbname,$link) or die("<p class='nadpis'>Databáze nebyla nalezena !!!</p>");
$dotaz = "SELECT * FROM novinky";
$result=mysql_query($dotaz,$link);
$pocet=mysql_num_rows($result);
echo "<p class='nadpis'>Databáze obsahuje celkem: $pocet záznamů.</p>";
while($polozka=mysql_fetch_array($result)) echo "<p>$polozka[mail]</p>";
//zadání vstupních hodnot
$predmet=$HTTP_POST_VARS[predmet];
$zprava=$HTTP_POST_VARS[novinka];
$address="$dotaz";
$subject="Novinky z Smycmaweb";
$message = "
<style type='text/css'>
.text {
text-align: left;
Color: #000066;
font-family: verdana, sans-serif;
font-size: 12px;
font-weight: bold;
text-decoration: none;
}
.text_c {
text-align: left;
Color: #BC0000;
font-family: verdana, sans-serif;
font-size: 12px;
font-weight: bold;
text-decoration: none;
}
</style>
<p class='text'>Novinky z Smycmaweb</p>
<table>
<tr>
<td width='120'><p class='text'>Co nového:</p></td>
<td><p class='text_c'>$predmet</p></td>
</tr>
<tr>
<td width='120'><p class='text'>Zpráva:</p></td>
<td><p class='text_c'>$novinka</p></td>
</tr>
</table>";
$headers="MIME-Version: 1.0\n";
$headers.="Content-type: text/html; charset=windows-1250\n";
$headers.="From: Smycmaweb\n";
mail($address,$subject,$message,$headers);
echo "<p class='nadpis'>Novinky rozeslány</p>";
Toto je script na kterém to vázne mezi deklarovanými proměnnými je také položka address do které když napíšu pevnou adresu tak všechno šlape jak má ale potřeboval bych tam nějak dostat nějakou proměnou která by brala všechny záznamy ve sloupci tabulky s adresami v databázi...
prosté
$promenna = SELECT * FROM novinky;........ nestaci a nefunguje
prosím o pomoc
Ad Tvůj script : jak už Ti tady napsali v předchozích odpovědích, proměnnou $address je nutno plnit cyklem. Příkaz
$address="$dotaz";
je opravdu nesmyslný.
Ad oprava dan55 :
nejdřív je nutno vyřešit chybové hlášení o nedefinovaném linku :
polož
$link=mysql_connect($dbhost,$dbusr,$dbpassw);
Ještě radši oprav :
while($polozka=mysql_fetch_array($dotaz))
na
while($polozka=mysql_fetch_array($dotaz,MYSQL_BOTH ))
nejsem si jist, zda se bez tohoto doplnění $polozka["mail"] naplní.
Skript zkus a napiš další případné potíže.
Ranní dodatek :
Řádek while($polozka=mysql_fetch_array($dotaz))
opravovat nemusíš, bylo by to sice dobře (já to píšu všude) , ale MYSQL_BOTH je defaultní hodnota.
dostal jsem se obět do fáze že to nefunguje ale taky to nehází chybu.... teť bych potřeboval pomoct s tím cyklem v address včera mi jeden radil abych použil for aleto se mi nějak nezdá...
zkoušel jsi ten cyklus while ..... ,
který navrhnul dan55 ?
Ten se zdá opticky v pořádku.
I kdyby tam ještě něco nesedělo, návrh je ve správném duchu.
Pokud to nepůjde, tak to vyzkouším u mě na serveru a pak napíšu, jestli to je chyba scriptu
Tak mi to nedalo, a script jsem vyzkoušel
Struktura DB: email (varchar 100 cp1250) a id (int8,autoIncrement,unique)
Tento kód, a vše OK!