Courriel

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

[BUG FIXES]

- Courriel now allows an email to have an empty subject when parsing, as does
  Courriel::Builder. Based on a patch from Zbigniew Łukasiak.


0.28     2012-02-01

[BUG FIXES]

- Header attribute names need to be looked up case-insensitively, according to
  the spec. The original casing is preserved in the Courriel::HeaderAttribute
  object's name(), method, but looking up an attribute by name on a
  Courriel::Header object now accepts any casing for the name.


0.27     2011-09-24

[ENHANCEMENTS]

- All objects which can stringify now support a ->stream_to API as well. This
  lets you stream their string output to a sub ref, filehandle, or an object
  with a ->print() method. If you are dealing with large emails, this API may
  be more efficient than generating a single string in memory.

[API CHANGES]

- Renamed the Header->as_header_string and HeaderAttribute->as_header_string
  methods to as_string, so that all objects have the same stringification API.


0.26     2011-09-19

[BUG FIXES]

- Add missing prereq for MooseX::Role::Parameterized. Reported by zby.


0.25     2011-09-15

[BUG FIXES]

- When a header value contained any non-ASCII content, Courriel would
  mistakenly MIME encode the whole value. In some cases, this is okay, but for
  some header fields it is wrong. For example, when a field contains an email
  address the actual address portion must be unencoded.


0.24     2011-09-13

[ENHANCEMENTS]

- The is_binary flag has been replaced with an is_character flag. This flag
  defaults to false. Suggested by zby.


0.23     2011-09-13

[ENHANCEMENTS]

- Courriel->parse now accepts an is_binary flag so you can pass decoded
  (utf-8) data as the email text. However, it's probably smarter to simply
  pass binary data to Courriel and let it do the decoding. The issue was
  brought up by zby.


0.22     2011-09-13

[BUG FIXES]

- Require List::MoreUtils 0.28+, as tests fail with earlier versions.

- Added missing prereq on File::Slurp.


0.21     2011-09-12

[API CHANGES]

- The ->get_attribute() method for Courriel::ContentType and ::Disposition
  objects was replaced by ->attribute in 0.20.

[ENHANCEMENTS]

- Added a new ->get_values() method to Courriel::Headers. This lets you get
  the header string values directly.

- Added a new ->attribute_value() for Courriel::Header::ContentType and
  ::Disposition. This lets you get the attribute's string value, if the
  attribute exists. Suggested by zby.

[BUG FIXES]

- The previous release documented a method ->get_attribute() for
  Courriel::Header::ContentType and ::Disposition objects. This method was
  removed in 0.20 and replaced with a method named ->attribute().


0.20     2011-09-11

[API CHANGES]

- The way headers are represented has been changed quite a bit
  internally. Read on for details.

  All headers are now represented as Courriel::Header objects instead of plain
  strings. This means that calling $headers->get('Foo') returns objects. To
  get the value, you need to call ->value on the individual objects.

  See Courriel::Header for the new class for headers.

- As a corrolary, the Courriel::ContentType and Courriel::Disposition classes
  have been renamed to Courriel::Header::ContentType and
  Courriel::Header::Disposition. They are both now subclasses of
  Courriel::Header. The APIs of these classes have remained mostly the same,
  except for attribute handling (see below).

  The old classes are still shipped in the distro, but they die when
  loaded. This avoids leaving behind old modules which no longer work with
  newer versions of Courriel.

Changes  view on Meta::CPAN


- The Courriel::ContentType->mime_type() method always returns a value in
  lower case, but it preserves the original casing when constructing a header
  value.


0.16     2011-07-21

- Add Courriel->from(), ->to(), and ->cc() methods.

- Skip another test which may fail on other people's machines, as
  File::LibMagic does not return consistent results on all machines.


0.15     2011-06-28

- Skip a test which may fail on other people's machines, as File::LibMagic
  does not return consistent results on all machines.


0.14     2011-06-25

- An email part with non-text content would still be treated as character data
  rather than binary data, and its Content-Type header would end up with a
  charset of us-ascii. This has been fixed, and now you must explicitly ask
  for a charset in the Content-Type header when creating a
  Courriel::ContentType object. Note that plain and html body parts created
  via Courriel::Builder are unaffected, since these always default to UTF-8 as
  the charset. Reported by ico. RT #69085.

- Added Courriel::ContentType->has_charset() and
  Courriel::ContentType->is_binary() methods.


0.13     2011-06-20

- A multipart email built with Courriel::Builder would have a broken
  Content-Type header, missing the required boundary attribute. Reported by
  ico. RT #68694.

- If you explicitly passed unencoded content when creating a part (which
  happens when using Courriel::Builder), that content would be modified so it
  had CRLF line endings. Now, such content is left untouched. Reported by
  ico. RT #68695.

- When passing encoded content to the Courriel::Part::Single constructor, the
  constructor used to modify the content so it had CRLF line endings. Now it
  is left alone.

- Note that if you're passing raw content to the Single constructor _and_
  setting the transfer encoding to 7bit, 8bit, or binary, then you'll end up
  with a noncomformant email. However, by default all raw content is base64
  encoded. It is strongly recommended that you pass raw content and let
  Courriel take care of the transfer encoding.


0.12     2011-06-07

[BUG FIXES]

- The value returned by Courriel::Part::Single->content() was not decoded to
  Perl's native utf-8 character set. Similarly, when encoding content for
  transfer, it was not first transformed to raw bytes.


0.11     2011-06-07

[BUG FIXES]

- Courriel::Builder now adds a "MIME-Version: 1.0" header to all emails it
  creates unless you explicitly set this header, which you probably shouldn't,
  since the only valid value is "1.0". This is a required header for MIME
  emails per RFC2045.


0.10     2011-06-07

[BUG FIXES]

- When parsing an email, the encoding attribute for parts was not set
  correctly, and ended up defaulting to 8bit for all parts. Now the encoding
  is set based on the part's Content-Transfer-Encoding header.


0.09     2011-06-06

[NEW FEATURES]

- This distro now ships a plugin for Email::Abstract, meaning you can use
  Courriel with Email::Sender.


0.08     2011-06-06

[API CHANGES]

- The content() and encoded_content() methods for Courriel::Part::Single now
  return strings, rather than references. This makes the typical use
  simpler. You can still get the reference directly by calling content_ref()
  and encoded_content_ref().

[BUG FIXES]

- Make sure that any Content-ID header set via Courriel::Builder is formatted
  properly (the id value should be wrapped in angle brackets).


0.07     2011-06-06

- Some tests were failing because File::LibMagic may return slightly different
  results on different systems (application/x-perl versus text/x-perl).


0.06     2011-06-05

- Add missing test prereq on File::Slurp.

- The clone_without_attachments() method could end up setting the wrong
  encoding when creating a new single part email.




( run in 0.540 second using v1.01-cache-2.11-cpan-39bf76dae61 )