But, Diane, my very own example shows that "looks for words in the body" doesn't work unless you take explicit steps to make sure that the asynchronous population of the MailItem members by Outlook has been given sufficient time to populate .Body before you test anything using it.
The entire crux of the script not working appears to be secondary to the script being handed a MailItem that "isn't done being populated yet." Whether or not what I'm doing is common or not, what is being passed is not something that any reasonable programmer would expect that they were getting. Objects should be an "all or nothing" deal, with anything that can be populated actually being populated, and the remainder having been initialized to NULL, before they are ever passed along for downstream processing.
Even my tests for IsNull on a .Body that contained, literally, nothing was failing. From what I can find of the "Is Nothing" test that would apply to an object as a whole. not to members.
In any case, a solution has been identified, which leaves my blind client in a much better position to snag a translating gig when the offers arrive. Trying to manually activate the link in the message with a screen reader takes much longer than it does for those of us who have sight to "point and click" and the gigs he competes for are very much "response time is of the essence."