Author Posts

June 4, 2018 at 6:31 am

$File="gci \\abcd\efgh\ijkl | select -last 1"
$From = ""
$To = ""
$Attachment = $File
$Subject = "Here's the Email Subject"
$Body = "This is what I want to say"
$SMTPServer = ""
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?

June 6, 2018 at 2:33 pm

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.

August 27, 2018 at 3:30 am

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.