The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

EasyMail - Perl Send Mail Interface

SYNOPSIS

  use EasyMail;
  
  if(defined(&EasyMail::foo)){
    print "lib is included";
  }else{
    print "lib is not included";
  }
  
  my $email_from = {'email'=>'test@adways.net', 'name'=>'Test'};
  
  my $email_to = 'receiver@adways.net';
  

# $email_name_pair is a variable specify a email and name # $name can be undef,set $name=undef if $name eq '' # $email_name_pair can be a string # A: "$email" # B: "$name $email" if not A # C: "$email $name" if not A,B # D: "\"$name\"<$email>" if not A,B,C # E: "$name<$email>" if not A,B,C,D # $email can be a array_ref # A: [$email,$name] # B: [$name,$email] if not A # $email can be a hash_ref # {email=>$email,name=>$name}

  my $email_cc = $email_to;
  my $email_bcc = [];
  
  my $ra_filters = ['adways.net'];
  
  my $file = {
                        'file_path' => '/usr/local/src/test.txt', 
                                #path to file 
                        'file_bin' => undef, 
                                #binary content of file
                        'file_name' => undef, 
                                #file name
                        'content_type' => undef, 
                                #content type
                        'content_id' => undef
                                #content_id, when u wanna embed picture in html email u need it

# the rule of $file # 1,you "must and can only" set one of file_path and file_bin,or will throw an exception # 2,if file_name set, {file_name}=file_name # 3,if file_name not set and file_path set,then {file_name} will be generate by file_path # 4,if file_name not set and file_path not set and content_id set,then no {file_name} # 5,if content_type set,then {content_type}=content_type # 6,if content_type not set and {file_name} set,then {content_type} will be generate by {file_name} # 7,if content_id set,then consider this file as part of multi_related structure,else if content_id not set then consider this file as part of multi_mixed structure };

  my $mail = {
                        'sender_type' => 'SMTPAUTHLOGIN', 
                                # SENDMAIL | SMTPAUTHLOGIN | SMTPAUTHPLAIN | SMTPAUTHNONE 
                                # default is 'SENDMAIL'
                        'smtp_host' => '127.0.0.1', 
                                # smtp host address default is 127.0.0.1 (if sender is smtp)
                        'smtp_port' => 25, 
                                # smtp host port (if sender is smtp)
                        'smtp_usr' => 'admin', 
                                # smtp author usr name (if needed)
                        'smtp_pass' => 'password', 
                                # smtp author usr pass (if needed)
                        'sendmail_path' => '/usr/sbin', 
                                # the path of sendmail, default is 'sendmail'(if needed)
                        'type' => 'txt', 
                                # can be 'html' 'plain' 'txt' 'text' default is 'plain'
                                # 'txt' 'text' is alias for 'plain'
                                # the recomend way you set mail as plain text mail is set it 'plain'
                        'subject' => 'Test Mail', 
                                # the mail subject, default is 'No Subject'
                        'body' => 'This is a test.', 
                                # the text content of mail, default is ''
                        'files' => $file, 
                                # files to be attach to the mail files=>[$file,$file,..], default is []
                        'from' => $email_from, 
                                # $email_name_pair
                        'to' => $email_to, 
                                # $email_name_pair || [$email_name_pair,$email_name_pair,..], default is []
                        'cc' => $email_cc, 
                                # $email_name_pair || [$email_name_pair,$email_name_pair,..], default is []
                        'bcc' => $email_bcc, 
                                # $email_name_pair || [$email_name_pair,$email_name_pair,..], default is []
                        'mail_filter' => $ra_filters, 
                                # [$email_filter, $email_filter, ..], default is []
                                # email_filter: only allow specified email to send ( for debug use)
                        'return_path' => '/tmp/failmail', 
                                #sendmail to this address if sendmail fail ,default is not set
                        'src_encoding' => 'utf8', 
                                #source mail encoding
                        'dst' => 'un'
                                # 'cn' || 'un' || 'jp'
                                # 'cn' for gb2312 encoding, 'un' for utf8 encoding, 'jp' for iso-2022-jp encoding

# extra rules: # from is must set # to and cc must contains more than one valid email # if (input is all unicode or input is all ascii){ # src_encoding can be not set # }else{ # src_encoding must set # } # dst must set # in to cc bcc, [$email,$email] is parse as two receiver email

        };

        EasyMail::sendmail($mail);
  

The synopsis above only lists the major methods and parameters.

Basic Variables and Hash Options

$mail - all content of the mail

        $mail is a hash_ref with below options :
                        
                sender_type
                        # SENDMAIL | SMTPAUTHLOGIN | SMTPAUTHPLAIN | SMTPAUTHNONE | DIRECT
                        # default is 'SENDMAIL'
                smtp_host
                        # smtp host address default is 127.0.0.1 (if sender is smtp)
                smtp_port
                        # smtp host address (if sender is smtp)
                smtp_usr
                        # smtp author usr name (if needed)
                smtp_pass
                        # smtp author usr pass (if needed)
                sendmail_path
                        #the path of sendmail, default is 'sendmail'(if needed)
        
                type
                        #can be 'html' 'plain' 'txt' 'text' default is 'plain'
                        #'txt' 'text' is alias for 'plain'
                        #the recomend way you set mail as plain text mail is set it 'plain'
                subject
                        #the mail subject, default is 'No Subject'
                body
                        #the text content of mail, default is ''
                files
                        #files to be attach to the mail files=>[$file,$file,..], default is []
                from
                        #$email_name_pair
                to
                        # $email_name_pair || [$email_name_pair,$email_name_pair,..], default is []
                cc
                        # $email_name_pair || [$email_name_pair,$email_name_pair,..], default is []
                bcc
                        # $email_name_pair || [$email_name_pair,$email_name_pair,..], default is []
                return_path
                        #sendmail to this address if sendmail fail ,default is not set
                src_encoding
                        #source mail encoding
                dst
                        # 'cn' || 'un' || 'jp'
                        # 'cn' for gb2312 encoding, 'un' for utf8 encoding, 'jp' for iso-2022-jp encoding

        extra rules:
                from is must set
                to and cc must contains more than one valid email
                if (input is all unicode or input is all ascii){
                        src_encoding can be not set
                }else{
                        src_encoding must set
                }
                dst must set
                in to cc bcc, [$email,$email] is parse as two receiver email

$email_name_pair - the email-name pair

        $email_name_pair is a variable specify a email and name
                        
                $name can be undef,set $name=undef if $name eq ''

                $email_name_pair can be a string:
                        A: "$email"
                        B: "$name $email" if not A
                        C: "$email $name" if not A,B
                        D: "\"$name\"<$email>" if not A,B,C
                        E: "$name<$email>" if not A,B,C,D

                $email can be a array_ref:
                        A: [$email,$name]
                        B: [$name,$email] if not A

                $email can be a hash_ref:
                        {email=>$email,name=>$name}

$file - the file attached

        $file is a hash_ref with below options :
                file_path
                        #path to file 
                file_bin
                        #binary content of file
                file_name
                        #file name
                content_type
                        #content type
                content_id
                        #content_id, when u wanna embed picture in html email u need it

        the rule of $file:
                1,you "must and  can only" set one of file_path and file_bin,or will throw an exception
                2,if file_name set, {file_name}=file_name
                3,if file_name not set and file_path set,then {file_name} will be generate by file_path
                4,if file_name not set and file_path not set and content_id set,then no {file_name}
                5,if content_type set,then {content_type}=content_type
                6,if content_type not set and {file_name} set,then {content_type} will be generate by {file_name}
                7,if content_id set,then consider this file as part of multi_related structure,else if content_id not set then consider this file as part of multi_mixed structure

COPYRIGHT

The EasyMail module is Copyright (c) 2003-2008 QIAN YU. All rights reserved.

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 1123:

Non-ASCII character seen before =encoding in 'set,then'. Assuming UTF-8