Add testsmtp.ps1
This commit is contained in:
parent
1e05af4508
commit
02ede18d6b
64
testsmtp.ps1
Normal file
64
testsmtp.ps1
Normal file
@ -0,0 +1,64 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Test script to verify SMTP (Microsoft 365) connectivity using an app password.
|
||||
|
||||
.DESCRIPTION
|
||||
This script attempts to send a test message using Authenticated SMTP with Microsoft 365.
|
||||
Useful for diagnosing SMTP authentication issues with accounts that have MFA enabled.
|
||||
|
||||
.AUTHOR
|
||||
Generic / Public version (original author removed for portability)
|
||||
|
||||
.NOTES
|
||||
This script is intended for test purposes and should not be used in production automation.
|
||||
|
||||
# CHANGELOG
|
||||
--------------------------------------------------------------------------------
|
||||
Date | Version | Author | Description
|
||||
------------|---------|---------------|------------------------------------------
|
||||
2025-07-18 | 1.0.0 | Public/GPT | Initial version - generic SMTP test script
|
||||
--------------------------------------------------------------------------------
|
||||
#>
|
||||
|
||||
Clear-Host
|
||||
|
||||
# SMTP settings
|
||||
$smtpServer = "smtp.office365.com"
|
||||
$smtpPort = 587
|
||||
$from = "youruser@yourdomain.com"
|
||||
$to = "youruser@yourdomain.com"
|
||||
$subject = "SMTP Test"
|
||||
$body = "This is a test message sent via smtp.office365.com with an app password."
|
||||
|
||||
# Secure password prompt
|
||||
$securePassword = Read-Host "Enter your app password" -AsSecureString
|
||||
$credential = New-Object System.Management.Automation.PSCredential($from, $securePassword)
|
||||
|
||||
# Create email
|
||||
$mail = New-Object system.net.mail.mailmessage
|
||||
$mail.From = $from
|
||||
$mail.To.Add($to)
|
||||
$mail.Subject = $subject
|
||||
$mail.Body = $body
|
||||
$mail.IsBodyHtml = $false
|
||||
|
||||
# Create SMTP client
|
||||
$smtp = New-Object Net.Mail.SmtpClient($smtpServer, $smtpPort)
|
||||
$smtp.EnableSsl = $true
|
||||
$smtp.Credentials = $credential
|
||||
$smtp.Timeout = 10000
|
||||
|
||||
Write-Host "⏳ Sending mail via ${smtpServer}:${smtpPort} as ${from}..."
|
||||
|
||||
try {
|
||||
$smtp.Send($mail)
|
||||
Write-Host "`n✅ Message sent successfully to $to"
|
||||
}
|
||||
catch {
|
||||
Write-Host "`n❌ Failed to send message:"
|
||||
Write-Host $_.Exception.Message
|
||||
if ($_.Exception.InnerException) {
|
||||
Write-Host "`nDetails:"
|
||||
Write-Host $_.Exception.InnerException.Message
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user