Sei sulla pagina 1di 31

Studio Informatica S.r.l.

mailDocPRO:
Libreria WSSec:
Servizi sicuri

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Changelog

Data Autore Versione


29/04/2016 Stefano Silvotti 4.16.0429
07/04/2017 Stefano Silvotti 4.17.0407
05/05/2017 Gianluigi Ciambriello 4.17.0505

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Sommario
Introduzione: ................................................................................................................................. 5
1 – Interfaccia ILogin................................................................................................................... 5
DoLogin : .................................................................................................................................... 5
CaricaByUserId: .......................................................................................................................... 5
2 – Interfaccia IPECInbox ........................................................................................................... 6
InboxGetAllegato : .................................................................................................................... 6
InBoxMove : ................................................................................................................................ 7
InBoxCarica : .............................................................................................................................. 8
InboxGetItem : ........................................................................................................................... 9
InboxGetItemFull : .................................................................................................................... 9
FolderPECInboxCarica : ......................................................................................................... 10
FolderPECInboxAdd:............................................................................................................... 11
InboxGetRawMail: ................................................................................................................... 11
InboxGetAllegatoBusta: ......................................................................................................... 12
InboxSettaFlagLetta: .............................................................................................................. 12
3 – Interfaccia IPECOutbox ...................................................................................................... 13
OutBoxGetAllegato :............................................................................................................... 13
OutBoxGetAllegati : ................................................................................................................ 13
OutBoxGetItem : ...................................................................................................................... 14
OutBoxGetItemBodyAllegati :............................................................................................... 14
OutBoxGetBody : ..................................................................................................................... 14
OutBoxDestinatariCarica : .................................................................................................... 15
OutboxGetRawMail: ................................................................................................................ 15
OutboxGetStato: ..................................................................................................................... 16
FolderPECOutboxCarica : ...................................................................................................... 17
FolderPECOutboxAdd: ........................................................................................................... 17
OutBoxAggiungiAllegato : .................................................................................................... 18
OutBoxAggiungiAllegatoZipped : ....................................................................................... 18
OutBoxAggiungiAllegato64 : ............................................................................................... 19
OutBoxCrea : ............................................................................................................................ 19
OutBoxFinalizza : .................................................................................................................... 20
OutBoxGetRicevute : .............................................................................................................. 20
OutBoxAggiungiClasseInfo : ................................................................................................ 21
OutBoxMove : .......................................................................................................................... 21

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

4 – Tutorial ................................................................................................................................... 22
Aggiunta dei riferimenti ai servizi ...................................................................................... 22
Login dell’utente ..................................................................................................................... 22
Utilizzo del token di autenticazione .................................................................................. 23
Creazione di una nuova mail ............................................................................................... 23
Aggiungere un allegato ......................................................................................................... 24
Invio di una mail ..................................................................................................................... 25
Controllo delle ricevute di una mail inviata ..................................................................... 25
5 – SoapUI test ............................................................................................................................. 26
Login dell’utente ................................................................................................. 26
Utilizzo del token di autenticazione: ................................................................................. 26
Creazione nuova mail ........................................................................................................ 26
Aggiunta di un allegato ..................................................................................................... 27
Invio di una mail.................................................................................................................. 27
Appendice: .................................................................................................................................... 29
a – Utilizzo di PagingReq ............................................................................... 29
b – Utilizzo dei filtri ...................................................................................... 29

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Introduzione:

I servizi esposti dalla libreria “Smouse.MailDocPro.WSSec” sono rese sicure da una fase di autenticazione
per-chiamata al servizio di un utente tecnico applicativo (è possibile gestire le abilitazioni di questa utenza
tecnica per definire di quali servizi può avvalersi).
Di seguito verranno illustrati i vari metodi del modulo divisi per interfaccia.

1 – Interfaccia ILogin
Gestisce la login sicura dell’utente.
DoLogin :
Function DoLogin(UserId As String,
Password As String)
As LogonRetun

Descrizione: funzione che permette l’autenticazione di un utente

Parametri:
- UserId Id dell’utente
- Password Password dell’utente
- UserId Id dell’utente

Valore Oggetto LogonRetun: se valorizzato (login successful) contiene la coppia di prorietà “Utente”
ritornato: e “Token”

Attenzione: la proprietà “Token” dovrò sempre essere inserita nell’header delle


chiamate

CaricaByUserId:
Function CaricaByUserId (UserId As String)
As List(Of Server2.Objects.AccountPECReturn)
Descrizione: funzione che permette di ottenere la lista di tutti gli account PEC su cui l’utente può
operare
Parametri:
- UserId Id dell’utente

- Valore Lista di AccountPECReturn: contiene gli oggetti di tipo account associati all’utente.
ritornato:

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

2 – Interfaccia IPECInbox
Gestisce tutte le operazioni effettuabili sulla Inbox (posta in arrivo)

