Condividi tramite


Send-MailMessage

Inviare un messaggio di posta elettronica.

Sintassi

All

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

Descrizione

Il Send-MailMessage cmdlet invia un messaggio di posta elettronica dall'interno di PowerShell.

È necessario specificare un server SMTP (Simple Mail Transfer Protocol), altrimenti il Send-MailMessage comando non riesce. Utilizzare il parametro SmtpServer o impostare la $PSEmailServer variabile su un server SMTP valido. Il valore assegnato a $PSEmailServer è l'impostazione SMTP predefinita per PowerShell. Per altre informazioni, vedere about_Preference_Variables.

Avvertimento

Il cmdlet Send-MailMessage è obsoleto. Questo cmdlet non garantisce connessioni sicure ai server SMTP. Anche se in PowerShell non è disponibile alcuna sostituzione immediata, è consigliabile non usare Send-MailMessage. Per altre informazioni, vedere La nota sulla compatibilità della piattaforma DE0005.

Esempio

Esempio 1: inviare un'e-mail da una persona a un'altra persona

In questo esempio viene inviato un messaggio di posta elettronica da una persona a un'altra.

I parametri Da, A e Soggetto sono obbligatori da Send-MailMessage. In questo esempio viene utilizzata la variabile predefinita $PSEmailServer per il server SMTP, pertanto il parametro SmtpServer non è necessario.

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'User02 <user02@fabrikam.com>'
    Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat

Il Send-MailMessage cmdlet utilizza il parametro From per specificare il mittente del messaggio. Il parametro To consente di specificare il destinatario del messaggio. Il parametro Subject usa la stringa di testo Test mail come messaggio perché il parametro Corpo facoltativo non è incluso.

Esempio 2: Inviare un allegato

In questo esempio viene inviato un messaggio di posta elettronica con un allegato.

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>'
    Subject = 'Sending the Attachment'
    Body = "Forgot to send the attachment. Sending now."
    Attachments = '.\data.csv'
    Priority = 'High'
    DeliveryNotificationOption = 'OnSuccess', 'OnFailure'
    SmtpServer = 'smtp.fabrikam.com'
}
Send-MailMessage @sendMailMessageSplat

Il Send-MailMessage cmdlet utilizza il parametro From per specificare il mittente del messaggio. Il parametro To consente di specificare i destinatari del messaggio. Il parametro Subject descrive il contenuto del messaggio. Il parametro Body è il contenuto del messaggio.

Il parametro Attachments consente di specificare il file nella directory corrente collegata al messaggio di posta elettronica. Il parametro Priority imposta il messaggio su High priority. Il parametro DeliveryNotificationOption specifica due valori e OnSuccessOnFailure. Il mittente riceverà notifiche via e-mail per confermare l'esito positivo o negativo della consegna del messaggio. Il parametro SmtpServer imposta il server SMTP su smtp.fabrikam.com.

Esempio 3: Inviare un'email a una mailing list

In questo esempio viene inviato un messaggio di posta elettronica a una lista di distribuzione.

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'ITGroup <itdept@fabrikam.com>'
    Cc = 'User02 <user02@fabrikam.com>'
    Bcc = 'ITMgr <itmgr@fabrikam.com>'
    Subject = "Don't forget today's meeting!"
    Credential = 'domain01\admin01'
    UseSsl = $true
}
Send-MailMessage @sendMailMessageSplat

Il Send-MailMessage cmdlet utilizza il parametro From per specificare il mittente del messaggio. Il parametro To consente di specificare i destinatari del messaggio. Il parametro Cc invia una copia del messaggio al destinatario specificato. Il parametro Ccn invia una copia nascosta del messaggio. Una copia non vedente è un indirizzo di posta elettronica nascosto agli altri destinatari. Il parametro Subject è il messaggio perché il parametro Body facoltativo non è incluso.

Il parametro Credential consente di specificare che le credenziali di un amministratore di dominio vengono utilizzate per inviare il messaggio. Il parametro UseSsl consente di specificare che SSL (Secure Socket Layer) crea una connessione sicura.

Parametri

-Attachments

Specifica il percorso e i nomi dei file da allegare al messaggio di posta elettronica. È possibile utilizzare questo parametro o reindirizzare i percorsi e i nomi dei file a Send-MailMessage.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PsPath

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Bcc

Specifica gli indirizzi di posta elettronica che ricevono una copia del messaggio, ma non sono elencati come destinatari del messaggio. Inserisci i nomi (facoltativo) e l'indirizzo e-mail, ad esempio Name <someone@fabrikam.com>.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Body

Specifica il contenuto del messaggio di posta elettronica.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:2
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-BodyAsHtml

Specifica che il valore del parametro Body contiene HTML.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:BAH

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Cc

