钱宇/Qian Yu > EasyMail > EasyMail

Download:
EasyMail-2.5.2.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 2.5.2   Source  

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.

syntax highlighting: