Home > Lotus Notes Mail , Lotus Notes Solution , Tutorial Lotus Notes , LotusScript > Come utilizzare LotusScript per filtrare e-mail di Lotus Notes

Come usare LotusScript per filtrare e-mail di Lotus Notes

Per questo problema, seconda di cosa si sta cercando di fare, potreste essere in grado di utilizzare il built-in regole di posta elettronica o qualcosa di simile. Ma ci sono due problemi: La vostra organizzazione potrebbe non consentire l'uso di regole, e regole non potrebbe fare quello che vuoi. Per esempio, le regole non può inoltrare la posta ad un altro indirizzo. L'approccio più flessibile, come sempre, è quello di scrivere un agente LotusScript per fare la vostra offerta.

In primo luogo, decidere quale tipo di agente per l'esecuzione. Per esempio, in Lotus Notes è possibile scegliere di eseguire un "prima posta arriva" o "dopo che è arrivata nuova posta" agent.Â

Dettagli agente a parte, e non sapendo esattamente cosa si sta cercando di fare, molto probabilmente bisogno di usare il metodo di ricerca e NotesDatabase.UnprocessedSearch UnprocessedSearch sono favolosamente utili metodi che consentono di selezionare i documenti esattamente come si costruisce una vista:. Utilizzando un formula di selezione.

La formula utilizza esattamente la stessa sintassi della formula di selezione in una vista. (In realtà, è un'ottima idea per utilizzare al fine di sviluppare la formula di prima selezione.)

L'unica differenza tra questi due metodi è che uno sceglie un sottoinsieme della collezione database.unprocessedDocuments e l'altro sceglie un sottoinsieme di tutti i documenti presenti nel database. Entrambi prendono gli stessi parametri e restituire un NotesDocumentCollection. Si dovrebbe cercare documenti non trasformati quando si ha la possibilità di farlo, dal momento che facendo una ricerca è essenzialmente la stessa quantità di lavoro come la costruzione di un indice di visualizzare i Timea primi € "quindi tutto si può fare per abbattere il branco pagherà i dividendi grandi.

Ecco un esempio che si potrebbe utilizzare in un agente, per esempio, trovare tutti i messaggi contenenti la parola "Viagra" nella riga dell'oggetto.

  Sessione Dim come NotesSession nuovo
 Db Dim come NotesDatabase
 Set db = session.currentDatabase
 Lo spam Dim come notesDocumentCollection
 Set di spam = db.unprocessedSearch
 ({@ Contiene (@ maiuscolo (Oggetto);
 "VIAGRA")}, niente, 0)

 SpamDoc Dim come NotesDocument
 Set spamDoc = spam.getFirstDocument
 Fare mentre non è nulla di spamDoc
  â € | di routine chiamata a rapporto o gestire spamâ € |
  Set spamDoc = spam.getNextDoc (spamDoc)
 Anello
 Chiamata spam.removeAll (vero)

I tre parametri sono la formula di selezione, la data limite (età massima dei documenti da selezionare) e il numero massimo di documenti da selezionare. Si noti che ho avvolto la formula di selezione tra parentesi graffe, che in LotusScript può essere usato per delimitare una stringa costante e risparmiare dal pesante compito di citazioni fuga utilizzati nella formula (ad esempio, {"1"}, se lo stesso " \ "1" "ma molto più chiaro).

Se si desidera utilizzare la data limite, è necessario creare un oggetto di dati con una riga di codice come il cutoff fioca come nuovo NotesDateTime ("1970/01/01"). Se non si utilizza la data limite (e probabilmente non sarà), passando per "niente" rende più veloce l'esecuzione della query. Passa zero (0) seleziona tutti i documenti corrispondenti.

Visto 10137 volte da 3150 spettatori

  1. Nessun commento ancora.
  1. Nessun trackback ancora.