Specifica gli indirizzi di posta elettronica a cui viene inviata una copia per conoscenza (CC) del messaggio di posta elettronica. Inserisci i nomi (facoltativo) e l'indirizzo e-mail, ad esempio Name <someone@fabrikam.com>.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Credential

Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio User01 o Domain01\User01. In alternativa, immettere un oggetto PSCredential , ad esempio uno del Get-Credential cmdlet.

Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.

Annotazioni

Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.

Proprietà dei parametri

Tipo:PSCredential
Valore predefinito:Current user
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-DeliveryNotificationOption

Specifica le opzioni di notifica di recapito per il messaggio di posta elettronica. È possibile specificare più valori. Nessuno è il valore predefinito. L'alias per questo parametro è DNO.

Le notifiche di recapito vengono inviate all'indirizzo nel parametro From .

I valori accettabili per questo parametro sono i seguenti:

  • None: nessuna notifica.
  • OnSuccess: notifica se il recapito ha esito positivo.
  • OnFailure: notifica se il recapito non riesce.
  • Delay: notifica se il recapito è ritardato.
  • Never: non inviare mai una notifica.

Questi valori sono definiti come un'enumerazione basata su flag. È possibile combinare più valori per impostare più flag usando questo parametro. I valori possono essere passati al parametro DeliveryNotification come matrice di valori o come stringa delimitata da virgole di tali valori. Il cmdlet combina i valori usando un'operazione binary-OR. Il passaggio di valori come array è l'opzione più semplice e consente anche di usare il completamento automatico con il tasto tab sui valori.

Proprietà dei parametri

Tipo:DeliveryNotificationOptions
Valore predefinito:None
Valori accettati:None, OnSuccess, OnFailure, Delay, Never
Supporta i caratteri jolly:False
DontShow:False
Alias:DNO

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Encoding

Specifica il tipo di codifica per il file di destinazione. Il valore predefinito è Default.

I valori accettabili per questo parametro sono i seguenti:

  • ASCII usa il set di caratteri ASCII (a 7 bit).
  • BigEndianUnicode usa UTF-16 con l'ordine dei byte "big-endian".
  • Default Usa la codifica corrispondente alla tabella codici attiva del sistema (in genere ANSI).
  • OEM Usa la codifica corrispondente alla tabella codici OEM corrente del sistema.
  • Unicode usa UTF-16 con l'ordine dei byte little-endian.
  • UTF7 usa UTF-7.
  • UTF8 usa UTF-8.
  • UTF32 utilizza UTF-32 con l'ordine dei byte in formato little-endian.

Proprietà dei parametri

Tipo:Encoding
Valore predefinito:Default
Valori accettati:ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32
Supporta i caratteri jolly:False
DontShow:False
Alias:ESSERE

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-From

Il parametro From è obbligatorio. Questo parametro specifica l'indirizzo e-mail del mittente. Inserisci un nome (facoltativo) e un indirizzo e-mail, ad esempio Name <someone@fabrikam.com>.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Port

Specifica una porta alternativa sul server SMTP. Il valore predefinito è 25, che è la porta SMTP predefinita.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:25
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Priority

Specifica la priorità del messaggio di posta elettronica. Normale è l'impostazione predefinita. I valori accettabili per questo parametro sono Normale, Alto e Basso.

Proprietà dei parametri

Tipo:MailPriority
Valore predefinito:Normal
Valori accettati:Normal, High, Low
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-SmtpServer

Specifica il nome del server SMTP che invia il messaggio e-mail.

Il valore predefinito è il valore della variabile di $PSEmailServer preferenza. Se la variabile di preferenza non è impostata e questo parametro non viene usato, il Send-MailMessage comando ha esito negativo.

Proprietà dei parametri

Tipo:String
Valore predefinito:$PSEmailServer
Supporta i caratteri jolly:False
DontShow:False
Alias:Nome del Computer

Set di parametri

(All)
Posizione:3
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Subject

Il parametro Subject non è obbligatorio. Questo parametro specifica l'oggetto del messaggio di posta elettronica.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:sostituto

Set di parametri

(All)
Posizione:1
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-To

Il parametro To è obbligatorio . Questo parametro consente di specificare l'indirizzo di posta elettronica del destinatario. Inserisci i nomi (facoltativo) e l'indirizzo e-mail, ad esempio Name <someone@fabrikam.com>.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-UseSsl

Il protocollo SSL (Secure Sockets Layer) viene utilizzato per stabilire una connessione sicura al computer remoto per l'invio di posta. Per impostazione predefinita, SSL non viene usato.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

String

È possibile inviare tramite pipe il percorso e i nomi di file degli allegati a questo cmdlet.

Output

None

Questo cmdlet non restituisce alcun output.

Note

Il cmdlet Send-MailMessage è obsoleto. Per altre informazioni, vedere La nota sulla compatibilità della piattaforma DE0005. Questo cmdlet non garantisce connessioni sicure ai server SMTP.

DE0005 suggerisce l'uso della libreria di terze parti MailKit. Se si usa Exchange Online, è possibile usare Send-MgUserMail da Microsoft Graph PowerShell SDK.