Teknik för nyhetsutskick
8 svar · 322 visningar · startad av ps
Det finns olika varianter att göra det på. Vad som lämpar sig bäst beror på vad du har tillgång till för funktioner. Att föredra är om den mailserver du använder har en inbyggd funktion för att hantera maillistor. Den kan se ut så att du har ett mailkonto upplagt knutet till en databas med namn (e-post adresser). När du mailar till detta konto (med valfri koll på vilka som tillåts att göra utskick) så går mailservern igenom databasen för utskicket och skickar det mail som du vill. Detta finns det säkert lika många varianter på som det finns mailservrar, men grundidén är ofta densamma. Fördelen med detta är att det bara är mailservern som behöver jobba. Stödjer din mailserver inte någon sådan funktion får du göra det the hard way. Ett script/program som skickar lika många mail som du har i din lista. Detta genererar givetvis mycket med nätverkstrafik och tar mer resurser (mailservern gör samma jobb, men sedan har du ytterligare en process som körs).
Ett tips är att inte köra detta direkt knutet till en webbapplikation. Anledningen är att kör du ett större utskick så kommer du tillslut att ta så lång tid att webservern får en timeout (tror att ditt script ligger i en oändlig snurra) och dödar processen. Alternativ är att köra scriptet från ett shellkonto, att skapa en förälderfri process (som inte kommer att dödas när föräldern=ditt script dör), eller så får du schema-lägga ditt script så att det körs vid en förutbestämd tidpunkt.
------------------
/ J
Hej,
Jag håller med Jojoxx.
Men finns inte de möjligheterna så kan du testa detta script och se hur din webservern hanterar processer.
http://freebox.com/c.h/perl/process.cgi.txt
Detta script kommer bara fungera på något nix baserat system. IIS har inte stöd för fork och Apache på windows väntar tills child processen är färdig.
------------------
Hansen
c.h@ngmedia.com
Kör du något Windows-baserat system kan du faktiskt leta reda på det gamla DOS-kommandot start för att dra igång en demon-process. Inte den snyggaste lösningen, men det fungerar.
------------------
/ J
Ett alternativ till, på win32 plattform är att använda sig av Win32::Process
------------------
Hansen
c.h@ngmedia.com