Remove-SympaMailingListMember.ps1
function Remove-SympaMailingListMember { <# .Synopsis This function removes a member(s) from a Mailing list .EXAMPLE Remove the member jim.bob@queens.ox.ac.uk from the mailing list queens-it Remove-SympaMailingListMember -Sympa $Sympa -MailingList queens-it -Member jim.bob@queens.ox.ac.uk .EXAMPLE Remove the members jim.bob@queens.ox.ac.uk and jim.kirk@queens.ox.ac.uk from the mailing list queens-it Remove-SympaMailingListMember -Sympa $Sympa -MailingList queens-it -Member @('jim.bob@queens.ox.ac.uk','jim.kirk@queens.ox.ac.uk') .EXAMPLE Remove all of the members from the queens-it mailling list Get-SympaMailingListMember -Sympa $sympa -MailingList queens-it | Remove-SympaMailingListMember -Sympa $sympa -MailingList queens-it .Example Remove members from the list queens-it as defined in a CSV Import-Csv C:\Sympa\queens-it-memberslist.csv | Remove-SympaMailingListMember -Sympa $sympa -MailingList queens-it #> param( [Parameter(Mandatory=$true,HelpMessage="Pass in the result of the 'Get-SympaLogin' function")] $Sympa, [Parameter(Mandatory=$true,HelpMessage="Enter the name of the Mailing list you want to remove the member(s) from")] [String]$MailingList, [Parameter(Mandatory=$true,HelpMessage="Enter the address of the member(s) you want to remove from the Mailling list",ValueFromPipelineByPropertyName=$True)] [Array]$Member <# [Parameter(Mandatory=$false,HelpMessage="Should you notify the user that they are being removed from the list, default is no")] [ValidateSet("Yes", "No")] [String]$Notify = "No" #> ) <# #Handle the $Notify paramater converting it into the mess that Sympa understands switch ($Notify) { 'Yes' {$Alert = "0"} 'No' {$Alert = "1"} Default {$Alert = "1"} } #> Process{ #Loop over the member(s) and remove them from the list foreach($Address in $Member){ try { Write-Verbose "Removing $Address from $MailingList" $Sympa.del("$MailingList","$Address",'1') } catch { } } } } |