Functions/UserMangement/Send-PVMailMessage.ps1
Function Send-PVMailMessage { <# .SYNOPSIS Enables a User to send e-mail using details in the User’s account .DESCRIPTION Exposes the PACLI Function: "MAILUSER" .PARAMETER vault The defined Vault name .PARAMETER user The Username of the authenticated User. .PARAMETER mailServerIP The IP of the mail server .PARAMETER senderEmail The E-mail address of the sender. This is used as return address and in the ‘From’ field of the mail. .PARAMETER domainName The sender’s domain (computer name). This value can usually be anything other than blank. .PARAMETER recipientEmail The E-mail address of the recipient .PARAMETER recipientUser The recipient user in Vault=vault. The recipient’s E-mail is taken from the user’s personal details. From the home address/business address/other address according to the following parameters .PARAMETER safe The outgoing E-mail will contain a link to this CyberArk Vault file. .PARAMETER folder The outgoing E-mail will contain a link to this CyberArk Vault file. .PARAMETER file The outgoing E-mail will contain a link to this CyberArk Vault file. .PARAMETER subject The subject of the E-mail message .PARAMETER text The text of the E-mail message .PARAMETER useBusinessMail Use the recipient user’s business Email address. .PARAMETER useHomeMail Use the recipient user’s Home Email address. .PARAMETER useOtherMail Use the recipient user’s other E-mail address. .PARAMETER templateFile The file path of a template for the Email to be sent. The template file may contain variables from this command only .PARAMETER parm1 Values for variables in the template file. .PARAMETER parm2 Values for variables in the template file. .PARAMETER parm3 Values for variables in the template file. .PARAMETER parm4 Values for variables in the template file. .PARAMETER parm5 Values for variables in the template file. .PARAMETER parm6 Values for variables in the template file. .PARAMETER parm7 Values for variables in the template file. .PARAMETER parm8 Values for variables in the template file. .PARAMETER parm9 Values for variables in the template file. .PARAMETER parm10 Values for variables in the template file. .PARAMETER sessionID The ID number of the session. Use this parameter when working with multiple scripts simultaneously. The default is ‘0’. .EXAMPLE Send-PVMailMessage -vault Lab -user Administrator -mailServerIP 10.10.10.50 -senderEmail epv@company.com ` -domainName company.com -recipientEmail user@company.com -recipientUser CF0 -safe Audit_Reports ` -folder Reports -file ActivityReport -subject SUBJECT -templateFile template.txt -parm1 "Auditors" Example for template file content: Dear %%RecipientUser, I have sent you a new report named %%FILE in safe %%SAFE folder %%FOLDER. Please take the time to review it. Best Regards, %%PARM1. Sends an email to the specified vault user in accordance with the supplied parameters. .NOTES AUTHOR: Pete Maan #> [CmdLetBinding()] param( [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [string]$vault, [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [string]$user, [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [string]$mailServerIP, [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [string]$senderEmail, [Parameter( Mandatory = $True, ValueFromPipelineByPropertyName = $True)] [string]$domainName, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$recipientEmail, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$recipientUser, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [Alias("Safename")] [string]$safe, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$folder, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [Alias("Filename")] [string]$file, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$subject, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$text, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [switch]$useBusinessMail, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [switch]$useHomeMail, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [switch]$useOtherMail, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$templateFile, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm1, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm2, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm3, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm4, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm5, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm6, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm7, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm8, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm9, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [string]$parm10, [Parameter( Mandatory = $False, ValueFromPipelineByPropertyName = $True)] [int]$sessionID ) PROCESS { $Return = Invoke-PACLICommand $Script:PV.ClientPath MAILUSER $($PSBoundParameters.getEnumerator() | ConvertTo-ParameterString) if($Return.ExitCode -eq 0) { Write-Verbose "Mail Message Sent" [PSCustomObject] @{ "vault" = $vault "user" = $user "sessionID" = $sessionID } | Add-ObjectDetail -TypeName pacli.PoShPACLI } } } |