Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Sending UTF-8 e-mail

by dakkar (Hermit)
on Dec 11, 2004 at 16:39 UTC ( #414118=note: print w/replies, xml ) Need Help??

in reply to Sending UTF-8 e-mail

You are almost doing it right. Your biggest problem is that MIME::Words does not work exactly as needed.

First of all, I assume you are dealing with character strings, not byte strings (read perluniintro and perlunicode for details). In that case, you should really use Encode::encode on your strings before passing them to MIME::Words::encode_mimeword.

The problem with the from and to fields (yes, they'll both get messed up) is that RFC-1522 poses some constraint on the encoding of the various parts. The easiest way to get near what the RFC requires is to use MIME::Words::encode_mimewords:

$smtp->datasend( "To: " . MIME::Words::encode_mimewords(Encode::encode +('utf-8',$self->to()), Encoding => 'Q', Charset=> 'utf-8') . "\n" );

This way I was able to send myself a message with all headers containing japanese characters.

On a sidenote: the RFC requires each encoded "word" to be less than 75 octects. Keep this in mind when encoding long subject lines.

        dakkar - Mobilis in mobile

Most of my code is tested...

Perl is strongly typed, it just has very few types (Dan)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://414118]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2022-01-27 20:25 GMT
Find Nodes?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:

    Results (71 votes). Check out past polls.