Autor | Zpráva | ||
---|---|---|---|
tuzticzka Profil |
#1 · Zasláno: 28. 11. 2005, 18:28:17
Chtěl bych si udělat automatické rozesílání novinek na email, ale obyčejnou funkci mail() k tomu nemůžu rovnou použít, protože v každé zprávě bude ještě na konci odkaz na zrušení odebírání novinek. No a z toho vyplývá, že každý mail musí být jiný(jenom v tom odkazu na zrušení). Jenže jak to mám udělat, když těch adres(příjemců) je okolo 150(a bude jich pořád víc)?
for($a=0;$a<150;++$a) { mail(...); } tohle jsem zatím zkoušel, ale server to nestíhá a PHP po 30s samo přeruší průběh skriptu, protože se zpracovává moc dlouho... Určitě to jde vykoumat nějak líp, ale zatím mě nic lepšího nenapadlo. Díky za pomoc Martin |
||
WertriK Profil * |
#2 · Zasláno: 28. 11. 2005, 18:40:55
asi to bude lepsi delat postupne treba po 50, proto ty limity
$vysledek = MySQL_Query("SELECT * FROM uzivatele WHERE novinky = 'ano' ORDER BY id LIMIT $pocatek,$konec"); // novinky = ano - kdyby mel zruseno posilani novinek... if(!$vysledek) { echo "Chyba MySQL!"; } ELSE { while ($zaznam = MySQL_Fetch_Array($vysledek)) { $id = $zaznam["id"]; // to pouzijes pro ten odkaz v mailu na zruseni novinek mail(); } } |
||
Rob Profil |
#3 · Zasláno: 28. 11. 2005, 18:49:38
S dovolením se na tomhle tématu taky trochu přiživím. Jak je více méně známo, tak wz má nastaveno limit na e-maily 10emailů/hod. O něčem podobném jako posílání novinek jsem uvažoval (ale trochu v jiné souvislosti). Jde mi o tohle: Když nastavím do jedné f-ce mail() třeba těch zmiňovaných 150 adres, bude se to chápat jako 150 e-mailů nebo jako jeden email???
|
||
krteczek Profil |
#4 · Zasláno: 28. 11. 2005, 18:53:40
bude to 150 emailu
|
||
xixli Profil |
#5 · Zasláno: 28. 11. 2005, 18:56:58
Rob> pokiaľ budú tie adresy cez bcc tak je to ako jeden, myslím
|
||
mila Profil |
#6 · Zasláno: 28. 11. 2005, 19:06:43
Hlavně nedávejte do hlavičky jednoho takového emailu všech 150 lidí.
Někdo se u vás zerigistruje a vy rozhlásíte jeho emailovou adresu dalším 149 lidem.... |
||
Rob Profil |
#7 · Zasláno: 28. 11. 2005, 19:10:27
xixli
bcc - kopie, pokud se nemýlím, ale nemám ani tušení, kam by se to dalo nastavit. Do hlavičky?? a jak? |
||
Anonymní Profil * |
#8 · Zasláno: 28. 11. 2005, 19:15:51
odporucam sa registrovat na niecom(napr. centrum) a posielat maily cez to
|
||
WertriK Profil * |
#9 · Zasláno: 28. 11. 2005, 19:16:39
|
||
Rob Profil |
#10 · Zasláno: 28. 11. 2005, 19:24:04
WertriK
To jde, jen mě zaráží jedna věc v hlavičkách: K čemu je třeba taková $boundary? |
||
WertriK Profil * |
#11 · Zasláno: 28. 11. 2005, 19:37:25
brrrr, to nevim ani ja :/
|
||
Rob Profil |
#12 · Zasláno: 28. 11. 2005, 19:47:03
WertriK
Mám-li být upřímný, tak se mi zdá, že většina vývojářů se řídí heslem proč dělat něco jednoduše, když to jde složitě........ |
||
kaifman Profil |
#13 · Zasláno: 28. 11. 2005, 20:02:00
boundary je oddeleni casti multipartovyho emailu ... tzn ze kazda cast oddelena boundary muze byt jinej content-type
|
||
kaifman Profil |
#14 · Zasláno: 28. 11. 2005, 20:08:15
mila btw bcc je skryta kopie takze ani zdrojak emailu nebude obsahovat ty ostatni maily
|
||
tuzticzka Profil |
#15 · Zasláno: 28. 11. 2005, 20:36:18
je více méně známo, tak wz má nastaveno limit na e-maily 10emailů/hod
WebZdarma jsem opustil už dávno, teďka freehostuju na ProfiTuxu(jejich limity na posílání mailů neznám) Díky za dobré rady, ale já nepotřebuju poslat 150 stejných, ale různých mailů... |
||
Rob Profil |
#16 · Zasláno: 28. 11. 2005, 20:41:17
Předpokládám, že ta různost má být s oslovením apod. Pokud ne, tak si myslím, že více méně odpověděl WertriK, tedy pokud jde o různé id. Pokud myslíš ohledně oslovení, tak bych to udělal podobně - dal bych to do for a přes mysql_fetch_array() bych načet jména a poslal bych email s oslovením podle toho. Jestli to tak není, tak napiš jak konkrétně se ty e-maily mají lišit.
|
||
tuzticzka Profil |
#17 · Zasláno: 28. 11. 2005, 22:08:35 · Upravil/a: tuzticzka
Podle WertriKa to někdy zkusím(až bude čas)
Jinak ten mail by vypadal zhruba tahle: Předmět: Novinky na webu Text: Dne ... přibyla tato novinka: Novinkový textík Pokud už nechcete dostávat tyto e-maily, klikněte na něsledující odkaz h t t p://nic.cz/neposilat.php?id_uz=D5D4HS5HG4SFD5HFH5 PS:to HTTP jsem takhle rozkouskoval jenom kvůli tomu, aby z toho nebyl odkaz Měnit se v mailu bude jenom ten tučný řetězec; každý uživatel má svůj řetězec a to je jediná odlišnost, jinak zbytek je pro všechny stejný. |
||
WertriK Profil * |
#18 · Zasláno: 28. 11. 2005, 23:07:29
jestli to ma byt takto tak to bude asi nejlepsi udelat tak jak jsem psal ...
|
||
Rob Profil |
#19 · Zasláno: 29. 11. 2005, 06:37:23
Taky bych řekl, že nejlépe podle WertriKa. Akorát Ne SELECT * FROM......., ale spíš SELECT id FROM, ale to je asi nad míru jasné.
|
||
Wiki Profil |
#20 · Zasláno: 29. 11. 2005, 12:37:06
Ja len dufam, ze to id_uz nie je priamo hashovane, bo nekto moze xcet vypnut novinky vsetkym (konkurencia) a napise si skriptik, ze:
for($i = 0; $i <$n; $i++) { $file = fopen("h t t p://nic.cz/neposilat.php?" . md5($i)); fclose($file); } A mas po ptakach ;p |
||
tuzticzka Profil |
#21 · Zasláno: 29. 11. 2005, 18:14:20
Wiki
Ta předaná hodnota id_uz=xxx je kódovaná mým vlastním mechanismem, takže se až tak moc nebojím, že by to bylo tak jednoduše zranitelné přes známý hash MD5 :) |
||
Rob Profil |
#22 · Zasláno: 29. 11. 2005, 18:21:45
tuzticzka
To zní zajímavě, můžeš alespoň naznačit v čem ten tvůj mechanismus spočívá?? |
||
ondrakl Profil * |
#23 · Zasláno: 29. 11. 2005, 20:19:38
Fajn a pohodlná věc je php knihovna PHP mailer, (phpmailer.sourceforge.net), distribuovaná pod licencí LGPL)
Umí jak standartní funkci mail tak i posílání přes SMTP server. jednoduchý př. použití: (zdroj z : http://phpmailer.sourceforge.net/extending.html) require("mail.inc.php"); // Instantiate your new class $mail = new MyMailer; // Now you only need to add the necessary stuff $mail->AddAddress("josh@site.com", "Josh Adams"); $mail->Subject = "Here is the subject"; $mail->Body = "This is the message body"; $mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip"); // optional name if(!$mail->Send()) { echo "There was an error sending the message"; exit; } echo "Message was sent successfully"; |
||
tuzticzka Profil |
#24 · Zasláno: 29. 11. 2005, 20:43:15
Nerad bych prozradil až moc, ale ten "hash" co jsem napsal předtím byl jenom na ukázku a není to ten můj hash. Ve skutečnosti to je číslo a přes několik matematických operací a dalších "tajemství" se vygeneruje unikátná číslo(to je ta hodnota, kterou přes metodu GET předávám skriptu neposilat.php a kvůli tomuto hashi potřebuji vygenerovat velké množství emailů se stejných "hlavním" obsahem a jiným hashem pro odhlášení odběru mailů), které se dá samozřejmě zpětně rozkódovat.
|
||
Rob Profil |
#25 · Zasláno: 29. 11. 2005, 20:48:49
tuzticzka
Jak píšu na svém webu, tak..... raději si to přečti, mám na mysli O mně.... Takže mezi to patří mimo jiné i matematika a kódy taky, takže pokud to nechceš prozrazovat veřejně a nevadilo by se ti s tou zajímavostí podělit (alespoň základně), tak: r.oburka@gmail.com ....... lidská zvědavost je hrozná věc........ |
||
tark Profil |
#26 · Zasláno: 1. 12. 2005, 16:56:08 · Upravil/a: tark
Nic proti, ale není jednodušší do mailu napsat Odhlášení provede na example.com/newsletters/unsuscribe.php a bude se odhlašovat ve stylu:
1. Zadejte váš email 2. Přijde vám odhlašovací kód 3. Úspěšně odhlášeno |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0