Attenzione: si precisa che l’oggetto di ritorno dei metodi di questa interfaccia è di tipo: EsitoWS(Of
. . .)
Questo tipo di oggetto contiene sempre:
- Esito: esito della chiamata; può assumere i valori “OK”, “KO” o “Non autorizzato”
- Messaggio: messaggio testuale descrittivo dello stato della risposta alla chiamata
- Metodo: contiene il nome del metodo chiamato
- Oggetto: oggetto di tipo (Of . . .) specificato in EsitoWS

Verranno ora di seguito illustrati i vari metodi utilizzabili:

InboxGetAllegato :
Function InBoxGetAllegato(IdMail As Integer,
Allegato As String)
As EsitoWS(Of Byte())

Descrizione: funzione che permette il recupero di uno specifico allegato di una email (riconosciuta in
base all’ID univoco)
Parametri:
- IdMail Id della mail ricercata
- Allegato Nome dell’allegato ricercato

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Byte(): se esistente e se autorizzati contiene il file richiesto (in formato array di bytes)

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

InBoxMove :
Function InBoxMove(UserId As String,
IdMail As Integer,
NewIdFolder As Integer,
OldIdFolder As Integer,
Force As Boolean)
As EsitoWS(Of String)

Descrizione: funzione che permette lo spostamento di una mail (identificata dal suo ID) da una
cartella ad un’altra.
Attenzione: le due cartelle devono esistere
Parametri:
- IdMail Id della mail ricercata
- NewIdFolder Id della cartella di destinazione della mail
- OldIdFolder Id della cartella di provenienza della mail
- Force Flag per forzare lo spostamento della mail

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - String: messaggio contenente la descrizione dell’esito positivo / negativo dello
spostamento della mail

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

InBoxCarica :
Function InBoxCarica(PagingReq As PagingReq,
IdFolder As Integer,
Filtri As Filtri)
As EsitoWS(Of EsitoRicerche(Of Mail))
Descrizione: permette il caricamento di tutte le email di una cartella della inbox, con la possibilità di applicare
filtri per filtrare i risultati e di paginare il risultato ottenuto.
Parametri:
- PagingReq Gestisce il paginamento durante il caricamento delle mail della cartella della inbox con
IdFolder.
Per maggiori dettagli, consultare l’apposita sezione in appendice.

- IdFolder Identificativo della cartella di cui si desidera caricare le email


- Filtri Filtri opzionali. Per maggiori dettagli, consultare l’apposita sezione in appendice.

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - EsitoRicerche(Of Mail):
Contiene l’esito del caricamento EsitoRicerche così composto:
o Handle: handle della pagina caricata
o Esito: esito del caricamento
o Totale: numero di elementi totali
o Ritornati: numero di elementi della pagina
o CurrPage: numero della pagina attuale
o TotPage: numero delle pagine totali
o Objects As List(Of Mail):contiene le email della/e pagina/e selezionata/e
o NextPage: puntatore alla prossima pagina

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

InboxGetItem :
Function InboxGetItem(IdMail As Integer)
As EsitoWS(Of Mail)

Descrizione: funzione che permette il recupero dell’email in base all’ID (univoco)

Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Mail: contiene, se esistente e se autorizzati la mail richiesta.

InboxGetItemFull :
Function InBoxGetItemFull(IdMail As Integer)
As EsitoWS(Of Mail)

Descrizione: funzione che permette il recupero dell’email in base all’ID (univoco).


Rispetto a InboxGetItem questo metodo restituisce tutte le proprietà connesse all’email
ricercata.
Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Mail: contiene, se esistente e se autorizzati la mail richiesta comprensiva di tutte le sue
proprietà (allegati, testo della busta, etc…)

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

FolderPECInboxCarica :
Function FolderPECInboxCarica(IdAccount As Integer,
FlDaLeggere As Boolean)
As EsitoWS(Of IEnumerable(Of FolderPECInbox))

Descrizione: funzione che fornisce l’elenco di tutte le cartelle / sottocartelle di una Inbox (selezionata in base
all’ID Account).
Attenzione: le email delle cartelle non vengono caricate.
Parametri:
- IdAccount Id dell’account scelto
- FlDaLeggere Se impostato, ritorna anche il calcolo delle email da leggere in ogni cartella/sottocartella
della inbox.
Valore Oggetto EsitoWS: contiene in aggiunta:
ritornato: - IEnumerable(Of FolderPECInbox):
Contiene la lista di tutte le cartelle di una inbox; ogni elemento della lista comprende:
o DaLeggere: numero delle email da leggere
o Display: il nome della cartella visualizzato nell’applicativo
o IdAccount: Id dell’account di riferimento.
o IdFolder: Id della cartella selezionata
o IdFolderParent: Id della cartella di livello superiore (nel caso di sottocartelle)
o Image: l’icona della cartella selezionata
o IsSystem: indica se è una cartella di sistema
o Nome: nome fisico della cartella
o Posizione: numero corrispondente all’ordine di visualizzazione nel menù delle
cartelle / sottocartelle

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

