How to Test Outgoing Emails in SharePoint using PowerShell?

On troubleshooting SharePoint Email issues, as a first step, we have to check outgoing Email settings applied on SharePoint central Administration site are valid. So, how to test SharePoint outgoing email quickly? Here are my PowerShell scripts to test outgoing email in SharePoint 2013.

Method 1: Send Email using SPUtility's SendEmail
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration Parameters
$SiteURL="http://portal.crescent.com/ "
$Email = "[email protected]"
$Subject = "Test Email from SharePoint"
$Body = "Test Email Body"

#Get the Web 
$Web = Get-SPWeb $SiteURL

#Send Email using SPUtility SendEmail method
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($Web ,0,0,$Email,$Subject,$Body)
The above PowerShell script sends Email to the given Email and returns "true" if success.
how to test sharepoint outgoing email

Method 2: Using .Net SMTP Send Mail
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Parameters
$EmailTo = "[email protected]"
$Subject = "Test Email from SharePoint"
$Body = "Test Email Body"

#Get the outgoing Email Server settings
$SPGlobalAdmin = New-Object Microsoft.SharePoint.Administration.SPGlobalAdmin
$SMTPServer = $SPGlobalAdmin.OutboundSmtpServer
$EmailFrom = $SPGlobalAdmin.MailFromAddress

#Frame Email Message
$Message = new-object Net.Mail.MailMessage
$SMTP = new-object Net.Mail.SmtpClient($SMTPServer)
$Message.From = $EmailFrom
$Message.To.Add($EmailTo)
$Message.subject = $Subject
$Message.body = $Body

#Send the Email
$SMTP.Send($Message)

Method 3: Using PowerShell 3.0 Send-Mail Message
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Parameters
$EmailTo = "[email protected]"
$EmailSubject = "Test Email from SharePoint"
$EmailBody = "Test Email Body"

#Get the outgoing Email Server settings
$SPGlobalAdmin = New-Object Microsoft.SharePoint.Administration.SPGlobalAdmin
$SMTPServer = $SPGlobalAdmin.OutboundSmtpServer
$EmailFrom = $SPGlobalAdmin.MailFromAddress

#Using PowerShell 3.0 Send-Mail Message:
Send-MailMessage -To $EmailTo -From $EmailFrom -Subject $EmailSubject -Body $EmailBody -BodyAsHtml -SmtpServer $SmtpServer -UseSsl
Last but not least, We may have to make sure exchange server or SMTP accepts Emails from SharePoint servers

No comments:

Please Login and comment to get your questions answered!

Powered by Blogger.