Avatar billede michael_stim Ekspert
26. maj 2014 - 15:14 Der er 4 kommentarer og
1 løsning

Bulk email og send.

Har en SMS-tjeneste som selvfölgelig sender sms'er ud. Men når f eks gatewayen er nede sendes der et mail med fejlbeskrivelse, og bliver der sendt mange sms'er kommer der mange mails. Er der en smart måde at samle de mails og f eks sende hvert 5. minut?

Bruger curl_setopt og hvis curl_getinfo ikke er lig med f eks 200 sendes der mail.


private function SendRaw($tXML) {
        // Send using curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->tServer);
curl_setopt($ch, CURLOPT_TIMEOUT, 8);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $tXML);
$tData = curl_exec($ch);
$iHTTPCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
       
  if ($iHTTPCode != 200) {
    //Her sendes der en mail ved fejl       
  }
   
}
       
return $tData;
}


Havde evt. tänkt mig at göre brug af en täller og så sätte en sleep() på, men det virker ikke optimalt. Nogle gode idéer?
Avatar billede repox Seniormester
26. maj 2014 - 16:34 #1
Registrer fejl i en database og lad et cronjob sende en mail hvert femte minut?
Avatar billede michael_stim Ekspert
27. maj 2014 - 08:57 #2
Tak for svar repox, men ville helst ikke göre brug af cronjob, tanken havde strejfet mig. Der må findes en eller anden smart måde at samle mails (eller errors) i en "klump" og derefter köre dem?

Havde tänkt mig noget á la:


$counter=20;
for($i=0; $i < $counter; $i++){
//send mail
}
sleep(300);

Men det virker ikke som den optimale måde at göre det på, når man nu ikke bruger cron.
Avatar billede repox Seniormester
27. maj 2014 - 09:11 #3
Cronjobs er jo faktisk den eneste rigtige måde at gøre det på, hvis du vil styre frekvensen af de mails der bliver sendt.


Alternativet, som for mig virker lidt usikkert, er at du registerer dine fejl i en database, og for hver gang der kommer fejl, kontrollerer du et timestamp i databasen for sidste gang du sendte fejl på en mail. Hvis der er gået fem minutter, så saml fejlene, send en mail og så forfra.

Usikkerheden i det, består så i at hvis du ikke lige har en udsendelse der finder fejl inden for den tidsramme, så får du først fejlene tilsendt ved næste udsendelse.

Og så er det en grim løsning.
Avatar billede michael_stim Ekspert
28. maj 2014 - 08:24 #4
Läg et svar og tak for din tid og forslag.
Avatar billede repox Seniormester
28. maj 2014 - 10:01 #5
Det fik du her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester