Poste Online

Abstract

A module to send raccomandate, telegrammi and letters throught Italian Mail Service poste-online.

A simple and tipical example could be as simple as:

# Create a client for each type of letter
xol = poste.ROLClient(username=USERNAME, password=PASSWORD)

# Create a recipient and a Sender
recipient = poste.Destinatario(**RECIPIENT)
mittente = poste.Mittente(**MITTENTE)

# send a document and confirm
xol_submit = xol.submit('mydocument.pdf', recipient, mittente)
result = xol.confirm(xol_submit=xol_submit, autoconfirm=True)

Three different clients are available:

Test poste.xol.ROLSubmit

API

Lol

class poste.LOLClient(username, password, service_level='PROD')

Client per invio di raccomandate

annulla(xol_submit=None, guid=None, verbose=False, direct=None)

Anulla un invio La documentazione ufficiale chiede di aspettare 60 secondi circa

Parameters:
  • xol_submitposte.ROLSubmit
  • guid – a GuidUser to retrieve information on a submitted rol
confirm(result=None, xol_submit=None, guid=None, autoconfirm=None)

Conferma un invio già pre-confermato

Parameters:
  • result – il valore di ritorno della preconferma, parametro suff.
  • xol_submitposte.ROLSubmit (poste.LOLSubmit), richiede automaticamnete una preconferma
  • guid – a GuidUser to retrieve information on a submitted rol
  • autoconfirm – boolean: se True, non serve eseguire conferma successiva
get_documento(xol_submit=None, guid=None, document_save_path=None, verbose=False, direct=None)

Richiedi il documento submitto. RecuperaDCS nella documentazione ufficiale. Leggi le note in valorizza() per capire quando sono disponibili i dati

Parameters:
  • xol_submitposte.ROLSubmit
  • guid – a GuidUser to retrieve information on a submitted rol
  • document_save_path – path dove salvare il documento prelevato (opzionale)
get_new_guid()

Il client richiede un identificativo che rappresenta la transazione che vuole iniziare.

Returns:IDRichiesta
get_receipt_id(XOLResponse)

Return a dict mapping id_destinatari (set by us) with receipt_id (IdRicevuta) that is the recipient identification of the web service. Not used internally but needed to track invoice status.

Parameters:XOLResponse – a response from a xol submit
get_stato_ordine(guid=None, xol_submit=None)

Recupera lo stato di un ordine

get_stato_richiesta(guid=None, xol_submit=None)

Recupera lo stato di una richiesta

parse_error(result)

parse the error for simple cases

preconferma(xol_submit=None, guid=None, autoconfirm=None)

PreConferma un invio. Necessario per confermare.

Parameters:
  • xol_submitposte.ROLSubmit (poste.LOLSubmit)
  • guid – a GuidUser to retrieve information on a submitted rol/lol
  • autoconfirm – boolean: se True, non serve eseguire conferma successiva
submit(documento, destinatari, mittente, guid=None, cliente=None)

Prima fase dell’invio di un documento ad un array di destinatari. Ogni operazione successiva relativa a questo ROL richiede che passi un tempo suff -intorno ai 60 secondi- che viene implementato nei metodi valorizza(), annulla(), get_documento(), confirm(), preconferma()

Parameters:
  • documento – oggetto poste.Documento o filename
  • destinatariposte.Destinatario: singolo, lista o set
  • mittente – un poste.Mittente
  • guid – opzionale, l’id della richiesta
  • cliente – identificativo del cliente
Returns:

lol_submit creato, con lol_submit.response la response ricevuta dal server

valida_destinatari(destinatari, guid=None, test=False)

Valida molti destinatari

Parameters:
  • destinatari – lista di destinatari
  • guid – facoltativo (id_richiesta)
  • test – se True, ritorna anche l’id_richiesta
valorizza(xol_submit=None, guid=None, verbose=False, direct=None, single=False)

