Autor Zpráva
tuzticzka
Profil
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 *
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
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
bude to 150 emailu
xixli
Profil
Rob> pokiaľ budú tie adresy cez bcc tak je to ako jeden, myslím
mila
Profil
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
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 *
odporucam sa registrovat na niecom(napr. centrum) a posielat maily cez to
WertriK
Profil *
viz http://php.ftp.cvut.cz/manual/cs/function.mail.php
Rob
Profil
WertriK
To jde, jen mě zaráží jedna věc v hlavičkách: K čemu je třeba taková $boundary?
WertriK
Profil *
brrrr, to nevim ani ja :/
Rob
Profil
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
boundary je oddeleni casti multipartovyho emailu ... tzn ze kazda cast oddelena boundary muze byt jinej content-type
kaifman
Profil
mila btw bcc je skryta kopie takze ani zdrojak emailu nebude obsahovat ty ostatni maily
tuzticzka
Profil
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
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
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 *
jestli to ma byt takto tak to bude asi nejlepsi udelat tak jak jsem psal ...
Rob
Profil
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
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
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
tuzticzka
To zní zajímavě, můžeš alespoň naznačit v čem ten tvůj mechanismus spočívá??
ondrakl
Profil *
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
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
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
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
Toto téma je uzamčeno. Odpověď nelze zaslat.

0