| Email-MIME documentation | Contained in the Email-MIME distribution. |
Email::MIME::Header - the header of a MIME message
This object behaves like a standard Email::Simple header, with the following changes:
header method automatically decodes encoded headers if possibleheader_raw method returns the raw header; (read only for now)header_raw rather than headerNote that header_set does not do encoding for you, and expects an
encoded header. Thus, header_set round-trips with header_raw,
not header! Be sure to properly encode your headers with
Encode::encode('MIME-Header', $value) before passing them to
header_set.
Alternately, if you have Unicode (character) strings to set in headers, use the
header_str_set method.
This software is copyright (c) 2004 by Simon Cozens.
This is free software; you can redistribute it and/or modify it under the same terms as perl itself.
| Email-MIME documentation | Contained in the Email-MIME distribution. |
use strict; use warnings; package Email::MIME::Header; use base 'Email::Simple::Header'; our $VERSION = '1.908'; use Encode 1.9801;
sub header { my $self = shift; my @header = $self->SUPER::header(@_); local $@; foreach my $header (@header) { next unless $header =~ /=\?/; $header = $self->_header_decode_str($header); } return wantarray ? (@header) : $header[0]; } sub header_raw { Carp::croak "header_raw may not be used to set headers" if @_ > 2; my ($self, $header) = @_; return $self->SUPER::header($header); } sub header_str_set { my ($self, $name, @vals) = @_; my @values = map { Encode::encode('MIME-Q', $_, 1) } @vals; $self->header_set($name => @values); } sub _header_decode_str { my ($self, $str) = @_; my $new_str; $new_str = $str unless eval { $new_str = Encode::decode("MIME-Header", $str); 1 }; return $new_str; }
1;