Port of Perl 5's Email::Simple
Perl6
Latest commit 2662832 Feb 10, 2017 @retupmoca committed on GitHub Merge pull request #8 from zoffixznet/patch-1
Add mandatory "perl" META field

README.md

Email::Simple

This is my attempt at porting Email::Simple from perl 5 to perl 6 (mostly just because I can)

Example Usage

use Email::Simple;

my $eml = Email::Simple.new($raw-mail-text);
say $eml.body;

my $new = Email::Simple.create(header => [['To', 'mail@example.com'],
                                          ['From', 'me@example.com'],
                                          ['Subject', 'test']],
                               body => 'This is a test.');
say ~$new;

Methods

  • new(Str $text, :$header-class = Email::Simple::Header)

  • new(Array $header, Str $body, :$header-class = Email::Simple::Header)

    Alias of .create with positional arguments.

  • create(Array :$header, Str :$body, :$header-class = Email::Simple::Header)

  • header($name, :$multi)

    Returns the email header with the name $name. If :$multi is not passed, then this will return the first header found. If :$multi is set, then this will return a list of all headers with the name $name (note the change from v1.0!)

  • header-set($name, *@lines)

    Sets the header $name. Adds one $name header for each additional argument passed.

  • header-names()

    Returns a list of header names in the email.

  • headers()

    Alias of header-names()

  • header-pairs()

    Returns the full header data for an email.

    $eml.header-pairs(); # --> [['Subject', 'test'], ['From', 'me@example.com']]
    
  • body()

    Returns the mail body. Note that this module does not try to do any decoding, it just returns the body as-is.

  • body-set($text)

    Sets the mail body to $text. Note that this module does not try to properly encode the body.

  • as-string(), Str()

    Returns the full raw email, suitable for piping into sendmail.

  • crlf()

  • header-obj()

  • header-obj-set($obj)

License

All files in this repository are licensed under the terms of Create Commons License; for details please see the LICENSE file