FolderPECInboxAdd:
Function FolderPECInboxAdd(UserId As String, IdAccount As Integer, IdFolderParent As Integer,
FolderName As String, FolderDisplay As String)
As EsitoWS(Of FolderPECInbox)
Descrizione: Funzione per creare una cartella

Parametri:
- UserId Id dell’utente
- IdAccount Id dell’account scelto
- IdFolderParent Id della cartella che conterrà la cartella creata.
- Foldername Nome della cartella da creare
- FolderDisplay Nome della cartella da visualizzare nell’applicazione web

Valore ritornato: Oggetto EsitoWS: contiene in aggiunta:

- FolderPECInbox: Oggetto Folder che rappresenta la cartella creata

InboxGetRawMail:
Function InboxGetRawMail(IdMail As Integer)
As EsitoWS(Of String)
Descrizione: Funzione per ottenere la mail originale

Parametri:
- IdMail Id della mail da recuperare
Valore Oggetto EsitoWS: contiene in aggiunta:
ritornato: - String: Stringa Unicode contenente la mail originale

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

InboxGetAllegatoBusta:
Function InBoxGetAllegatoBusta(IdMail As Integer, Allegato As String)
As EsitoWS(Of Byte())
Descrizione: Funzione per ottenere un allegato della busta. Es: Daticert.xml

Parametri:
- IdMail Id della mail da recuperare

-Allegato Nome dell’allegato da recuperare (Es: Daticert.xml)

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Byte(): array di byte con il contenuto dell’allegato

InboxSettaFlagLetta:
Function InboxSettaFlagLetta(IdMail As Integer, UserId As String, FlagLetta As Boolean)
As EsitoWS(Of String)
Descrizione: Funzione per Segnare una mail come “Letta” oppure “Da leggere”

Parametri:
- IdMail Id della mail da recuperare

- Allegato Nome dell’allegato da recuperare (Es: Daticert.xml)

-FlagLetta True per letta, False per Da leggere


Valore Oggetto EsitoWS: contiene in aggiunta la stinga “Operazione Eseguita”
ritornato:

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

3 – Interfaccia IPECOutbox
Gestisce tutte le operazioni effettuabili sulla Outbox (posta in uscita)

Attenzione: si precisa che l’oggetto di ritorno dei metodi di questa interfaccia è di tipo: EsitoWS(Of
. . .)
Questo tipo di oggetto contiene sempre:
- Esito: esito della chiamata; può assumere i valori “OK”, “KO”o “Non autorizzato”
- Messaggio: messaggio testuale descrittivo dello stato della risposta alla chiamata
- Metodo: contiene il nome del metodo chiamato
- Oggetto: oggetto di tipo (Of . . .) specificato in EsitoWS

Verranno ora di seguito illustrati i vari metodi utilizzabili:

OutBoxGetAllegato :
Function OutBoxGetAllegato(IdMail As Integer,
Allegato As String)
As EsitoWS(Of Byte())
Descrizione: funzione che permette il recupero di una email in base all’ID (univoco)

Parametri:
- IdMail Id della mail ricercata
- Allegato Nome dell’allegato ricercato

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Byte(): se esistente e se autorizzati contiene il file richiesto (in formato array di bytes)

OutBoxGetAllegati :
Function OutBoxGetAllegati(IdMail As Integer)
As EsitoWS(Of String())

Descrizione: funzione restituente una lista composta dai nomi del/i file/s allegato/i ad una email
(selezionata tramite ID)
Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - String() contiene, se esistenti e se autorizzati, tutti i nomi dei files allegati alla mail
scelta.

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutBoxGetItem :
Function OutBoxGetItem(IdMail As Integer)
As EsitoWS(Of Mail)

Descrizione: funzione che permette il recupero dell’email in base all’ID (univoco)

Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Mail: contiene, se esistente e se autorizzati la mail richiesta

OutBoxGetItemBodyAllegati :
Function OutBoxGetItemBodyAllegati(IdMail As Integer)
As EsitoWS(Of Mail)

Descrizione: funzione che permette il recupero dell’email in base all’ID (univoco).


Rispetto a OutBoxGetItem questo metodo restituisce tutte le proprietà connesse all’email
ricercata.
Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - Mail: contiene, se esistente e se autorizzati la mail richiesta comprensiva di tutte le sue
proprietà (allegati, testo della busta, etc…)

OutBoxGetBody :
Function OutBoxGetBody(IdMail As Integer)
As EsitoWS(Of String)

Descrizione: funzione che permette il recupero dell’email in base all’ID (univoco).


