Yanick Champoux > Email-Simple-Markdown > Email::Simple::Markdown

Download:
Email-Simple-Markdown-0.5.2.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: v0.5.2   Source  

NAME ^

Email::Simple::Markdown - simple email creation with auto text and html multipart body

VERSION ^

version 0.5.2

SYNOPSIS ^

    use Email::Simple::Markdown;

    my $email = Email::Simple::Markdown->create(
        header => [
            From    => 'me@here.com',
            To      => 'you@there.com',
            Subject => q{Here's a multipart email},
        ],
        body => '[this](http://metacpan.org/search?q=Email::Simple::Markdown) is *amazing*',
    );

    print $email->as_string;

DESCRIPTION ^

Email::Simple::Markdown behaves almost exactly like Email::Simple, excepts for one detail: when its method as_string() is invoked, the returned string representation of the email has multipart body with a text/plain element (the original body), and a text/html element, the markdown rendering of the text body.

The markdown convertion is done using Text::MultiMarkdown.

METHODS ^

Email::Simple::Markdown inherits all the methods if Email::Simple. In addition, it provides one more method: with_markdown.

create( ... )

Behaves like Email::Simple's create(), but accepts the following additional arguments:

markdown_engine => $module

See markdown_engine_set. If not given, defaults to auto.

css => $stylesheet

If provided, the html part of the email will be prepended with the given stylesheet, wrapped by a css tag.

pre_markdown_filter => sub { ... }

See pre_markdown_filter_set.

charset => $charset

The character set supplied to Email::MIME::create(). By default, no character set is passed.

markdown_engine

Returns the markdown engine used by the object.

markdown_engine_set( $module )

Sets the markdown engine to be used by the object. Currently accepts auto, Text::MultiMarkdown or Text::Markdown.

If not specified or set to auto, the object will use the first markdown module it finds, in the order given in the previous paragraph.

css

Returns the cascading stylesheet that is applied to the html part of the email.

css_set( $stylesheet )

Sets the cascading stylesheet for the html part of the email to be $stylesheet.

    $email->css_set( <<'END_CSS' );
        p   { color: red; }
        pre { border-style: dotted; }
    END_CSS

The $stylesheet can also be an array ref, holding key/value pairs where the key is the css selector and the value the attached style. For example, the equivalent call to the one given above would be:

    $email->css_set([
        p   => 'color: red;',
        pre => 'border-style: dotted;',
    ]);

pre_markdown_filter_set( sub{ ... } );

Sets a filter to be run on the body before the markdown transformation is done. The body will be passed as $_ and should be modified in-place.

E.g., to add a header to the email:

    $mail->pre_markdown_filter_set(sub {
        s#^#<div id="header">My Corp <img src='..' /></div>#;
    });

charset_set( $charset )

Sets the charset to be used by the email.

with_markdown()

Returns an Email::Abstract representation of the email, with its multipart body.

AUTHOR ^

Yanick Champoux <yanick@babyl.dyndns.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Yanick Champoux.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: