[mail] Fix headers cast to string

Due lazy loading of specific headers is not possible a direct access to the headers attribute.
Instead use the own implementation of ArrayAccess allow lazy load through the get method which do lazy loading of headers.

Test case of this is in #5140