Richiedi info relative al xol_submit - tempo minimo 35 secondi!! dall’invio La documentazione ufficiale chiede di aspettare 60 secondi circa

Questo result e il ServizioEnquiryResponse sono definiti a pag 45 result ha 2 attributi:

  • CEResult
  • ServizioEnquiryResponse lista di 1 elemento [0] che poi ha:
  • Richiesta (IDRichiesta e GuidUtente originali
  • StatoLavorazione (dove peschiamo lo stato che determina questo ciclo)
  • TipoVisualizzazione (InCorso / Archivio)
  • NumeroPagine (del documento submitto)
  • Totale
  • OggettoValorizzazione (dettaglio della valorizzazione)
  • CEResult
Parameters:
  • xol_submitposte.ROLSubmit`(:class:`poste.LOLSubmit)
  • guid – an id_richiesta (alias guid) relative to a submitted rol

Rol

class poste.ROLClient(username, password, service_level='PROD')

Bases: poste.webservice.LOLClient

Client per l’invio di lettere

get_stato_invii()

Recupera lo stato di un invio. Gli id non corretti vengono ignorati.

Returns:Un dizionario le cui chiavi sono gli id (solo quelli validi, ovvero

corrispondenti a invii confermati) ed il valore un dizionario con chiave il numero di raccomandata e quanto ritornato:

{'fcf1f462-028d-46c3-aa44-36cb0267cfd6': {
    '500000003510' :   (StatoRichiesta){
                          StatoType = "00"
                          StatoDescrizione = "accettata online"
                          NumeroServizio = "500000003510"
                          DataEsito = 2012-02-28 17:46:36
    }
}

La DataEsito è un datetime:

res['fd06df5a-df73-4d84-ad06-1eadf2b9234d'].DataEsito = datetime(...)

Il Numero di servizio è il numero della raccomandata. Gli stati possibili sono descritti nel cap 4.2.1.23:

:00: Accettata online (transitorio)
:01: Consegnato       (definitivo)
:02: In giacenza      (transitorio)
:03: In restituzione  (definitivo)
:99: In lavorazione   (transitorio)
get_stato_invii_per_id(lista_id)

Recupera lo stato di un invio. id non corretti vengno semplicemente ignorati.

Parameters:lista_id – lista di IdRichiesta (lista di stringhe)
Returns:Un dizionario le cui chiavi sono gli id (solo quelli validi, ovvero corrispondenti a invii confermati) ed i valori sono quanto ritornato

Vedi get_stato_invii() per una descrizione del valore di ritorno

get_stato_invii_per_numero(id_list)

Recupera lo stato di un invio dal numero di raccomandata

Parameters:id_list – list of certified mail number (Numeri raccomandata)
Returns:a dict whose keys are the id (numero raccomandata) of id_list and the value is a StatoRichiesta.

Vedi get_stato_invii() per una descrizione più approfondita del valore di ritorno

submit(documento, destinatari, mittente, guid=None, cliente='', ricevuta_ritorno=None)

Prima fase dell’invio di un documento ad un array di destinatari. Ogni operazione successiva relativa a questo ROL richiede che passi un tempo suff -circa 60 secondi- che viene implementato nei metodi valorizza(), annulla(), get_documento(), confirm(), preconferma()

Parameters:
  • documento – oggetto poste.Documento o filename
  • destinatariposte.Destinatario: singolo, lista o set
  • mittente – un poste.Mittente
  • guid – opzionale, l’id della richiesta
  • cliente – identificativo del cliente
  • ricevuta_ritorno – Mittente (lista) per ricevuta di ritorno
Returns:

poste.ROLSubmit creato, con rol_submit.response la response ricevuta dal server

valida_destinatario(destinatario, guid=None, test=False)

Submit una richiesta di validazione indirizzi

Parameters:
  • destinatari – una lista di class:poste.base.Destinatario
  • test – boolean: if running for tests, guid is returned as well. Required by PosteOnlineTest

Tol

class poste.TOLClient(username, password, service_level='PROD')
get_new_guid()

Fatti dare un id di richiesta.

schema = 'http://www.w3.org/2001/XMLSchema'

an instance of suds Client

Utility

class poste.xol.ArrayNumeriRaccomandata(numeri)

Array di Numeri di raccomandata

get_instance(suds_client)

get an instance from web service, suitable for further processing

class poste.xol.ArrayOfDestinatario(destinatari)[source]

Array di destinatari. Es:

thunder = poste.Destinatario(**THUNDER_ADDR) test_addr = poste.Destinatario(**THUNDER_TEST) arr = poste.ArrayOfDestinatario((thunder, test_addr))

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

class poste.xol.Destinatario(*args, **kwargs)[source]

Un destinatario

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

class poste.xol.Documento(filename)[source]

Documento da spedire

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

class poste.xol.Indirizzo(dug='', toponimo='', numero_civico='', esponente='')[source]

Un indirizzo

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

class poste.xol.Mittente(*args, **kwargs)[source]

Un mittente

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

class poste.xol.Nominativo(dug='', toponimo='', numero_civico='', esponente='', zona='', tipo_indirizzo='', stato='', telefono='', forza_destinazione='false', casella_postale='', ufficio_postale='', provincia='', complemento_nominativo='', ragione_sociale='', cognome='', nome='', frazione='', citta='', complemento_indirizzo='', cap='', validate=True)[source]

Un destinatario o un mittente deve avere definito un Indirizzo

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

validate()[source]

Check that all parameters fit what Poste requires

class poste.xol.Opzioni[source]

Not implemeted by Poste Italiane as of this writing

class poste.xol.OpzioniDiStampa[source]

Not implemeted by Poste Italiane as of this writing

class poste.xol.ROLSubmit(documento, destinatari, mittente=None, data_lettera=None, ricevuta_ritorno=None)[source]

Raccomandata OnLine. Oggetto che riunisce tutte le informazioni necessarie all’invio di una raccomandata. Può essere creato esplicitamente o implicitamente da una operazione di invio poste.RolClient.submit().

Quando un ROL viene inviato, viene valorizzata la variabile result con un oggetto che conserva tutte le informazioni ricevute dal servizio remoto, in particolare guid/id_richiesta necessari per fare il tracking della raccomandata con l’help desk delle poste e per richiedere ulteriori informazioni come la valorizzazione, la conferma o l’annullamento.

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

guid[source]

guid: necessario per richiedere valorizzazione o annullamento/conferma

guid_utente[source]

Ritona il guid (identificativo del server) di un invio di questo rol Ritorna None se non è stato fatto alcun invio

id_richiesta[source]

Ritona il guid (identificativo del server) di un invio di questo rol Ritorna None se non è stato fatto alcun invio

result = None

La risposta ottenuta dal server quando questo viene inviato. Valorizzato solo se il rol è stato inviato

class poste.xol.Richiesta(guid=None, guid_utente=None, xol_submit=None)[source]

Oggetto richiesta, necessario per alcune operazioni come la valorizzazione e la richieta di informazioni su un invio

get_instance(suds_client)[source]

get an instance from web service, suitable for further processing

Eccezioni

exception poste.PosteSoapClientError(result)[source]

Un errore sollevato dal servizio remoto di poste-online

exception poste.ValidationError(msg, obj=None)[source]

Errore generico di validazione

exception poste.RemoteValidationError(result, guid)[source]

Errore di validazione sollevato dal servizio poste-online

exception poste.RemoteRecipientValidationError(result, guid)[source]

Errore di validazione del ricevente sollevato dal servizio poste-online

exception poste.RemoteValidationError(result, guid)[source]

Errore di validazione sollevato dal servizio poste-online

exception poste.RecipientValidationError(msg, obj=None)[source]

Errore di Validatione del ricevente

Previous topic

Welcome to poste’s documentation!

Next topic

Tests

This Page