Not explicitly setting UTF-8 encoding on the pipe filehandle will give the, "Wide character in print" warning.
Data should always be encoded when leaving the prog, but there's really no way to know what to encode *to*, so you have to guess. I'm guessing that the sendmail command can deal with UTF-8 encoded data, but I don't know for sure. I think that's what I'm asking.
I'm not sure what you want me to look at in this post:
The normal fix for the "wide character' error is to binmode on the filehandle, in your case the pipe filehandle. I was going to mention that in my first reply, but thought it might mess with sendmail's line by line reading off the pipe.
The node I referred you to, Sending a UTF-8 (Unicode) E-mail has not been deleted, a reply to it was deleted, probably some recent spam. I can't say whether the code is buggy, but it does demonstrate the problem of encoding the email for utf8.