I'm trying to do a simple task in Powershell ISE.
I want to be able to read the content and headers of and e-mail and print it in the console using write-host.
I want to print the sender's name, followed by his address. I want to print out the receiver and the e-mail's subject, followed by the body/Content of the mail. I though this would be an easy task, but I've got a minor setback.
For sake of minimizing the return values I've created a folder with only one e-mail inside and a short message so it would be easy to print out and confirm.
The Problem:
I can print out only one of my desired fields. When I run the script I only get a value for the "Subject" field. All others (SenderName, SenderAddress, To) don't give a value but after research I have confirmed that I do get objects for these properties.
The Code
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$box = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderJunk)
$mails = $box.items
$mails|select SenderName, SenderEmailAddress, To, Subject
Return Values
Could these fields be protected by some sort of security measure in my exchange server?
Am I doing anything wrong in my code?
Why can't I access these values? How can I fix this?
I'm quite new to Powershell scripts for Outlook, but I've done my fair share of research on my problem before posting it here, I simply can't find any explanation. I've read some info about something called PropertyAccessor but never found this for powershell, only for vba. Could this be a possible solution?
Thank you.

$m.GetProperty($m.SenderName)I get error :Method invocation failed because [System.__ComObject] doesn't contain a method named 'GetProperty'.