Rispetto a OutBoxGetItem questo metodo restituisce tutte le proprietà connesse all’email
ricercata.
Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - String: il testo della email selezionata

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutBoxDestinatariCarica :
Function OutBoxDestinatariCarica(IdMail As Integer)
As EsitoWS(Of IEnumerable(Of DestinatarioPEC))

Descrizione: funzione che restituisce una lista comprendente i destinatari di una mail (scelta in
base all’ID univoco)
Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - IEnumerable(Of DestinatarioPEC):
Contiene una lista di tutti i destinatari della email selezionata. Ciascuno comprende:
o IdMail: Id della mail ricercata
o Destinatario: nome del destinatario
o IdMailRicevuta: Id della email di ricevuta
o StatoConsegna: stato della singola consegna

OutboxGetRawMail:
Function OutboxGetRawMail(IdMail As Integer)
As EsitoWS(Of String)
Descrizione: Funzione per ottenere la mail originale

Parametri:
- IdMail Id della mail da recuperare
Valore Oggetto EsitoWS: contiene in aggiunta:
ritornato: - String: Stringa Unicode contenente la mail originale

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutboxGetStato:
Function OutBoxGetStato(IdMail As Integer)
As GetStatoReturn
Descrizione: Funzione per conoscere lo stato di accettazione e consegna di una mail spedita

Parametri:
- IdMail Id della mail
Valore Oggetto EsitoWS: contiene in aggiunta:
ritornato: Oggetto MailOutboxGetStatoReturn composto da:
IdMail
IdMsgOriginale Id Generato dal provider
Stato
StatoAccettazione
Destinatari

Il campo Stato può assumere i seguenti valori:


NonAttiva, Attiva, InoltrataCorrettamente, InErrore, Conclusa,
InCaricoAlServizio, Spedita.

StatoAccettazione può assumere i seguenti valori:


InAttesa, PresaInCarico, AvvenutaConsegna,
NonConsegnata, AccettataDestinatariOrdinari, NonAccettataLetta.

StatoConsegna può assumere i seguenti valori:


TutteInAttesa, AttesaConsegnate, AttesaErrore, ConsegnateErrore, TutteErrore,
TutteConsegnate, ErroreLetta.

Destinatari è una lista di oggetti di tipo Destinatario contenente:


IdMail
Destinatario
IdMailRicevuta
StatoConsegna
TipoDestinatario

StatoConsegna può assumere I valori:


StatoSingoAttesa, AvvenutaConsegna,MAncataconsegna, NonApplicabile.

TipoDestinatario può assumere i seguenti valori:


PEC, Ordinario ,NonAncoraNoto, NonValorizzato.

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

FolderPECOutboxCarica :
Function FolderPECOutboxCarica(IdAccount As Integer)
As EsitoWS(Of IEnumerable(Of FolderPECInbox))

Descrizione: funzione che fornisce l’elenco di tutte le cartelle / sottocartelle di una Outbox (selezionata in
base all’ID Account).
Attenzione: le email delle cartelle non vengono caricate.
Parametri:
- IdAccount Id dell’account scelto

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - IEnumerable(Of FolderPECOutbox):
Contiene la lista di tutte le cartelle di una inbox; ogni elemento della lista comprende:
o Display: il nome della cartella visualizzato nell’applicativo
o IdAccount: Id dell’account di riferimento.
o IdFolder: Id della cartella selezionata
o IdFolderParent: Id della cartella di livello superiore (nel caso di sottocartelle)
o Image: l’icona della cartella selezionata
o IsSystem: indica se è una cartella di sistema
o Nome: nome fisico della cartella
o Posizione: numero corrispondente all’ordine di visualizzazione nel menù delle
cartelle / sottocartelle

FolderPECOutboxAdd:
Function FolderPECOutboxAdd(UserId As String, IdAccount As Integer, IdFolderParent As Integer,
FolderName As String, FolderDisplay As String)
As EsitoWS(Of FolderPECOutbox)
Descrizione: Funzione per creare una cartella

Parametri:
- UserId Id dell’utente
- IdAccount Id dell’account scelto
- IdFolderParent Id della cartella che conterrà la cartella creata.
- Foldername Nome della cartella da creare
- FolderDisplay Nome della cartella da visualizzare nell’applicazione web

Valore ritornato: Oggetto EsitoWS: contiene in aggiunta:

- FolderPECOutbox: Oggetto Folder che rappresenta la cartella creata

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutBoxAggiungiAllegato :
Function OutBoxAggiungiAllegato(IdMail As Integer,
NomeFile As String,
Buffer As Byte())
As EsitoWS(Of AggiungiAllegatoReturn)

Descrizione: permette di allegare un file ad una email (identificata tramite ID)

Parametri:
- IdMail Id della mail ricercata
- NomeFile Nome del file
- Buffer Il file fisico in formato array di bytes

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - AggiungiAllegatoReturn: ritorna l’esito dell’allegamento del file

