2014

Feb

16

Av Rolf

FileMaker erbjuder att skicka epost till alla hittade poster med manussteget Skicka e-post. Det är dock ofta inte det bästa alternativet. 

  • Epostadresser kan vara felaktiga. Om en epostadress är felaktig vill du förmodligen få meddelande, kunna hitta den och rätta till den. Det går inte om man skickar till alla hittade poster samtidigt.
  • Mailservrar tillåter ofta inte att man skickar hur många epostmeddelande som helst. För att undvika spam och överbelastning på mailservrar finns det ofta en gräns på antal epostmeddelande som kan skickas t.ex. per timme. Det kan vara t.ex 200 eller 300 st per timme, eller max 10 st i minuten, kontrollera med din epostleverantör vilka regler som gäller för dig.

Istället för att skicka till alla hittade poster på en gång gör du en loop som går genom samtliga poster och skickar epost till en och en. Efter varje skickat epostmeddelande sparar du resultatet, dvs. om manussteget Skicka e-post ger ett felmeddelande eller inte. På så sätt kan du söka fram de som blivit fel, dvs. där funktionen Get (SenasteFel) returnerar ett värde som är större än 0.

Epost_Manus1

Manuset går först till den första hittade posten. Med manussteget Loop upprepas alla manussteg fram till End Loop. I det här fallet skickas ett epostmeddelande till epostadressen som finns i aktuell post, sedan sparas eventuellt felmeddelande i fältet Epost_resultat innan manuset går vidare till nästa post och kommandona upprepas. När det inte finns fler poster avslutas loopen tack vare att du markerat kryssrutan Avsluta efter sista för manussteget Gå till nästa post. Jag väljer att skicka epost via en SMTP-server, vilket gör att de skickas ”i bakgrunden”.

Alla poster där värdet i Epost_resultat är större än 0 har inte gått att skicka. Observera att det kan bli fel ändå, FileMaker kan t.ex. inte känna av om epostadressen inte finns även om den är korrekt inskriven. Du får då mailet i retur till den avsändaradress du anger i manussteget Skicka epost. Vilka felmeddelanden som finns kan du se här, de för epost brukar ha nummer 1500-1507.

Om du skickar många mail och vill begränsa t.ex. till 200 mail per timme kan du göra en paus, t.ex. skicka 100 mail, vänta i 30 minuter, skicka ytterligare 100 mail osv. För att veta att du skickat exakt 100 mail använder du funktionen Mod. Den ger som resultat resten av en division, t.ex. ger 145 dividerat med 100 resultatet 45. Jag använder funktionen Get (Postnummer) för att få reda på vilken post som är aktuell. I manuset nedan görs en paus i 30 minuter efter 100 skickade mail innan manuset går vidare.

Epost_Manus2

Nackdelen är att du behöver vänta i 30 minuter utan att kunna använda datorn/FileMaker, vill du skicka hundratals mail kan det ta en hel dag.

Om databasen finns på en FileMaker Server kan du låta servern skicka dina mail istället. Då behöver du ingen paus i mailet, låt istället servern söka fram de som ska få mailet (du har markerat dem på något sätt innan) och skicka 100 mail. Schemalägg manuset till att köras var 30:e minut. Du slipper vänta på att FileMaker skickar mailen och du och dina kolleger som använder samma databas kan lägga till fler personer som ska få epost under tiden.

Ett manus som söker fram poster som ska få mail och skickar 100 st kan se t så här:

Epost_100

Manussteget Uteslut poster ser till att det endast finns max 100 poster hittade. För att inte manuset ska hitta samma post igen markeras den som skickad med manussteget Tilldela fält [Ska få epost; ”Nej”]. (Lägg märke till att manuset har samma upplägg som manusmallen som jag tidigare skrivit om.)

 

Skriv en kommentar

Din epost-adress stannar hos oss.