Come inviare e-mail da PowerShell

Powershell è un potente ambiente di scripting integrato (ISE) che può essere utilizzato per scrivere ed eseguire il debug di script. Questo ambiente di scripting può eseguire un’ampia gamma di funzioni, incluso l’invio di e-mail tramite script e cmdlet. Questo può aiutare gli amministratori di sistema ad automatizzare il processo di invio di email di massa.

Per utilizzare PowerShell per inviare e-mail, gli utenti devono specificare i parametri, incluso il server SMTP che desiderano utilizzare per il push della posta. Tutti questi luoghi sono discussi nell’articolo di oggi.

Parametri che puoi utilizzare per inviare e-mail da PowerShell

Questi sono alcuni parametri principali che puoi utilizzare per inviare e-mail utilizzando PowerShell.

Se volete continuare a leggere questo post su "[page_title]" cliccate sul pulsante "Mostra tutti" e potrete leggere il resto del contenuto gratuitamente. ebstomasborba.pt è un sito specializzato in Tecnologia, Notizie, Giochi e molti altri argomenti che potrebbero interessarvi. Se desiderate leggere altre informazioni simili a [page_title], continuate a navigare sul web e iscrivetevi alle notifiche del blog per non perdere le ultime novità.

Seguir leyendo


  • -From : indirizzo e-mail del mittente
  • -To : indirizzo e-mail del destinatario della posta
  • -Cc: indirizzo e-mail del destinatario che riceve la copia carbone del messaggio e-mail
  • -Attachments : percorso del file dell’allegato che deve essere inviato con l’e-mail
  • -Subject : oggetto dell’e-mail
  • -Body: Corpo (messaggio principale) dell’Email
  • -Credentials : credenziali di accesso al server SMTP. Viene utilizzato per autenticare il server SMTP
  • -SmtpServer : indirizzo del server SMTP (ad esempio: smtp.gmail.com)
  • -Port : Porta sul server SMTP
  • -Use Ssl : usa il protocollo Secure Sockets Layer.

Invia e-mail da PowerShell

Il metodo più comune per inviare messaggi di posta elettronica tramite PowerShell consiste nell’utilizzare il cmdlet Send-MailMessage . Esistono altri strumenti popolari come l’API system.netmail , il componente EASendMAil e l’API Microsoft Graph.

Il cmdlet Send-MailMessage , anche dopo essere stato etichettato come obsoleto da Microsoft, è ancora l’opzione più conveniente per l’invio di e-mail da PowerShell.

  • Ecco una sintassi generale per l’utilizzo di questo cmdlet per inviare un messaggio di posta elettronica.

    Send-MailMessage -From "Sender Email" -To Recipients email" -Credentials (Get-Credential) -SmtpServer "SMPT server address"

    Ad esempio,

    Send-MailMessage -From "[email protected]" -To "[email protected]" -Subject “E-mail's Subject” -Body “Main message of the E-mail” -Credentials (Get-Credential) -SmtpServer "smtp.outlook.com"

    Nella maggior parte dei casi è possibile utilizzare questi cmdlet senza il parametro -Credentials . Tuttavia, se il server ti limita fornendo un messaggio che dice ” Il client non è stato autenticato”, prova a utilizzare il parametro.

  • Se l’e-mail deve essere inviata a più utenti,

    Send-MailMessage -From "[email protected]" -To "[email protected]", "[email protected]" -Credentials (Get-Credential) -SmtpServer "smtp.outlook.com"

  • Se desideri inviare l’e-mail con un allegato, puoi aggiungere il parametro -Attachment .
    Send-MailMessage -From "[email protected]" -To "[email protected]", "[email protected]" -Attachment "C:tempSome random file.txt" -Credentials (Get-Credential) -SmtpServer "smtp.outlook.com"
  • Per aggiungere CC, utilizzare il parametro -CC “E-mail receiving the copy of the mail” nel cmdlet.

Nota: puoi anche utilizzare il valore $PSEmailServer , come impostazione SMTP invece di Smtp-Server. Questa è la configurazione SMTP predefinita su Powershell.

Invia e-mail da PowerShell con Gmail SMTP

Prima di maggio 2022, per utilizzare Gmail SMTP per inviare e-mail da PowerShell, gli utenti dovevano prima abilitare le app meno sicure dal pannello di controllo della sicurezza di Google.

Dopo che questa funzione è stata rimossa da Google, per utilizzare il server Google SMPT, gli utenti devono disabilitare l’autenticazione a due fattori sul proprio account Gmail, creare password per le app e quindi utilizzare tali credenziali nel codice PowerShell.

Dopo aver impostato la password dell’app, puoi utilizzare i cmdlet per inviare l’e-mail. Per utilizzare Gmail SMPT, devi anche abilitare SSL. Tutti i parametri richiesti per utilizzare l’SMTP di Gmail per l’invio di un’e-mail sono utilizzati in questo script:

 $EmailFrom = "[email protected]" $EmailTo = "[email protected]" $Subject = "Email Subject" $Body = "Main Message." $SMTPServer = "smtp.gmail.com" $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("username", "password"); $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

Ecco l’elenco dei server SMTP che puoi utilizzare, insieme al loro indirizzo e alle porte.

Nome Indirizzo del server SMTP Porta
GMail smtp.gmail.com 587
Outlook. com smtp.mail.outlook.com 587
Yahoo smtp.mail.yahoo.com 587
AOL smtp.mail.me.com 587
AOL smtp.aol.com 465