Avatar of E=mc2
Flag for Canada asked on

Cause of a Powershell Scripting Error for sending email with attachment

What would cause this type of error in a Powershell script?

Send-MailMessage : The operation has timed out.
At C:\Users\Name\Desktop\Folder\script.ps1:17 char:1
+ Send-MailMessage @sendMailArgs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcept
    + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
PowershellScripting Languages

Avatar of undefined
Last Comment

8/22/2022 - Mon
Tahir Qureshi

you have to share your script Plus what command you are using
plus check smtp port is open or not

Check the SMTP server address: is it correct?is Port 25 reachable from where the script is running? As Tahir advised, provide more details.

The port is open, since I am able to use the following script however it's successful only when I use it without the attachment.

$username = 'email1@gmail.com'
$password = 'password'
$sendMailArgs = @{
      To =                  'email2@gmail.com'
      From =                  $username
      Cc =                  'email3@gmail.com'
    Bcc =           'email1@hotmail.com'
      Subject =            'File as Attached'
      Body =                  'The file is attached'
      Attachments =      'C:\Users\User1\Desktop\Folder\File.pdf'
      SmtpServer =      'smtp.gmail.com'
      Port =                  587
      UseSsl =            $true
      Credential =      New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, (ConvertTo-SecureString $password -AsPlaintext -Force)
Send-MailMessage @sendMailArgs
Write-Host "Mail Sent"
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question

Outlook works fine.
And I even renamed the attachment and it still did not work.
Jose Gabriel Ortega Castro

I've done it 2 ways:

$username = 'jortega928@gmail.com'
$password = 'xxx'

$smtp = new-object Net.Mail.SmtpClient('smtp.gmail.com') 
$smtp.EnableSsl = $true 
$msg = new-object Net.Mail.MailMessage  

$msg.From = $username
$msg.BodyEncoding = [system.Text.Encoding]::Unicode 
$msg.SubjectEncoding = [system.Text.Encoding]::Unicode 
$msg.IsBodyHTML = $true  
$msg.Subject = "File is Attached" 
$msg.Body = "The file is attached"

$SMTP.Credentials = New-Object System.Net.NetworkCredential("$username", "$password"); 
    $er = $_.Exception.Message
    Write-Error $_.Exception.Message

Open in new window

(Other way):
    $From = "jortega928@gmail.com"
    $To = "jortega@faboit.com"
    $Cc = "ceo@faboit.com"
    $Attachment = "Z:\WORKING_DIR\file1.csv"
    $Subject = "Email Subject"
    $Body = "Insert body text here"
    $SMTPServer = "smtp.gmail.com"
    $SMTPPort = "587"
    Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject `
    -Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl `
    -Credential (Get-Credential -UserName $From -Message "Insert the password for $From") -Attachments $Attachment
    Write-Error $_.Exception.Message

Open in new window

I get the following "The SMTP server requires a secure connection or the client was not authenticated.
error 5.5.1 (Authentication required).

This is because I have disabled this  (Less secure app) when I enabled it works.

If you ask me I'd use the second since I wouldn't need to hardcode my password on the script ;)

The smtp server was rejecting.
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.