OutBoxAggiungiAllegatoZipped :
Function OutBoxAggiungiAllegatoZipped(IdMail As Integer,
NomeFile As String,
Buffer As Byte())
As EsitoWS(Of AggiungiAllegatoReturn)

Descrizione: permette di allegare un file compresso ad una email (identificata tramite ID)

Parametri:
- IdMail Id della mail ricercata
- NomeFile Nome del file
- Buffer Il file fisico in formato array di bytes

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - AggiungiAllegatoReturn: ritorna l’esito dell’allegamento del file

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutBoxAggiungiAllegato64 :
Function OutBoxAggiungiAllegato64(IdMail As Integer,
NomeFile As String,
Buffer64 As String)
As EsitoWS(Of AggiungiAllegatoReturn)

Descrizione: permette di allegare un file codificato in base64 ad una email (identificata tramite ID)

Parametri:
- IdMail Id della mail ricercata
- NomeFile Nome del file
- Buffer64 Il file fisico codificato in base64

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - AggiungiAllegatoReturn: ritorna l’esito dell’allegamento del file

OutBoxCrea :
Function OutBoxCrea(Input As CreaInput) As EsitoWS(Of CreaReturn)

Descrizione: funzione per la creazione di una nuova mail da inviare (verrà depositata in posta in
uscita).
Attenzione: l’utilizzo di questo metodo non comporta anche l’invio dell’email
Parametri:
- Input Oggetto contenente tutti i parametri necessari alla creazione di una nuova mail (in posta in
uscita):
- UserId: Id dell’utente che ha richiesto la creazione
- IdAccount: Id dell’account di posta associato all’utente
- Oggetto: oggetto della email
- Priorita: priorità della email
- Mittente: indirizzo email del mittente
- Destinatari: lista degli indirizzi dei destinatari
- CC: lista degli indirizzi di posta in copia conoscenza
- BCC: lista degli indirizzi di posta in copia conoscenza nascosta
- TipoRicevuta: tipologia della ricevuta (completa / semplice)
- DtInvioPrevista: data di invio dell’email
- Body: testo della email
Valore Oggetto EsitoWS: contiene in aggiunta:
ritornato: - CreaReturn: fornisce lo stato della creazione della email

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutBoxFinalizza :
Function OutBoxFinalizza(Input As FinalizzaInput)
As EsitoWS(Of FinalizzaReturn)

Descrizione: finalizza una email, rendendola visibile dall’applicativo mailDocPRO

Parametri:
- Input Oggetto contenente tutti i parametri necessari alla creazione di una nuova mail (in posta in
uscita):
- UserId: Id dell’utente
- IdMail: Id della email da finalizzare
- FlAttiva: setta la mail come attiva; sarà inviata e verrà visualizzata in posta inviata (se
non attiva sarà comunque visibile nella sezione Bozze)
- FlMassivo: segnala che l’email proviene da un invio massivo; in caso affermativo non
verrà agganciata né a posta inviata né alle bozze)

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - FinalizzaReturn: fornisce lo stato della finalizzazione della email

OutBoxGetRicevute :
Function OutBoxGetRicevute(IdMail As Integer)
As EsitoWS(Of IEnumerable(Of Mail))

Descrizione: funzione che permette di reperire tutte le ricevute associate ad una mail (identificata
tramite ID univioco)
Parametri:
- IdMail Id della mail ricercata

Valore Oggetto EsitoWS: contiene in aggiunta:


ritornato: - IEnumerable(Of Mail): Contiene tutte le ricevute (prese dalla Inbox) della mail
selezionata.

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

OutBoxAggiungiClasseInfo :
Function OutBoxAggiungiClasseInfo(Input As AggiungiClasseInfoInput)
As EsitoWS(AggiungiClasseInfoReturn)

Descrizione: aggiunge un record alla classe informativa (metadati) di una email.

Parametri:
- Input Oggetto contenente tutti i parametri necessari alla creazione/associazione della classe
informativa
- IdMail: Id della email di cui si vuole aggiungere i metadati
- IdClasseInfo: Id della classe informativa
- IdCampo: Id del campo della classe informativa
- Occorrenza: il numero dell’occorrenza del campo (può essere ripetuto)
- Prog: il progressivo del campo (qualora il campo sia troppo lungo, quest’ultimo viene
automaticamente spezzato in più parti e gestito tramite il valore Prog)
- Valore: valore (o parte del valore) del campo
Valore Oggetto EsitoWS: contiene in aggiunta:
ritornato: - AggiungiClasseInfoReturn: fornisce lo stato dell’aggiunta dei metadati alla email.

OutBoxMove :
Function OutboxMove(UserId As String, IdMail As Integer, NewIdFolder As Integer, OldIdFolder As
Integer, Force As Boolean)
As EsitoWS(Of String)
Descrizione: funzione per spostare una mail in una cartella

