Use Select-Object’s -ExpandProperty parameter, instead of -Property (which is what you are using when you pass arguments positionally):
$managername = get-aduser $listmanager | select-object -ExpandProperty name
The difference is that $managername will now be a String object, instead of a PSObject that has a String property called “Name”. When you see that hashtable-like syntax in a string, it’s a dead giveaway: “@{name=Manager Name}”
Thanks for the correction Dave. Also, you should take a look at here-strings if you are going to be compiling a message to the user for ease of formatting:
$managername = Get-ADUser jsmith | Select name
$body = @"
Dearest $($managername.name),
Some message blah blah blah
Your technically apt IT God,
Frank
"@
$body