Email-MIME-CreateHTML
view release on metacpan or search on metacpan
lib/Email/MIME/CreateHTML.pm view on Meta::CPAN
use Exporter;
use Email::MIME;
use HTML::TokeParser::Simple;
use HTML::Tagset;
our $VERSION = '1.042';
use Email::MIME::CreateHTML::Resolver;
#Globals
use vars qw(%EMBED @EXPORT_OK @ISA);
%EMBED = (
'bgsound' => {'src'=>1},
'body' => {'background'=>1},
'img' => {'src'=>1},
'input' => {'src'=>1},
'table' => {'background'=>1},
'td' => {'background'=>1},
'th' => {'background'=>1},
'tr' => {'background'=>1},
);
@EXPORT_OK = qw(embed_objects parts_for_objects build_html_email);
lib/Email/MIME/CreateHTML.pm view on Meta::CPAN
#
# Public routines used by create_html and also exportable
#
sub embed_objects {
my ($html, $args) = @_;
my $embed = ( defined $args->{embed} && $args->{embed} eq '0' ) ? 0 : 1;
my $inline_css = ( defined $args->{inline_css} && $args->{inline_css} eq '0' ) ? 0 : 1;
my $resolver = new Email::MIME::CreateHTML::Resolver($args);
my $embed_tags = $args->{'embed_elements'} || \%EMBED;
return ($html, {}) unless ( $embed || $inline_css ); #No-op unless one of these is set
my ($html_modified, %embedded_cids);
my $parser = HTML::TokeParser::Simple->new( \$html );
my $regex = '^(' . join('|',keys %HTML::Tagset::linkElements) . ')';
$regex = qr/$regex/;
while ( my $token = $parser->get_token ) {
unless ( $token->is_start_tag( $regex ) ) {
lib/Email/MIME/CreateHTML.pm view on Meta::CPAN
=item embed =E<gt> I<boolean>
Attach relative images and other media to the message. This is enabled by default.
The module will attempt to embed objects defined by C<embed_elements>.
Note that this option only affects the parsing of the HTML and will not affect the C<objects> option.
The object's URI will be rewritten as a Content ID.
=item embed_elements =E<gt> I<reference to hash of hashes with boolean values>
The set of elements that you want to be embedded. Defaults to the C<%Email::MIME::CreateHTML::EMBED> package global.
This should be a data structure of the form:
embed_elements => {
$elementname_1 => {$attrname_1 => $boolean_1},
$elementname_2 => {$attrname_2 => $boolean_2},
...
}
i.e. resource will be embedded if C<$embed_elements-E<gt>{$elementname}-E<gt>{$attrname}> is true.
lib/Email/MIME/CreateHTML.pm view on Meta::CPAN
This is passed as the attributes parameter to the C<create> method (supplied by C<Email::MIME::Creator>) that creates the plain text part of the mail.
The body Content-Type will be set to C<text/plain> unless it is overidden here.
=back
=head1 GLOBAL VARIABLES
=over 4
=item %Email::MIME::CreateHTML::EMBED
This is the default set of elements (and the relevant attributes that point at a resource) that will be embedded.
The for this is:
'bgsound' => {'src'=>1},
'body' => {'background'=>1},
'img' => {'src'=>1},
'input' => {'src'=>1},
'table' => {'background'=>1},
'td' => {'background'=>1},
( run in 2.460 seconds using v1.01-cache-2.11-cpan-71847e10f99 )