NAME

Mail::Sendmail::Enhanced v.0.02 = L<Mail::Sendmail> + encoding + attachments (pure Perl)

SYNOPSIS

#!/usr/bin/perl -w

use strict;
use warnings;

use Mail::Sendmail::Enhanced;

my $MAIL = Mail::Sendmail::Enhanced-> new(
  charset     => 'UTF-8',
  smtp        => 'Your SMTP server',
  from        => 'Your mail',
  user        => 'user',
  pass        => 'password',
  method      => 'LOGIN',
  required    => 1,
  attachments => {
    'name for email of the file1' => 'OS file1 location',
    'name for email of the file2' => 'OS file2 location',
  },
  attachments_size_max => 0,
);

for (1..2) {
  print $MAIL-> send( {
    to    => 'author of the module: <wb@webswing.co.uk>',
    subject  => "Subject longer than 80 characters with Polish letters: lowercase: ąćęłńóśźż and uppercase: ĄĆĘŁŃÓŚŹŻ.",
    message  => "This is the message nr $_. in the character encoding UTF-8.

    This is an example of using UTF-8 Polish letters in an email subject field: encoded and longer than 80 characters.",

__END__

DESCRIPTION

Enhanced version of the module Mail::Sendmail with multibytes encoding and attachments. It is pure Perl solution.

From Mail::Sendmail:

"Simple platform independent e-mail from your perl script. Only requires Perl 5 and a network connection. Mail::Sendmail takes a hash with the message to send and sends it to your mail server. It is intended to be very easy to setup and use."

In Mail::Sendmail::Enhanced two things were added:

1. Encoding - which uses the refurbish function encode_qp from the module MIME::QuotedPrint::Perl which is put into the current one. This is pure Perl solution.

Simple encoding multibytes character long header field "Subject:" caused that some characters were divided between two folded rows. Some email clients are not able to put together these separated bytes into one character and words were displeyed inproperly. Since the version 0.02 this problem is solved by keeping bytes of one character in one folded row.

2. Attachments - which allows to add attachments easily. It makes it by using the technique connected with "multipart/mixed" and "boundary" 'Content-Type' attribute.

List of files to send (attachments) is given as a simple hash:

attachments => {
  'name for email of the file1' => 'OS file1 location',
  'name for email of the file2' => 'OS file2 location',
},

where the keys of the hash are "public" (in email) names of files and values of the hash are these files OS locations, respectively.

It possible to do additional specificification of sending attachments throug the parameter attachments_size_max. The possible values are:

attachments_size_max =>  0,       # No limit for sizes of attachments

attachments_size_max => -1,       # Negative value means that sending attachments is forbidden.
                                  # Every try of sending them with this value negative is fatal one.

attachments_size_max => 100000,   # Positive value is maximum size limit of attachment.
                                  # When attachment is bigger then fatal error is return;

BUGS

Please report any bugs or feature requests to bug-mail-sendmail-enhanced at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Mail-Sendmail-Enhanced. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

LICENSE AND COPYRIGHT

Copyright (C) 2015 Waldemar Biernacki, <wb at webswing.co.uk>

This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at:

http://www.perlfoundation.org/artistic_license_2_0

Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license.

If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license.

This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder.

This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed.

Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

SEE ALSO

Mail::Sendmail, MIME::QuotedPrint::Perl

1 POD Error

The following errors were encountered while parsing the POD:

Around line 355:

Non-ASCII character seen before =encoding in 'ąćęłńóśźż'. Assuming UTF-8