Add a TT helper to encode email headers in UTF-8
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 1 Mar 2011 04:16:07 +0000 (04:16 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 1 Mar 2011 04:16:07 +0000 (04:16 +0000)
This can and should be used to encode any headers (To, From, Subject, etc)
in an email that might include text outside of the ASCII 7-bit range. Names
of people or libraries, for example, that might otherwise come out garbled.

git-svn-id: svn://svn.open-ils.org/ILS/trunk@19546 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor.pm

index 4be542b..4251519 100644 (file)
@@ -1,5 +1,6 @@
 package OpenILS::Application::Trigger::Reactor;
 use strict; use warnings;
 package OpenILS::Application::Trigger::Reactor;
 use strict; use warnings;
+use Encode qw/ encode /;
 use Template;
 use DateTime;
 use DateTime::Format::ISO8601;
 use Template;
 use DateTime;
 use DateTime::Format::ISO8601;
@@ -49,6 +50,13 @@ my $_TT_helpers = {
         return $str;
     },
 
         return $str;
     },
 
+    # encode email headers in UTF-8, per RFC2231
+    escape_email_header => sub {
+        my $str = shift;
+        $str = encode("MIME-Header", $str);
+        return $str;
+    },
+
     # strip non-ASCII characters after splitting base characters and diacritics
     # least common denominator for EDIFACT messages using the UNOB character set
     force_jedi_unob => sub {
     # strip non-ASCII characters after splitting base characters and diacritics
     # least common denominator for EDIFACT messages using the UNOB character set
     force_jedi_unob => sub {