# POWERSHELL 7 - ADMINISTRATOR # https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/set-mailboxjunkemailconfiguration?view=exchange-ps # Notes: # You can't add sender email addresses from the same domain as the recipient's email address. All mailboxes in the global address list (GAL) are automatically considered as trusted senders. # You can't add the same email address or domain more than once. # VARIABLES $userAdmin = "USER-ADMIN@DOMAIN" $userTest = "USER-TEST@DOMAIN" $userDomain = ($userTest.Split('@'))[1] $errorLogFile = ".\JunkEmailConfigErrors.txt" # MODULES Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -Force -AllowClobber -AcceptLicense Connect-ExchangeOnline -UserPrincipalName $userAdmin (Get-ConnectionInformation).UserPrincipalName # CONTACTS $All = Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited $AllQty = $All | Measure-Object | Select-Object -ExpandProperty Count $AllQtyDigits = $AllQty.ToString().Length $AllQty # DOMAINS $safeDomains = @("appcentral.info","appstudio.shop","businessuniversity.tech","cloudacademy.live","cloudconnect.cfd","dealsnews.club","deviceguard.pro","digitaleducation.digital","festivalnews.online","infoportal.live","linkdata.live","mailvault.site","marketonline.one","microlearning.academy","peoplex.io","phishing.com.br","phishx.com","phishx.com.br","phishx.io","privacynow.click","proopportunity.one","securedevice.site","securetech.lat","securityapp.cloud","smartdevice.live","technews.rest","trainingportal.me","varejoonline.club","webportal.one") $safeDomainsQty = $safeDomains | Measure-Object | Select-Object -ExpandProperty Count $safeDomainsQty # PROCESS Clear-Content -Path $errorLogFile -ErrorAction SilentlyContinue $index = 0 $All | ForEach-Object { $index++ $indexPadded = $index.ToString().PadLeft($AllQtyDigits, '0') $mailbox = $_ $mailboxName = $mailbox.Name $mailboxAlias = $mailbox.Alias $userDomains = $mailbox.EmailAddresses | ForEach-Object { $emailAddress = $_.ToString().Split(':')[-1] $emailAddress.Split('@')[-1] } | Where-Object { $_ -notlike "SPO_*" } | Sort-Object -Unique $filteredSafeDomains = $safeDomains | Where-Object { $userDomains -notcontains $_ } $filteredSafeDomainsQty = $filteredSafeDomains | Measure-Object | Select-Object -ExpandProperty Count try { Set-MailboxJunkEmailConfiguration $mailboxName -TrustedSendersAndDomains @{Add=$filteredSafeDomains} -ErrorAction Stop Write-Host "${indexPadded} / ${AllQty}: Successfully updated with ${filteredSafeDomainsQty} domains in junk email configuration for ${mailboxAlias}." } catch { $errorMessage = "${indexPadded} / ${AllQty}: Error processing $mailboxAlias (Domain: $userDomains): $($_.Exception.Message)" Write-Host "$errorMessage" -ForegroundColor Red $errorMessage | Out-File -FilePath $errorLogFile -Append } } $errorsQty = Get-Content $errorLogFile | Measure-Object | Select-Object -ExpandProperty Count Write-Host "Script finished (${AllQty}). Check '$errorLogFile' for any errors (${errorsQty})." # SINGLE TEST Set-MailboxJunkEmailConfiguration -Identity $userTest -TrustedSendersAndDomains @{Add=$userDomain} (Get-MailboxJunkEmailConfiguration -Identity $userTest).TrustedSendersAndDomains | ConvertTo-Json # MANUAL # OUTLOOK NOVO # # Configurações -> E-mail -> Lixo eletrônico # Remetentes -> Domínios e remetentes # # OUTLOOK ANTIGO # # Página Inicial -> Excluir -> Bloquear -> Opções de Lixo Eletrônico # Remetentes Confiáveis