Parametri:
- UserId: Id dell’utente che ha richiesto la creazione

- IdMail Id della mail da Spostare


- NewIdFolder Id della cartella di destinazione
- OldIdFolder Id della cartella di origine
- Force Impostare sempre “True”

Valore Oggetto EsitoWS: contiene in aggiunta la stinga “Operazione Eseguita”


ritornato:

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

4 – Tutorial
Di seguito verranno illustrati alcuni esempi di codice commentati [VB.net] a scopo dimostrativo
dell’utilizzo delle funzioni precedentemente esposte.

Aggiunta dei riferimenti ai servizi


Al fine di poter utilizzare correttamente i metodi sopra esposti è indispensabile aggiungere al proprio
codice il riferimento ai wsdl dei servizi; di sotto vengono riportati alcuni esempi:

- Interfaccia Login: http://<NOME_SERVER>/<WEB_SITE>/Login.svc?singlewsdl

- Interfaccia InBox: http://<NOME_SERVER>/<WEB_SITE>/ PECInbox.svc?singlewsdl

- Interfaccia http://<NOME_SERVER>/<WEB_SITE>/PECOutbox.svc?singlewsdl
OutBox:

Login dell’utente
La fase di login fornirà all’operatore uno speciale token autenticativo, indispensabile per poter
effettuare qualsiasi chiamata ai metodi sopra esposti. Di seguito viene riportato un esempio di login:
Dim wsLogin = New WSLogin.Login() ' WSLogin è l’oggetto creato dal riferimento al WSDL
'' DoLogin(Utente,Password) :
'' - Necessita dei parametri Utente e Password
Dim UserID = "USER_ID"
Dim Password = "MyPassword"
Dim Result = wsLogin.DoLogin(UserID, Password)
'' - Result.Token : IMPORTANTE: token di autenticazione dell’utente
'' - Result.RCLogon : 0:=Ok
'' - Result.Esito : True:=Autenticato
'' - Result.Messaggio : “Autenticazione OK” oppure “Fallita”
If Result.Esito = True Then
MessageBox.Show(String.Format("Utente {0} autenticato con token {1}", UserID, Result.Token))
End If

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Utilizzo del token di autenticazione


Una volta effettuata la login ed ottenuto il token di autenticazione, quest’ultimo dovrà essere
inserito nell’header delle chiamate al servizio; si veda l’esempio riportato sotto:
Dim wsLogin = New WSLogin.Login() ' WSLogin è l’oggetto creato dal riferimento al WSDL
Dim UserID = "USER_ID"
Dim Password = "MyPassword"
Dim Result = wsLogin.DoLogin(UserID, Password)
If Result.Esito = false Then MessageBox.Show(String.Format("Utente non autenticato!")) : Return
Using wsOut = New WSOutbox.PECOutboxClient() ' WSOutbox è l’oggetto creato dal riferimento al WSDL
'Creazione dell'header del messaggio ed inserimento del token restituito dall’autenticazione
Dim Header = MessageHeader.CreateHeader("Token", String.Empty, Result.Token)
Using Scope = New OperationContextScope(wsOut.InnerChannel)
OperationContext.Current.OutgoingMessageHeaders.Add(Header)
'''TODO: Codice di chiamata dei vari metodi'''
End Using
End Using

Creazione di una nuova mail


Dopo aver inserito il token di sicurezza all’interno dell’header, sarà dunque possibile richiamare i
vari metodi esposti dal servizio.

Di seguito viene riportato un esempio di creazione di una nuova email:


Dim wsLogin = New WSLogin.Login() ' WSLogin è l’oggetto creato dal riferimento al WSDL
Dim UserID = "USER_ID"
Dim Password = "MyPassword"
Dim Result = wsLogin.DoLogin(UserID, Password)
If Result.Esito = false Then MessageBox.Show(String.Format("Utente non autenticato!")) : Return
Using wsOut = New WSOutbox.PECOutboxClient() ' WSOutbox è l’oggetto creato dal riferimento al WSDL
Dim Input = New WSOutbox.CreaInput ' Oggetto contenitore dei parametri di creazione mail
Dim Header = MessageHeader.CreateHeader("Token", String.Empty, Result.Token)
Using Scope = New OperationContextScope(wsOut.InnerChannel)
OperationContext.Current.OutgoingMessageHeaders.Add(Header)
' Alimentazione parametri fondamentali per la creazione della Mail
Input.IdAccount = CInt(030054) ' Obbligatorio: Account di PEC
Input.Oggetto = "OGGETTO" ' Oggetto della Mail
Input.Body = "TESTO DELLA MAIL" ' Testo della Mail
Input.Priorita = WSOutbox.MailePriorita.Bassa ' Priorità
Input.TipoRicevuta = WSOutbox.MaileTipoRicevuta.Completa ' Tipo di ricevuta
Input.Mittente = New WSOutbox.IndirizzoMail ' Obbligatorio: Indir.mail mittente
Input.Mittente.Indirizzo = mittente@mypec.it
' Obbligatorio: indirizzi/o destinatari/o
Dim Destinatari = New List(Of WSOutbox.IndirizzoMail)
Dim Destinatario = New WSOutbox.IndirizzoMail
' per aggiungere più destinatari, separare i destinatari con ";"
Dim Mails As String = "destin.1@pec.it;destin.2@pec.it;destin.3@pec.it"

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Dim SplitDestinatari = Mails.Split(CChar(";"))

