Powershell email

$File=“gci \abcd\efgh\ijkl | select -last 1”
$From = “adcb@gmail.com
$To = “efgh@gmail.com
$Attachment = $File
$Subject = “Here’s the Email Subject”
$Body = “This is what I want to say”
$SMTPServer = “smtp.gmail.com
Send-MailMessage -From $From -to $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Attachments $Attachment

This is the error I receive:
Send-MailMessage : Illegal characters in path.
At line:1 char:1

  • Send-MailMessage -From $From -to $To -Subject $Subject -Body $Body -SmtpServer $ …
  •   + CategoryInfo          : NotSpecified: (:) [Send-MailMessage], ArgumentException
      + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.SendMailMessage

What am I doing wrong here?

There are a couple of potential pitfalls I can think of:
1 - Instead of “$Attachment = $File” try “$Attachment = $File.FullName”
2 - Paste it into a text editor like Notepad++, and see if the encoding is dodgy (try ANSI and UTF)
3 - Also in Notepad++, try replacing your double qoutes, I find that some text editors change the double quotes so they aren’t compatible with a console.
Good luck.

Problem here is

$File="gci \\abcd\efgh\ijkl | select -last 1"

#it should be
$File=gci \\abcd\efgh\ijkl | select -last 1 -ExpandProperty FullName

when you put everything in double quotes, the whole statement becomes a string.