martedì 17 marzo 2020

PowerShell - Usare Send-MailMessage per inviare PEC tramite l'SMTP di Aruba

Cercando in rete, sembra che l'utilizzo di Send-MailMessage non funzioni con l'Explicit SSL di Aruba.

Io invece ci sono riuscito.

Il trucco è quello di indicare l'utilizzo del protocollo TLS1.2 prima di tentare l'invio.

Un esempio di codice:
 # variabili  
 $PECSMTP_username = "username@pec.dominio.it"  
 $PECSMTP_password = "password"  
 $PECSMTP_fromAddress = "indirizzo@pec.dominio.it"  
 $PECSMTP_server = "smtps.pec.aruba.it"  
 $PECSMTP_port = 587  
 $mail_to = "destinatario@pec.dominio.it"  
 $mail_subject = "oggetto"  
 $mail_body = "corpo della mail"  
 $attachment = "[url dell'allegato]"  
   
 # imposto l'utilizzo della connessione TLS 1.2  
 [System.Net.ServicePointManager]::SecurityProtocol = 'Tls,TLS11,TLS12'  
   
 # generazione della password  
 $mail_password = $PECSMTP_password | ConvertTo-SecureString -asPlainText -Force  
   
 # generazione delle credenziali  
 $credential = New-Object System.Management.Automation.PSCredential($PECSMTP_username, $mail_password)  
   
 # invio della mail  
 $returnSendTry = Send-MailMessage -from $PECSMTP_fromAddress `  
     -to $mail_to `  
     -subject "$mail_subject" `  
     -body $mail_body `  
     -smtpServer $PECSMTP_server `  
     -Port $PECSMTP_port `  
     -UseSsl `  
     -Attachments $attachment `  
     -Credential $credential `  
     -ErrorVariable returnVar  
Da notare l'utilizzo della porta 587, che accetta le connessioni in ingresso (la 465 no).

Nessun commento:

Posta un commento