
Har du forslag til et kult produkt, en ny webtjeneste eller et nytt program som vi bør omtale?
Send en epost til: pcwred@pcworld.no
For å arbeide med regler i Outlook 2003, velger du Verktøy/Regler og varsler fra menyen (Regelveiviser i tidligere versjoner). Du kan nå konstruere regler enten fra grunnen av eller basert på ferdige maler.
Du vil raskt se at mulighetene ved sending av meldinger er atskillig mer begrenset enn ved mottak. Dessuten blir reglene først aktivert etter at meldingen er sendt – du kan ikke gripe inn før de sendes. Ved å bruke en innebygd hendelse (eng. Event) i Outlook og programmere denne i Visual Basic for Applications (VBA) etter behov, får du imidlertid full kontroll over meldinger du sender.
For å lære mer om hendelser i Outlook, bør du først lese artikkelen «Følg begivenhetene i Outlook». I artikkelen «Ditt eget regelvelde» kan du lære mer om Outlook-regler. Har du ikke noen VBA-erfaring fra før, bør du dessuten lese våre tidligere artikler som introduserer deg til VBA. Du finner en oversikt over disse her.
Vern dine venner
Uønsket e-post eller spam er blitt et alvorlig problem, og du bør derfor passe godt på at e-postadressen din ikke kommer på avveie. Men enda viktigere er det å beskytte adressene til dine venner og forretningsforbindelser.
En vanlig tabbe blant uerfarne e-postbrukere er å plassere alle mottakere i Til-feltet, uansett hvor mange det dreier seg om. Resultatet av dette er at alle adressene er synlige for og derfor blir distribuert til alle mottakere. Hvis det for eksempel gjelder en kundeliste, betyr det altså at alle kundene får tilgang til hele kundelisten din – og står fritt til å utnytte den til egne formål.
Skaden er ikke så stor hvis det dreier seg om fem eller ti mottakere, men det er ikke uvanlig at meldinger sendes til hundrevis av mottakere på denne måten. De færreste kunder vil sette pris på at du sender deres e-postadresse til uvedkommende, så dette er mildt sagt et dårlig trekk for å opparbeide gode kundeforhold.
For å unngå dette, må du alltid bruke Blindkopi-feltet når du sender meldinger til mottakere som ikke kjenner hverandre. Dette sikrer at hver enkelt mottaker bare kan se sin egen adresse, og ikke adressene til andre mottakere. Hvis dette feltet ikke vises når du starter en ny melding, kan du aktivere det med Vis/Felt for blindkopi.
Med denne problemstillingen som bakgrunn, skal vi lage en VBA-rutine som sjekker antall mottakere i Til- og Kopi-feltet, og flytter dem til Blindkopi-feltet hvis det er for mange. Dermed styrer du unna pinlige tabber som kan gi deg lav anseelse hos dine forbindelser.
ItemSend
Nøkkelen til vår løsning og alle andre oppgaver der du ønsker å fange opp sending av meldinger, er applikasjonshendelsen ItemSend. For å legge inn denne rutinen, åpner du Visual Basic-redigering ved å taste Alt-F11. I prosjektvinduet i VBA, dobbelklikker du på modulen ThisOutlookSession slik at kodevinduet åpnes.
I kodevinduet velger du først Application i listen øverst til venstre, og deretter ItemSend i listen til høyre. Outlook legger nå inn et skjelett for ItemSend-rutinen der du kan skrive programkoden som skal løse oppgaven.
ItemSend har to parametere: Item inneholder selve meldingen som skal sendes, mens Cancel kan brukes for å avbryte sendingen.
Vår rutine er vist i figur 1, og vi skal se på hvordan den virker. Som nevnt blir alle adresser du legger inn i Til-feltet eller Kopi-feltet i en melding, synlige for alle mottakere av meldingen. Finner vi for mange slike synlige adresser, skal vi hindre at de blir tilgjengelig for uvedkommende ved å flytte adressene til Blindkopi-feltet.
Rutinen starter med konstanten Grense, som angir det maksimale antallet synlige adresser som vi kan akseptere. Hvis antallet er høyere, blir alle adressene flyttet til Blindkopi-feltet etter at brukeren har fått en melding og godkjent flyttingen.
Vi sjekker også om det finnes én eller flere distribusjonslister blant adressene. Distribusjonslister inneholder normalt en del adresser. Derfor er dette i seg selv nok til at vi aktiverer flyttingen av adresser, uansett hvor mange synlige adresser som ellers finnes.
Programkoden fortsetter med Dim-setninger som definerer de fem variablene vi trenger: Mottaker brukes for å arbeide med hver enkelt mottaker, AntallSynlig teller opp antall synlige mottakere, Distrib blir sann hvis det er en distribusjonsliste blant adressene, AdrType brukes for å sjekke dette, mens Svar håndterer brukerens svar på meldingsboksen.
To oppgaver
Etter at de to variablene AntallSynlig og Distrib er satt til sine startverdier, kan rutinen påbegynne selve arbeidet. Jobben består av to oppgaver: Først teller vi opp antall adresser i feltene Til og Kopi. Hvis det finnes en distribusjonsliste blant adressene, blir Distrib satt til True.
Siden hele rutinen arbeider med meldingen (Item), har vi pakket inn alle setningene i en With Item-setning, slik at Item er lett tilgjengelig overalt.
Hver melding har en samling (eng. Collection) med navnet Recipients som inneholder meldingens mottakere. Vi kan derfor lage en For Each-løkke som ser nærmere på alle mottakere av typen Til (olTo) eller Kopi (olCC, eng. «Carbon Copy»). For hver mottaker vi finner i et av de to feltene, øker vi telleren med 1.
Deretter bruker vi egenskapen AddressEntry.DisplayType for å sjekke om adressetypen er en distribusjonsliste. Det er tilfellet hvis den har verdien olDistList eller olPrivateDistList.
Med løkken har vi nå kartlagt to ting: Hvor mange synlige mottakere meldingen har, og om det finnes én eller flere distribusjonslister blant adressene. Hvis det finnes flere synlige mottakere enn grensen vår eller vi har funnet minst én distribusjonsliste, flytter vi samtlige adresser til Blindkopi-feltet.
Det ville være litt uhøflig å gjøre dette uten videre, og vi har derfor laget en meldingsboks som informerer brukeren om hva vi har funnet. Meldingsboksen er vist i figur 2.
Brukeren kan godkjenne flyttingen av adresser ved å klikke OK. Alle adressene fra Til- og Kopi-feltene blir da flyttet til Blindkopi-feltet og meldingen sendes.
Klikker brukeren Cancel, blir sendingen avbrutt ved å sette parameteren Cancel til True. Brukeren kommer da tilbake til den usendte meldingen, og kan selv endre mottakerne og deretter prøve å sende meldingen på nytt.
Flyttingen til Blindkopi-feltet er enkel å utføre: Vi gjennomgår på nytt alle mottakerne med en For Each-løkke. Hvis mottakeren er av typen olTo eller olCC, settes typen i stedet til olBCC (eng. «Blind Carbon Copy»).
Noen utfordringer
Rutinen vår gjør en god jobb, men har også et par svakheter. Hvis meldingen har flere mottakere enn grensen, og du ikke vil plassere disse i Blindkopi-feltet, får du rett og slett ikke sendt meldingen (for eksempel en melding til seks venner som alle kjenner hverandre og allerede har hverandre e-postadresse).
En annen kosmetisk svakhet er at Outlook 2003 legger din egen avsenderadresse i Til-feltet når du sender meldinger som blindkopier. Det er bedre å bruke et mer beskrivende mottakernavn i Til-feltet, som for eksempel «Våre kunder» (men fortsatt med din egen adresse). Mottakerne forstår da at meldingen også er sendt til andre enn dem selv.
Begge disse punktene kan rettes med noen ekstra programsetninger, og vi foreslår at du tar utfordringen. Det vil være gode øvelser for å bli bedre kjent med VBA og objektmodellen i Outlook. Bruk hjelpfilen for å finne frem, og ta kontakt for å få noen hint om du blir stående helt fast.
Som vanlig bør du også skrive inn denne rutinen selv, slik at du blir godt fortrolig med å skrive VBA-kode. Hvis du eventuelt trenger å sjekke at alt er korrekt, kan du laste ned programkoden her.
Testet i Outlook 2003
Løsningene i denne artikkelen er utviklet og testet i Outlook 2003, men vil så vidt vi vet fungere tilsvarende i Outlook XP.
Oppsiktsvekkende test viser at moderne smarttelefoner ikke tåler nordisk vinter. Verst er iPhone.
Å bruke stømnettet kan være et godt alternativ til både vanlig kablet og trådløst nettverk.
Nå er de heteste tastaturene basert på gammeldags teknologi.
PCWorld utgis avCopyright 2012 IDG Magazines Norge AS. All rights reserved
Postboks 9090 Grønland – 0133 OSLO / online@idg.no / Telefon 22053000
Ansvarlig redaktør Morten Kristiansen / Utviklingsansvarlig Ulf H. Helland / Salgsdirektør Jon Thore Thorstensen