venerdì 23 dicembre 2011

SendToVB: come inviare mail con allegati attraverso il client di posta predefinito.

DOMANDA: come inviare email con allegati in modo automatizzato e programmato utilizzando il software di posta elettronica predefinito (default), qualunque esso sia (Outlook, Outlook Express, Windows Live Mail, Thunderbird, ecc.)?
In sostanza c'è la necessità di avere un sistema per comporre un messaggio email contenente: 
  • mittente
  • destinatari
  • titolo
  • oggetto 
  • file allegati 
...e di aprire automaticamente l'email client di default con tutti i campi pre-compilati in modo che l'utente debba effettuare solo l'invio.


RISPOSTA: Ci sono almeno un paio di metodi.

1. Usare il comando "mailto":
Dal prompt dei comandi (cliccare su Start | Esegui poi digitare il comando cmd e premere invio) è possibile lanciare il client di posta di default attraverso un collegamento ipertestuale mailto.
Attenzione NON tutti i Client di posta elettonica supportano il parametro per gli allegati (ad esempio Thunderbird non lo accetta). 
Ad esempio per aprire il client di posta precompilato con i seguenti parametri:
mittente: me@example.com
oggetto: Ciao
testo: Guarda il mio file allegato
file allegato: C:\readme.pdf
...utilizzare la stringa seguente:
mailto:me@example.com?Subject=Ciao&Body=Guarda+il+mio+file+allegato&Attach="C:\readme.pdf"

2. Oppure utilizzare SendToVB, un piccolo software gratuito che permette di Inviare in modo programmato email con allegati utilizzando il Client di posta predefinito, e soprattutto in modo compatibile con TUTTI i Client (Thunderbird compreso). 

Ecco di seguito la schermata che riassume i comandi e le opzioni disponibili: 

Anche questo software deve essere utilizzato dal prompt dei comandi.
La sintassi è semplice:
SendToVB -files <file allegato1> -body <testo della lettera> -to <indirizzo email> -subject <titolo>
Ad esempio:
SendToVB -file c:\leggimi.txt -body "Ciao ecco il file che ti avevo promesso in allegato" -to mario@example.com -subject "Importante"

I comandi (flags) disponibili sono: 

  • -files <file1> ... <fileN> con cui si possono inviare molteplici allegati nella stessa email.
  • -body <testo>  con cui si inserisce il corpo del messaggio racchiuso tra doppi apici (").
  • -bodytext <bofyfile.txt> che si può usare in alternativa a -body quando l'email deve contenere un messaggio molto lungo. Esso permette di indicare il file di testo che contiene il corpo della email.
  • -to <address1>;<address2> con cui si possono indicare anche molteplici destinatari separati dal punto e virgola (;)
  • -cc <address1>;<address2> con cui si possono indicare in Carbon Copy (copia Carbone) anche molteplici destinatari separati dal punto e virgola (;)
  • -bcc <address1>;<address2> con cui si possono indicare in BLIND Carbon Copy (copia Carbone NASCOSTA) anche molteplici destinatari separati dal punto e virgola (;)
  • -subject <testo> con cui si assegna il titolo della mail
  • -mailto con cui si forza SendToVB ad utilzzare il metodo mailto (anziché le funzioni MAPI) ma che potrebbe NON funzionare correttamente quando si inseriscono degli allegati.
  • Tutti i comandi (flags) possono essere abbreviati con la prima lettera, ad esempio -subject diventa -s
Inoltre per chi sperimenta problemi con troppi parametri e riceve il messaggio  "linea di comando troppo lunga" è possibile utilizzare un secondo metodo:
-list <listfile.txt> dove si indica il file di testo che contiene un'unica riga con specificati tutti i comandi da utilizzare per l'invio della mail


Note per gli sviluppatori software: 
Poiché SendToVB è un piccolo strumento autonomo, può essere impiegato anche da software di terze parti per automatizzare le procedure di invio della posta. Un ipotetico software di terze parti scritto in Visual Basic .NET o C# potrebbe contenere al suo interno una riga di codice che richiama una shell con all'interno il comando SendToVB.
Ad esempio:
System.Diagnostics.Process.Start("SendToVB -to you@example.com -file C:\readme.txt ");

SendToVB è scritto in Visual Basic 2005 e necessita l'installazione del .NET framework 2.0 runtime che spesso è già installato sui PC più recenti. Internamente utilizza automaticamente le funzioni MAPI quando deve inviare email con allegati e usa invece il comando mailto per inviare mail senza allegati.
SendToVB è compatible con Micosoft Windows 98, XP, Vista, Seven.

Note dell'Autore:
CHANGELOG:
Version 1.2 - Aggiunti i parametri -cc e  -bcc 
Version 1.1 - Il Primo !





ESPERIENZA PERSONALE:
SendToVb funziona regolarmente da alcuni anni su circa una decina di PC.

©RIPRODUZIONE RISERVATA

Buy Me a Coffee at ko-fi.com