' ATTENZIONE: CONTINUA NELLA PAGINA SUCCESSIVA


' ATTENZIONE: PROSECUZIONE DELLA PAGINA PRECEDENTE

For Each Indirizzo In SplitDestinatari


Destinatario = New WSOutbox.IndirizzoMail
Destinatario.Indirizzo = Indirizzo
Destinatari.Add(Destinatario)
Next
Input.Destinatari = Destinatari.ToArray
Input.UserId = UserID ' Obbligatorio: UserId dell’utente
' Creazione della mail: chiamata al Web Service
Dim RisultatoCreazione = wsOut.OutBoxCrea(Input)
' RisultatoCreazione:
' Esito: OK | KO
' Oggetto: IdMailCreata | Nothing
'Controllo per gestire eventuali errori:
If RisultatoCreazione.Esito = WSOutbox.eWSSecReturn.OK Then
If IsNothing(RisultatoCreazione.Oggetto) Then Return
Else
Return
End If
'Recupera l’ID della mail
Dim IdMailCreata = RisultatoCreazione.Oggetto.IdMail

Aggiungere un allegato
Creata una nuova email sarà possibile utilizzare le varie funzioni (a seconda delle possibilità /
esigenze) per allegare uno o più file/s.
' ATTENZIONE: riprende da esempio precedente
'Recupera l’ID della mail a cui allegare il file
Dim IdMail = RisultatoCreazione.Oggetto.IdMail
'Legge il file e lo carica in memoria
Dim NomeFile = "ModuloTest.pdf"
Dim PathFile = System.IO.Path.Combine("C:\ModuliTest", NomeFile)
Dim Buffer As Byte()
Using FileStream As New System.IO.FileStream(PathFile, IO.FileMode.Open)
Dim BinaryReader As New System.IO.BinaryReader(FileStream)
Buffer = BinaryReader.ReadBytes(CInt(FileStream.Length))
End Using
'Aggiunge il file come allegato alla mail:
'nel caso di più files è necessario ripetere la chiamata
Dim RisultatoAllegaFile = WSOut.OutBoxAggiungiAllegato(IdMail, NomeFile, Buffer)
If RisultatoAllegaFile.Esito = WSOutbox.eWSSecReturn.OK Then MessageBox.Show("Allegato!")

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Invio di una mail


Terminata la mail è necessario procedere alla sua finalizzazione; ciò comporta il suo spostamento
nella cartella “Posta in Uscita” e verrà inviata (a seconda delle priorità) dal servizio di invio mail.
' ATTENZIONE: riprende da esempio precedente
' Oggetto FinalizzaInput: valorizzazione dei parametri per la finalizzazione della PEC
Dim wFinalizzaInput = New WSOutbox.FinalizzaInput
FinalizzaInput.UserId = UserId ' Obbligatorio
FinalizzaInput.IdMail = CInt(RisultatoCreazione.Oggetto.IdMail) ' Obbligatorio
FinalizzaInput.FlAttiva = True
' se FlAttiva = True, la mail viene inserita nella Posta in uscita
' se FlAttiva = False, la mail viene inserita nelle Bozze
'Invio della mail: chiamata a Web Service:
Dim RisultFinalizza = wWSOut.OutBoxFinalizza(FinalizzaInput)
If RisultFinalizza.Esito = WSOutbox.eWSSecReturn.OK Then MessageBox.Show("Mail finalizzata")

Controllo delle ricevute di una mail inviata


È possibile verificare lo stato di invio / ricezione delle email: si veda ad esempio il codice
sottostante:
' ATTENZIONE: riprende da esempio precedente
Dim Ricevute = wsOut.OutBoxGetRicevute(CInt(RisultatoCreazione.Oggetto.IdMail))
' OutBoxGetRicevute:
' Esito: OK | KO
' Oggetto:
' - IdMail (idMailInbox)
' - TipoPec (TipoMail)
If Not Ricevute.Oggetto.Length = 0 Then
Dim NumeroRicevute = Ricevute.Oggetto.Length
For Each Ricevuta In Ricevute.Oggetto
MessageBox.Show(String.Format("ID:{0} Tipo:{1}",Ricevuta.IdMail, Ricevuta.TipoPEC))
Next
End If

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

