30/07/2007

Una modifica per togliere: "Inviato da:"

Nella mia azienda molti uffici dispongono di una casella di posta comune in aggiunta a quella personale.
Recentemente è sorta l'esigenza di nascondere il vero mittente delle mail inviate dalla casella comune.
Non volevo adottare un modello di posta completamente differente da quello in uso in azienda in quanto già personalizzato con alcune funzioni e basato sul modello R6.5.4.
La soluzione piu' semplice che ho trovato è la seguente:
1. ho modificato alcune righe di codice della libreria lotusscript "CoreEmailClasses_it-IT" dedicate all'invio della mail;
2. ho creato un agente "SendMail_MailBox" schedulato ogni 15 minuti che si occupa dell'effettivo invio delle mail usando il "mail.box" per nascondere il mittente.

Nel dettaglio:
1. Nelle varie funzioni presenti nelle "Declaration" della libreria lotusscript ho sostituito le righe del "Send" con:
REM Call Me.m_noteUIMemo.Send()
If Me.m_noteUIMemo.EditMode Then Me.m_noteUIMemo.Refresh
Call Me.m_noteMemo.ReplaceItemValue("PostedDate", Now)
Call Me.m_noteMemo.ReplaceItemValue("ToBeSent", "1")
Call Me.m_noteMemo.Save(True, False)
Inoltre nella zona "Case MEMO_SEND":
If Me.m_nSaveFlag = IDYES Then
Call SetOptionField(ITEM_SAVEOPTIONS,ITEM_FORCE_ACTION)
Else
REM Call SetOptionField(ITEM_SAVEOPTIONS,ITEM_NO_FORCE_ACTION)

Call SetOptionField(ITEM_SAVEOPTIONS,ITEM_FORCE_ACTION)
Call Me.m_noteMemo.ReplaceItemValue("ToBeDeleted", "1")
(questo serve per cancellare effettivamente le mail che non si desidera salvare dopo l'invio).

2. L'agente che si occupa di inviare le mail fa una ricerca all'interno della casella di posta dei documenti con campo ToBeSent="1", crea un nuovo documento nel database "mail.box" e ne popola i campi con metodo copyallitems a partire dal documento di mail da inviare. Modifica il campo "From" col nuovo mittente e salva la mail. L'agente si occupa poi di cancellare la mail originale se il campo ToBeDeleted vale "1".

NOTE:
Il tutto funziona unicamente da client lotus notes e usando i pulsanti "Invia" oppure "Invia e archivia...".

1 comment:

Iarin Fabbri said...

Grazie per la info!