Visualizzazione post con etichetta Send-MailMessage. Mostra tutti i post
Visualizzazione post con etichetta Send-MailMessage. Mostra tutti i post

giovedì 29 dicembre 2016

PowerShell: Inviare un'email tramite il cmdlet Send-MailMessage

Per inviare un'email tramite PowerShell è possibile utilizzare il cmdlet Send-MailMessage. La sintassi del comando è la seguente:

Send-MailMessage [-Attachments <String[]>] [-Bcc <String[]>] [[-Body] <String>] [-BodyAsHtml] [-Encoding <Encoding>] [-Cc <String[]>] [-DeliveryNotificationOption <DeliveryNotificationOptions>] -From <String> [[-SmtpServer] <String>] [-Priority <MailPriority>] [-Subject] <String> [-To] <String[]> [-Credential <PSCredential>] [-UseSsl] [-Port <Int32>] [<CommonParameters>]


Parametri principali


-Attachments
Consente di specificare il path e il nome dei file da allegare al messaggio.

-Bcc
Blind Carbon Copy. Permette di specificare uno o più indirizzi a cui inviare il messaggio in copia conoscenza nascosta. Tali indirizzi non vengono visualizzati dai destinatari del messaggio.

-Body
Al parametro Body va passato il corpo del messaggio.

-BodyAsHtml

La presenza di tale parametro indica che il corpo del messaggio passato a Body contiene codice HTML.

-Cc
Specifica gli indirizzi a cui inviare l'email in copia conoscenza (o copia carbone). E' possibile specificare solo l'indirizzo email oppure nome e indirizzo nel formato Nome <esempio@contoso.com>

-Credential
Per default l'email viene inviata con le credenziali dell'utente corrente. Per inviare l'email con un altro account è necessario utilizzare tale parametro.

-DeliveryNotificationOption

Il parametro DeliveryNotificationOption (abbreviabile in -dno) consente di impostare le opzioni di notifica del messaggio. I valori accettati sono:
None Nessuna notifica (impostazioni di default);
OnSuccess Si riceve una notifica se il messaggio viene recapitato correttamente;
OnFailure Si riceve un messaggio se il messaggio non viene recapitato;
Delay  Si riceve in caso di recapito ritardato;
Never Non notifica in alcun caso.
Alcune opzioni possono essere utilizzare contemporaneamente ad es. OnSuccess e OnFailure.

-Encoding
Specifica il tipo di codifica utilizzata dal corpo e dall'oggetto del messaggio. I valori accettati sono:
ASCII
UTF8
UTF7
UTF32
Unicode
BigEndianUnicode
Default
OEM
Per default è impostata la codifica ASCII.

-From
Il parametro From è obbligatorio e viene utilizzato per specificare l'indirizzo del mittente. Al parametro è  possibile passare solo l'indirizzo email oppure nome e indirizzo nel formato Nome <esempio@contoso.com>.

-Port
Questo parametro è disponibile a partire da PowerShell 3.0 e consente di indicare una porta SMTP alternativa a quella di default (la porta SMTP di default è la 25).

-Priority
Il parametro Priority permette di specificare la priorità del messaggio. I valori accettati sono:
Normal
High
Low

-SmtpServer
Permette di specificare il nome del server SMTP che invia il messaggio.

-Subject
Questo è un parametro obbligatorio. Al parametro va passato l'oggetto dell'email.

-To
Tale parametro, richiesto, permette di indicare gli indirizzi a cui spedire il messaggio. Anche in questo caso (come per i parametri From, CC e BCC) è possibile specificare solo l'indirizzo email oppure nome e indirizzo nel formato Nome <esempio@contoso.com>.

-UseSsl
Se usato, forza la connessione al server remoto tramite protocollo SSL (Secure Sockets Layer).


Vediamo alcuni esempi

Esempio 1
Send-MailMessage -SmtpServer Smtp.contoso.com -To bill.gates@example.com -From 'Giovanni Lubrano <giovanni.lubrano@contoso>' -Subject 'Riunione Aziendale' -Body '<h1>Ciao Bill</h1>' -BodyAsHtml -Priority High
Invia un messaggio a priorità alta in formato HTML.

Esempio 2
Send-MailMessage -From "Giovanni Lubrano <giovanni.lubrano@example.com>" -To "Bill Gates <bill.gates@example.com>", "Mark Zuckerberg <mark.zuckerberg@example2.com>" -Subject "Invio CV in allegato" -Body "In allegato il mio CV." -Attachments "Curriculum.pdf" -Priority High -dno onSuccess, onFailure -SmtpServer "smtp.contoso.com"
Invio di un allegato a più persone con un messaggio di solo testo, a priorità alta e con richiesta di notifica nel caso in cui il messaggio venga recapitato o nel caso in cui la consegna fallisca.