5 – SoapUI test
Per completezza verranno mostrati alcuni esempi di chiamate al servizio mediante l’uso del software
tool SoapUI

Login dell’utente
Nell’esempio sottostante viene riportata una chiamata DoLogin; una volta autenticato, l’utente
disporrà del proprio token di sicurezza.

Fig.1 – Chiamata DoLogin: si noti il parametro token nella risposta del servizio

Utilizzo del token di autenticazione:


Creazione nuova mail
Una volta ottenuto il token di autenticazione è possibile usufruire (qualora abilitati) dei metodi
esposti dal servizio.
Qui sotto viene riportato un esempio di creazione di una nuova email:

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Fig.2 – Creazione nuova mail: esempio di utilizzo del token di sicurezza ottenuto nella chiamata DoLogin precedentemente illustrata

Aggiunta di un allegato
Sotto riportato si può trovare un esempio di utilizzo del metodo OutBoxAggiungiAllegato

Fig.3 – Esempio di allegamento di un file ad una mail esistente

Invio di una mail


Una volta creata la mail ed aggiunti eventuali allegati, si veda un esempio di finalizzazione email
tramite la chiamata al servizio OutBoxFinalizza:

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Fig.4 – Invio della mail tramite il set del Flag Attivo

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Appendice:

Di seguito verranno trattati e chiariti alcuni aspetti tecnici e/o nomenclature utlizzate.

a – Utilizzo di PagingReq
Nel caso in cui ci si aspetti un elevato numero di risultati, al fine di ottimizzare le
prestazioni in fase di caricamento elementi può risultare molto utile prevedere di paginare
() i risultati.
Esso è composto da:
- Handle: handle della pagina caricata
- PageNumber: indica il numero di pagina
- MaxEle: numero di elementi per pagina / chiamata
- MaxEleTot: numero di elementi totali desiderati
- Ordinamenti: oggetto comprendente una lista di coppie campo / ordinamento con cui
effettuare eventuali ordinamenti degli elementi.
Per completezza, si riporta una snippet di codice esemplificativa:
' Esempio di creazione oggetto pagingReq:
Dim wPageReq = New Smouse.DataContract.PagingReq
wPageReq.MaxEle = 1000
wPageReq.MaxEleTot = 5000
Dim wOrdinamento = New Smouse.DataContract.Ordinamento()
wOrdinamento.Campo = "STATO"
wOrdinamento.TipoOrdinamento = DataContract.eTipoOrdinamento.eTipoOrdinamentoAsc
wPageReq.Ordinamenti.Add(wOrdinamento)

b – Utilizzo dei filtri


Al fine di ottenere informazioni più mirate, nonché una migliore prestazione, può essere
utile e/o necessario utilizzare appositi filtri in fase di caricamento.
Generalmente può essere presa in riferimento la seguente snippet di codice come
riferimento:
' Esempio di aggiunta e creazione filtri:
Dim wFiltri As New Smouse.DataContract.Filtri
wFiltri.Add("IDACCOUNT", CStr(mIdAccount))

A tal proposito, si precisa che esistono vari metodi di aggiunta filtro:


Public Sub Add(Attributo As String, Valore As String)

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Descrizione: aggiunta di un filtro Attibuto database / Valore specifico

Public Sub Add(Filtri As Filtri)

Descrizione: permette di concatenare più oggetti di tipo Filtri

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri
Studio Informatica S.r.l.

Public Sub Add(Elemento As Filtro)

Descrizione: aggiunta di un oggetto filtro precedentemente creato ad una collection di Filtri

Public Sub Add(Attributo As String, Operatore As eOperatoreFiltro, Valore As Integer)


Public Sub Add(Attributo As String, Operatore As eOperatoreFiltro, Valore As Date)
Public Sub Add(Attributo As String, Operatore As eOperatoreFiltro, Valore As String)
Public Sub Add(Attributo As String, Operatore As eOperatoreFiltro, Valore As Decimal)

Descrizione: aggiunta di un particolare filtro eOperatoreFiltro in base ad un determinato valore.


Di seguito verranno illustrati per completezza i tipi OperatoreFiltro ammessi:
- eFiltroEQ Uguale a
- eFiltroNEQ Diverso da
- eFiltroGT Maggiore di
- eFiltroGE Maggiore o uguale a
- eFiltroBETWEEN ASDF
- eFiltroLT Minore di
- eFiltroLE Minore o uguale a
- eFiltroSTART Inizia con
- eFiltroEND Finisce con
- eFiltroCONT Contiente
- eFiltroNOTCONT Non contiente
- eFiltroEXIST Esiste
- eFiltroNEXIST Non esiste
- eFiltroNULL È nullo / vuoto
- eFiltroNOTNULL Non è nullo / non è vuoto

mailDocPRO: descrizione delle funzionalità esposte dalla libreria WSSec: servizi sicuri

Potrebbero piacerti anche