my $data = "Goodbye in Japanese is \x{3055}\x{3088}\x{306A}\x{3089}."; #### use Encode; use MIME::Entity; my $entity = MIME::Entity->build( Type => "text/plain", Charset => "UTF-8", Encoding => "quoted-printable", Data => Encode::encode( "UTF-8", $data ), From => Encode::encode( "MIME-Header", $sender ), To => Encode::encode( "MIME-Header", $recipient ), Subject => Encode::encode( "MIME-Header", $subject ), ); #### use Net::SMTP; my $smtp = Net::SMTP->new( "localhost", Hello => 'localhost.localdomain', Timeout => 15, Debug => 1, ); $smtp->mail( $sender ); if ( $smtp->recipient( $recipient ) ) { $smtp->data(); my $msg = $entity->stringify; while ( $msg =~ m/([^\r\n]*)(\r\n|\n\r|\r|\n)?/g ) { my $line = ( defined($1) ? $1 : "" ) . "\r\n"; $smtp->datasend( $line ); } if ( $smtp->dataend() ) { print( STDERR, "Message sent!\n" ); } else { print( STDERR, "Failure sending data.\n" ); } } else { print( STDERR, "Rejected recipient.\n" ); } $smtp->quit();