Changeset 92830 in spip-zone


Ignore:
Timestamp:
Nov 11, 2015, 10:39:18 AM (4 years ago)
Author:
rastapopoulos@…
Message:

Mettons à jour PHPMailer, qui a eu 4 versions de plus, dont de grosses choses, au moins : ajout de la méthode Oauth pour Gmail (qui a l'air compliqué cela dit, et pas encore intégré dans la config de Facteur !) + de la sécurité importante.

Location:
_plugins_/facteur/trunk/phpmailer-php5
Files:
3 added
39 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/facteur/trunk/phpmailer-php5/README.md

    r89555 r92830  
    1212
    1313- Probably the world's most popular code for sending email from PHP!
    14 - Used by many open-source projects: Wordpress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
     14- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
    1515- Integrated SMTP support - send without a local mail server
    1616- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
    1717- Multipart/alternative emails for mail clients that do not read HTML email
    1818- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
    19 - SMTP authentication with LOGIN, PLAIN, NTLM and CRAM-MD5 mechanisms over SSL and TLS transports
     19- SMTP authentication with LOGIN, PLAIN, NTLM, CRAM-MD5 and Google's XOAUTH2 mechanisms over SSL and TLS transports
    2020- Error messages in 47 languages!
    2121- DKIM and S/MIME signing support
     
    3434## License
    3535
    36 This software is licenced under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html). Please read LICENSE for information on the
     36This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license. Please read LICENSE for information on the
    3737software availability and distribution.
    3838
    3939## Installation & loading
    4040
    41 PHPMailer is available via [Composer/Packagist](https://packagist.org/packages/phpmailer/phpmailer), so just add this line to your `composer.json` file:
     41PHPMailer is available via [Composer/Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), so just add this line to your `composer.json` file:
    4242
    43     "phpmailer/phpmailer": "~5.2"
     43```json
     44"phpmailer/phpmailer": "~5.2"
     45```
     46
     47or
     48
     49```sh
     50composer require phpmailer/phpmailer
     51```
     52
     53If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package.
    4454
    4555Alternatively, copy the contents of the PHPMailer folder into somewhere that's in your PHP `include_path` setting. If you don't speak git or just want a tarball, click the 'zip' button at the top of the page in GitHub.
     
    4959PHPMailer does *not* declare a namespace because namespaces were only introduced in PHP 5.3.
    5060
     61If you want to use Google's XOAUTH2 authentication mechanism, you need to be running at least PHP 5.4, and load the dependencies listed in `composer.json`.
     62
    5163### Minimal installation
    5264
    53 While installing the entire package manually or with composer is simple, convenient and reliable, you may want to include only vital files in your project. At the very least you will need [class.phpmailer.php](class.phpmailer.php). If you're using SMTP, you'll need [class.smtp.php](class.smtp.php), and if you're using POP-before SMTP, you'll need [class.pop3.php](class.pop3.php). For all of these, we recommend you use [the autoloader](PHPMailerAutoload.php) too as otherwise you will either have to `require` all classes manually or use some other autoloader. You can skip the [language](language/) folder if you're not showing errors to users and can make do with English-only errors. You may need the additional classes in the [extras](extras/) folder if you are using those features, including NTLM authentication and ics generation.
     65While installing the entire package manually or with composer is simple, convenient and reliable, you may want to include only vital files in your project. At the very least you will need [class.phpmailer.php](class.phpmailer.php). If you're using SMTP, you'll need [class.smtp.php](class.smtp.php), and if you're using POP-before SMTP, you'll need [class.pop3.php](class.pop3.php). For all of these, we recommend you use [the autoloader](PHPMailerAutoload.php) too as otherwise you will either have to `require` all classes manually or use some other autoloader. You can skip the [language](language/) folder if you're not showing errors to users and can make do with English-only errors. You may need the additional classes in the [extras](extras/) folder if you are using those features, including NTLM authentication and ics generation. If you're using Google XOAUTH2 you will need `class.phpmaileroauth.php` and `class.oauth.php` classes too, as well as the composer dependencies.
    5466
    5567## A Simple Example
     
    7183$mail->Port = 587;                                    // TCP port to connect to
    7284
    73 $mail->From = 'from@example.com';
    74 $mail->FromName = 'Mailer';
     85$mail->setFrom('from@example.com', 'Mailer');
    7586$mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    7687$mail->addAddress('ellen@example.com');               // Name is optional
     
    137148With the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone:
    138149
    139 `git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git`
     150```sh
     151git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git
     152```
    140153
    141154Please *don't* use the SourceForge or Google Code projects any more.
  • _plugins_/facteur/trunk/phpmailer-php5/VERSION

    r89555 r92830  
    1 5.2.10
     15.2.14
  • _plugins_/facteur/trunk/phpmailer-php5/changelog.md

    r89555 r92830  
    11# ChangeLog
     2
     3## Version 5.2.14 (Nov 1st 2015)
     4* Allow addresses with IDN (Internationalized Domain Name) in PHP 5.3+, thanks to @fbonzon
     5* Allow access to POP3 errors
     6* Make all POP3 private properties and methods protected
     7* **SECURITY** Fix vulnerability that allowed email addresses with line breaks (valid in RFC5322) to pass to SMTP, permitting message injection at the SMTP level. Mitigated in both the address validator and in the lower-level SMTP class. Thanks to Takeshi Terada.
     8* Updated Brazilian Portuguese translations (Thanks to @phelipealves)
     9
     10## Version 5.2.13 (Sep 14th 2015)
     11* Rename internal oauth class to avoid name clashes
     12* Improve Estonian translations
     13
     14## Version 5.2.12 (Sep 1st 2015)
     15* Fix incorrect composer package dependencies
     16* Skip existing embedded image `cid`s in `msgHTML`
     17
     18## Version 5.2.11 (Aug 31st 2015)
     19* Don't switch to quoted-printable for long lines if already using base64
     20* Fixed Travis-CI config when run on PHP 7
     21* Added Google XOAUTH2 authentication mechanism, thanks to @sherryl4george
     22* Add address parser for RFC822-format addresses
     23* Update MS Office MIME types
     24* Don't convert line breaks when using quoted-printable encoding
     25* Handle MS Exchange returning an invalid empty AUTH-type list in EHLO
     26* Don't set name or filename properties on MIME parts that don't have one
    227
    328## Version 5.2.10 (May 4th 2015)
  • _plugins_/facteur/trunk/phpmailer-php5/class.phpmailer.php

    r89555 r92830  
    3030    /**
    3131     * The PHPMailer Version number.
    32      * @type string
    33      */
    34     public $Version = '5.2.10';
     32     * @var string
     33     */
     34    public $Version = '5.2.14';
    3535
    3636    /**
    3737     * Email priority.
    38      * Options: 1 = High, 3 = Normal, 5 = low.
    39      * @type integer
    40      */
    41     public $Priority = 3;
     38     * Options: null (default), 1 = High, 3 = Normal, 5 = low.
     39     * When null, the header is not set at all.
     40     * @var integer
     41     */
     42    public $Priority = null;
    4243
    4344    /**
    4445     * The character set of the message.
    45      * @type string
     46     * @var string
    4647     */
    4748    public $CharSet = 'iso-8859-1';
     
    4950    /**
    5051     * The MIME Content-type of the message.
    51      * @type string
     52     * @var string
    5253     */
    5354    public $ContentType = 'text/plain';
     
    5657     * The message encoding.
    5758     * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable".
    58      * @type string
     59     * @var string
    5960     */
    6061    public $Encoding = '8bit';
     
    6263    /**
    6364     * Holds the most recent mailer error message.
    64      * @type string
     65     * @var string
    6566     */
    6667    public $ErrorInfo = '';
     
    6869    /**
    6970     * The From email address for the message.
    70      * @type string
     71     * @var string
    7172     */
    7273    public $From = 'root@localhost';
     
    7475    /**
    7576     * The From name of the message.
    76      * @type string
     77     * @var string
    7778     */
    7879    public $FromName = 'Root User';
     
    8182     * The Sender email (Return-Path) of the message.
    8283     * If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
    83      * @type string
     84     * @var string
    8485     */
    8586    public $Sender = '';
     
    8889     * The Return-Path of the message.
    8990     * If empty, it will be set to either From or Sender.
    90      * @type string
     91     * @var string
    9192     * @deprecated Email senders should never set a return-path header;
    9293     * it's the receiver's job (RFC5321 section 4.4), so this no longer does anything.
     
    9798    /**
    9899     * The Subject of the message.
    99      * @type string
     100     * @var string
    100101     */
    101102    public $Subject = '';
     
    104105     * An HTML or plain text message body.
    105106     * If HTML then call isHTML(true).
    106      * @type string
     107     * @var string
    107108     */
    108109    public $Body = '';
     
    113114     * capability such as mutt & Eudora.
    114115     * Clients that can read HTML will view the normal Body.
    115      * @type string
     116     * @var string
    116117     */
    117118    public $AltBody = '';
     
    123124     * @link http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/
    124125     * @link http://kigkonsult.se/iCalcreator/
    125      * @type string
     126     * @var string
    126127     */
    127128    public $Ical = '';
     
    130131     * The complete compiled MIME message body.
    131132     * @access protected
    132      * @type string
     133     * @var string
    133134     */
    134135    protected $MIMEBody = '';
     
    136137    /**
    137138     * The complete compiled MIME message headers.
    138      * @type string
     139     * @var string
    139140     * @access protected
    140141     */
     
    143144    /**
    144145     * Extra headers that createHeader() doesn't fold in.
    145      * @type string
     146     * @var string
    146147     * @access protected
    147148     */
     
    151152     * Word-wrap the message body to this number of chars.
    152153     * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance.
    153      * @type integer
     154     * @var integer
    154155     */
    155156    public $WordWrap = 0;
     
    158159     * Which method to use to send mail.
    159160     * Options: "mail", "sendmail", or "smtp".
    160      * @type string
     161     * @var string
    161162     */
    162163    public $Mailer = 'mail';
     
    164165    /**
    165166     * The path to the sendmail program.
    166      * @type string
     167     * @var string
    167168     */
    168169    public $Sendmail = '/usr/sbin/sendmail';
     
    171172     * Whether mail() uses a fully sendmail-compatible MTA.
    172173     * One which supports sendmail's "-oi -f" options.
    173      * @type boolean
     174     * @var boolean
    174175     */
    175176    public $UseSendmailOptions = true;
     
    178179     * Path to PHPMailer plugins.
    179180     * Useful if the SMTP class is not in the PHP include path.
    180      * @type string
     181     * @var string
    181182     * @deprecated Should not be needed now there is an autoloader.
    182183     */
     
    184185
    185186    /**
    186      * The email address that a reading confirmation should be sent to.
    187      * @type string
     187     * The email address that a reading confirmation should be sent to, also known as read receipt.
     188     * @var string
    188189     */
    189190    public $ConfirmReadingTo = '';
    190191
    191192    /**
    192      * The hostname to use in Message-Id and Received headers
    193      * and as default HELO string.
    194      * If empty, the value returned
    195      * by SERVER_NAME is used or 'localhost.localdomain'.
    196      * @type string
     193     * The hostname to use in the Message-ID header and as default HELO string.
     194     * If empty, PHPMailer attempts to find one with, in order,
     195     * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value
     196     * 'localhost.localdomain'.
     197     * @var string
    197198     */
    198199    public $Hostname = '';
    199200
    200201    /**
    201      * An ID to be used in the Message-Id header.
     202     * An ID to be used in the Message-ID header.
    202203     * If empty, a unique id will be generated.
    203      * @type string
     204     * @var string
    204205     */
    205206    public $MessageID = '';
     
    208209     * The message Date to be used in the Date header.
    209210     * If empty, the current date will be added.
    210      * @type string
     211     * @var string
    211212     */
    212213    public $MessageDate = '';
     
    221222     * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465").
    222223     * Hosts will be tried in order.
    223      * @type string
     224     * @var string
    224225     */
    225226    public $Host = 'localhost';
     
    227228    /**
    228229     * The default SMTP server port.
    229      * @type integer
     230     * @var integer
    230231     * @TODO Why is this needed when the SMTP class takes care of it?
    231232     */
     
    234235    /**
    235236     * The SMTP HELO of the message.
    236      * Default is $Hostname.
    237      * @type string
     237     * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find
     238     * one with the same method described above for $Hostname.
     239     * @var string
    238240     * @see PHPMailer::$Hostname
    239241     */
     
    243245     * What kind of encryption to use on the SMTP connection.
    244246     * Options: '', 'ssl' or 'tls'
    245      * @type string
     247     * @var string
    246248     */
    247249    public $SMTPSecure = '';
     
    251253     * even if `SMTPSecure` is not set to 'tls'.
    252254     * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid.
    253      * @type boolean
     255     * @var boolean
    254256     */
    255257    public $SMTPAutoTLS = true;
     
    258260     * Whether to use SMTP authentication.
    259261     * Uses the Username and Password properties.
    260      * @type boolean
     262     * @var boolean
    261263     * @see PHPMailer::$Username
    262264     * @see PHPMailer::$Password
     
    266268    /**
    267269     * Options array passed to stream_context_create when connecting via SMTP.
    268      * @type array
     270     * @var array
    269271     */
    270272    public $SMTPOptions = array();
     
    272274    /**
    273275     * SMTP username.
    274      * @type string
     276     * @var string
    275277     */
    276278    public $Username = '';
     
    278280    /**
    279281     * SMTP password.
    280      * @type string
     282     * @var string
    281283     */
    282284    public $Password = '';
     
    285287     * SMTP auth type.
    286288     * Options are LOGIN (default), PLAIN, NTLM, CRAM-MD5
    287      * @type string
     289     * @var string
    288290     */
    289291    public $AuthType = '';
     
    292294     * SMTP realm.
    293295     * Used for NTLM auth
    294      * @type string
     296     * @var string
    295297     */
    296298    public $Realm = '';
     
    299301     * SMTP workstation.
    300302     * Used for NTLM auth
    301      * @type string
     303     * @var string
    302304     */
    303305    public $Workstation = '';
     
    306308     * The SMTP server timeout in seconds.
    307309     * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
    308      * @type integer
     310     * @var integer
    309311     */
    310312    public $Timeout = 300;
     
    319321     * * `3` As 2 plus connection status
    320322     * * `4` Low-level data output
    321      * @type integer
     323     * @var integer
    322324     * @see SMTP::$do_debug
    323325     */
     
    335337     * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
    336338     * </code>
    337      * @type string|callable
     339     * @var string|callable
    338340     * @see SMTP::$Debugoutput
    339341     */
     
    344346     * If this is set to true then to close the connection
    345347     * requires an explicit call to smtpClose().
    346      * @type boolean
     348     * @var boolean
    347349     */
    348350    public $SMTPKeepAlive = false;
     
    351353     * Whether to split multiple to addresses into multiple messages
    352354     * or send them all in one message.
    353      * @type boolean
     355     * @var boolean
    354356     */
    355357    public $SingleTo = false;
     
    357359    /**
    358360     * Storage for addresses when SingleTo is enabled.
    359      * @type array
     361     * @var array
    360362     * @TODO This should really not be public
    361363     */
     
    365367     * Whether to generate VERP addresses on send.
    366368     * Only applicable when sending via SMTP.
    367      * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path
     369     * @link https://en.wikipedia.org/wiki/Variable_envelope_return_path
    368370     * @link http://www.postfix.org/VERP_README.html Postfix VERP info
    369      * @type boolean
     371     * @var boolean
    370372     */
    371373    public $do_verp = false;
     
    373375    /**
    374376     * Whether to allow sending messages with an empty body.
    375      * @type boolean
     377     * @var boolean
    376378     */
    377379    public $AllowEmpty = false;
     
    381383     * @note The default remains "\n". We force CRLF where we know
    382384     *        it must be used via self::CRLF.
    383      * @type string
     385     * @var string
    384386     */
    385387    public $LE = "\n";
     
    387389    /**
    388390     * DKIM selector.
    389      * @type string
     391     * @var string
    390392     */
    391393    public $DKIM_selector = '';
     
    394396     * DKIM Identity.
    395397     * Usually the email address used as the source of the email
    396      * @type string
     398     * @var string
    397399     */
    398400    public $DKIM_identity = '';
     
    401403     * DKIM passphrase.
    402404     * Used if your key is encrypted.
    403      * @type string
     405     * @var string
    404406     */
    405407    public $DKIM_passphrase = '';
     
    408410     * DKIM signing domain name.
    409411     * @example 'example.com'
    410      * @type string
     412     * @var string
    411413     */
    412414    public $DKIM_domain = '';
     
    414416    /**
    415417     * DKIM private key file path.
    416      * @type string
     418     * @var string
    417419     */
    418420    public $DKIM_private = '';
     
    434436     *   string  $body          the email body
    435437     *   string  $from          email address of sender
    436      * @type string
     438     * @var string
    437439     */
    438440    public $action_function = '';
     
    441443     * What to put in the X-Mailer header.
    442444     * Options: An empty string for PHPMailer default, whitespace for none, or a string to use
    443      * @type string
     445     * @var string
    444446     */
    445447    public $XMailer = '';
     
    447449    /**
    448450     * An instance of the SMTP sender class.
    449      * @type SMTP
     451     * @var SMTP
    450452     * @access protected
    451453     */
     
    453455
    454456    /**
    455      * The array of 'to' addresses.
    456      * @type array
     457     * The array of 'to' names and addresses.
     458     * @var array
    457459     * @access protected
    458460     */
     
    460462
    461463    /**
    462      * The array of 'cc' addresses.
    463      * @type array
     464     * The array of 'cc' names and addresses.
     465     * @var array
    464466     * @access protected
    465467     */
     
    467469
    468470    /**
    469      * The array of 'bcc' addresses.
    470      * @type array
     471     * The array of 'bcc' names and addresses.
     472     * @var array
    471473     * @access protected
    472474     */
     
    475477    /**
    476478     * The array of reply-to names and addresses.
    477      * @type array
     479     * @var array
    478480     * @access protected
    479481     */
     
    483485     * An array of all kinds of addresses.
    484486     * Includes all of $to, $cc, $bcc
    485      * @type array
     487     * @var array
    486488     * @access protected
     489     * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc
    487490     */
    488491    protected $all_recipients = array();
    489492
    490493    /**
     494     * An array of names and addresses queued for validation.
     495     * In send(), valid and non duplicate entries are moved to $all_recipients
     496     * and one of $to, $cc, or $bcc.
     497     * This array is used only for addresses with IDN.
     498     * @var array
     499     * @access protected
     500     * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc
     501     * @see PHPMailer::$all_recipients
     502     */
     503    protected $RecipientsQueue = array();
     504
     505    /**
     506     * An array of reply-to names and addresses queued for validation.
     507     * In send(), valid and non duplicate entries are moved to $ReplyTo.
     508     * This array is used only for addresses with IDN.
     509     * @var array
     510     * @access protected
     511     * @see PHPMailer::$ReplyTo
     512     */
     513    protected $ReplyToQueue = array();
     514
     515    /**
    491516     * The array of attachments.
    492      * @type array
     517     * @var array
    493518     * @access protected
    494519     */
     
    497522    /**
    498523     * The array of custom headers.
    499      * @type array
     524     * @var array
    500525     * @access protected
    501526     */
     
    504529    /**
    505530     * The most recent Message-ID (including angular brackets).
    506      * @type string
     531     * @var string
    507532     * @access protected
    508533     */
     
    511536    /**
    512537     * The message's MIME type.
    513      * @type string
     538     * @var string
    514539     * @access protected
    515540     */
     
    518543    /**
    519544     * The array of MIME boundary strings.
    520      * @type array
     545     * @var array
    521546     * @access protected
    522547     */
     
    525550    /**
    526551     * The array of available languages.
    527      * @type array
     552     * @var array
    528553     * @access protected
    529554     */
     
    532557    /**
    533558     * The number of errors encountered.
    534      * @type integer
     559     * @var integer
    535560     * @access protected
    536561     */
     
    539564    /**
    540565     * The S/MIME certificate file path.
    541      * @type string
     566     * @var string
    542567     * @access protected
    543568     */
     
    546571    /**
    547572     * The S/MIME key file path.
    548      * @type string
     573     * @var string
    549574     * @access protected
    550575     */
     
    553578    /**
    554579     * The optional S/MIME extra certificates ("CA Chain") file path.
    555      * @type string
     580     * @var string
    556581     * @access protected
    557582     */
     
    561586     * The S/MIME password for the key.
    562587     * Used only if the key is encrypted.
    563      * @type string
     588     * @var string
    564589     * @access protected
    565590     */
     
    568593    /**
    569594     * Whether to throw exceptions for errors.
    570      * @type boolean
     595     * @var boolean
    571596     * @access protected
    572597     */
     
    575600    /**
    576601     * Unique ID used for message ID and boundaries.
    577      * @type string
     602     * @var string
    578603     * @access protected
    579604     */
     
    602627    /**
    603628     * The maximum line length allowed by RFC 2822 section 2.1.1
    604      * @type integer
     629     * @var integer
    605630     */
    606631    const MAX_LINE_LENGTH = 998;
     
    764789    /**
    765790     * Add a "To" address.
    766      * @param string $address
     791     * @param string $address The email address to send to
    767792     * @param string $name
    768      * @return boolean true on success, false if address already used
     793     * @return boolean true on success, false if address already used or invalid in some way
    769794     */
    770795    public function addAddress($address, $name = '')
    771796    {
    772         return $this->addAnAddress('to', $address, $name);
     797        return $this->addOrEnqueueAnAddress('to', $address, $name);
    773798    }
    774799
     
    776801     * Add a "CC" address.
    777802     * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.
    778      * @param string $address
     803     * @param string $address The email address to send to
    779804     * @param string $name
    780      * @return boolean true on success, false if address already used
     805     * @return boolean true on success, false if address already used or invalid in some way
    781806     */
    782807    public function addCC($address, $name = '')
    783808    {
    784         return $this->addAnAddress('cc', $address, $name);
     809        return $this->addOrEnqueueAnAddress('cc', $address, $name);
    785810    }
    786811
     
    788813     * Add a "BCC" address.
    789814     * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.
    790      * @param string $address
     815     * @param string $address The email address to send to
    791816     * @param string $name
    792      * @return boolean true on success, false if address already used
     817     * @return boolean true on success, false if address already used or invalid in some way
    793818     */
    794819    public function addBCC($address, $name = '')
    795820    {
    796         return $this->addAnAddress('bcc', $address, $name);
    797     }
    798 
    799     /**
    800      * Add a "Reply-to" address.
    801      * @param string $address
     821        return $this->addOrEnqueueAnAddress('bcc', $address, $name);
     822    }
     823
     824    /**
     825     * Add a "Reply-To" address.
     826     * @param string $address The email address to reply to
    802827     * @param string $name
    803      * @return boolean
     828     * @return boolean true on success, false if address already used or invalid in some way
    804829     */
    805830    public function addReplyTo($address, $name = '')
    806831    {
    807         return $this->addAnAddress('Reply-To', $address, $name);
    808     }
    809 
    810     /**
    811      * Add an address to one of the recipient arrays.
    812      * Addresses that have been added already return false, but do not throw exceptions
    813      * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo'
    814      * @param string $address The email address to send to
     832        return $this->addOrEnqueueAnAddress('Reply-To', $address, $name);
     833    }
     834
     835    /**
     836     * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer
     837     * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still
     838     * be modified after calling this function), addition of such addresses is delayed until send().
     839     * Addresses that have been added already return false, but do not throw exceptions.
     840     * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'
     841     * @param string $address The email address to send, resp. to reply to
    815842     * @param string $name
    816843     * @throws phpmailerException
     
    818845     * @access protected
    819846     */
    820     protected function addAnAddress($kind, $address, $name = '')
    821     {
    822         if (!preg_match('/^(to|cc|bcc|Reply-To)$/', $kind)) {
    823             $this->setError($this->lang('Invalid recipient array') . ': ' . $kind);
    824             $this->edebug($this->lang('Invalid recipient array') . ': ' . $kind);
    825             if ($this->exceptions) {
    826                 throw new phpmailerException('Invalid recipient array: ' . $kind);
    827             }
    828             return false;
    829         }
     847    protected function addOrEnqueueAnAddress($kind, $address, $name)
     848    {
    830849        $address = trim($address);
    831850        $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
     851        if (($pos = strrpos($address, '@')) === false) {
     852            // At-sign is misssing.
     853            $error_message = $this->lang('invalid_address') . $address;
     854            $this->setError($error_message);
     855            $this->edebug($error_message);
     856            if ($this->exceptions) {
     857                throw new phpmailerException($error_message);
     858            }
     859            return false;
     860        }
     861        $params = array($kind, $address, $name);
     862        // Enqueue addresses with IDN until we know the PHPMailer::$CharSet.
     863        if ($this->has8bitChars(substr($address, ++$pos)) and $this->idnSupported()) {
     864            if ($kind != 'Reply-To') {
     865                if (!array_key_exists($address, $this->RecipientsQueue)) {
     866                    $this->RecipientsQueue[$address] = $params;
     867                    return true;
     868                }
     869            } else {
     870                if (!array_key_exists($address, $this->ReplyToQueue)) {
     871                    $this->ReplyToQueue[$address] = $params;
     872                    return true;
     873                }
     874            }
     875            return false;
     876        }
     877        // Immediately add standard addresses without IDN.
     878        return call_user_func_array(array($this, 'addAnAddress'), $params);
     879    }
     880
     881    /**
     882     * Add an address to one of the recipient arrays or to the ReplyTo array.
     883     * Addresses that have been added already return false, but do not throw exceptions.
     884     * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'
     885     * @param string $address The email address to send, resp. to reply to
     886     * @param string $name
     887     * @throws phpmailerException
     888     * @return boolean true on success, false if address already used or invalid in some way
     889     * @access protected
     890     */
     891    protected function addAnAddress($kind, $address, $name = '')
     892    {
     893        if (!in_array($kind, array('to', 'cc', 'bcc', 'Reply-To'))) {
     894            $error_message = $this->lang('Invalid recipient kind: ') . $kind;
     895            $this->setError($error_message);
     896            $this->edebug($error_message);
     897            if ($this->exceptions) {
     898                throw new phpmailerException($error_message);
     899            }
     900            return false;
     901        }
    832902        if (!$this->validateAddress($address)) {
    833             $this->setError($this->lang('invalid_address') . ': ' . $address);
    834             $this->edebug($this->lang('invalid_address') . ': ' . $address);
     903            $error_message = $this->lang('invalid_address') . $address;
     904            $this->setError($error_message);
     905            $this->edebug($error_message);
    835906            if ($this->exceptions) {
    836                 throw new phpmailerException($this->lang('invalid_address') . ': ' . $address);
     907                throw new phpmailerException($error_message);
    837908            }
    838909            return false;
    839910        }
    840911        if ($kind != 'Reply-To') {
    841             if (!isset($this->all_recipients[strtolower($address)])) {
     912            if (!array_key_exists(strtolower($address), $this->all_recipients)) {
    842913                array_push($this->$kind, array($address, $name));
    843914                $this->all_recipients[strtolower($address)] = true;
     
    851922        }
    852923        return false;
     924    }
     925
     926    /**
     927     * Parse and validate a string containing one or more RFC822-style comma-separated email addresses
     928     * of the form "display name <address>" into an array of name/address pairs.
     929     * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available.
     930     * Note that quotes in the name part are removed.
     931     * @param string $addrstr The address list string
     932     * @param bool $useimap Whether to use the IMAP extension to parse the list
     933     * @return array
     934     * @link http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation
     935     */
     936    public function parseAddresses($addrstr, $useimap = true)
     937    {
     938        $addresses = array();
     939        if ($useimap and function_exists('imap_rfc822_parse_adrlist')) {
     940            //Use this built-in parser if it's available
     941            $list = imap_rfc822_parse_adrlist($addrstr, '');
     942            foreach ($list as $address) {
     943                if ($address->host != '.SYNTAX-ERROR.') {
     944                    if ($this->validateAddress($address->mailbox . '@' . $address->host)) {
     945                        $addresses[] = array(
     946                            'name' => (property_exists($address, 'personal') ? $address->personal : ''),
     947                            'address' => $address->mailbox . '@' . $address->host
     948                        );
     949                    }
     950                }
     951            }
     952        } else {
     953            //Use this simpler parser
     954            $list = explode(',', $addrstr);
     955            foreach ($list as $address) {
     956                $address = trim($address);
     957                //Is there a separate name part?
     958                if (strpos($address, '<') === false) {
     959                    //No separate name, just use the whole thing
     960                    if ($this->validateAddress($address)) {
     961                        $addresses[] = array(
     962                            'name' => '',
     963                            'address' => $address
     964                        );
     965                    }
     966                } else {
     967                    list($name, $email) = explode('<', $address);
     968                    $email = trim(str_replace('>', '', $email));
     969                    if ($this->validateAddress($email)) {
     970                        $addresses[] = array(
     971                            'name' => trim(str_replace(array('"', "'"), '', $name)),
     972                            'address' => $email
     973                        );
     974                    }
     975                }
     976            }
     977        }
     978        return $addresses;
    853979    }
    854980
     
    865991        $address = trim($address);
    866992        $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
    867         if (!$this->validateAddress($address)) {
    868             $this->setError($this->lang('invalid_address') . ': ' . $address);
    869             $this->edebug($this->lang('invalid_address') . ': ' . $address);
     993        // Don't validate now addresses with IDN. Will be done in send().
     994        if (($pos = strrpos($address, '@')) === false or
     995            (!$this->has8bitChars(substr($address, ++$pos)) or !$this->idnSupported()) and
     996            !$this->validateAddress($address)) {
     997            $error_message = $this->lang('invalid_address') . $address;
     998            $this->setError($error_message);
     999            $this->edebug($error_message);
    8701000            if ($this->exceptions) {
    871                 throw new phpmailerException($this->lang('invalid_address') . ': ' . $address);
     1001                throw new phpmailerException($error_message);
    8721002            }
    8731003            return false;
     
    8991029     * @param string $address The email address to check
    9001030     * @param string $patternselect A selector for the validation pattern to use :
    901      * * `auto` Pick strictest one automatically;
     1031     * * `auto` Pick best pattern automatically;
    9021032     * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;
    9031033     * * `pcre` Use old PCRE implementation;
    904      * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; same as pcre8 but does not allow 'dotless' domains;
     1034     * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL;
    9051035     * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements.
    9061036     * * `noregex` Don't use a regex: super fast, really dumb.
     
    9111041    public static function validateAddress($address, $patternselect = 'auto')
    9121042    {
     1043        //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321
     1044        if (strpos($address, "\n") !== false or strpos($address, "\r") !== false) {
     1045            return false;
     1046        }
    9131047        if (!$patternselect or $patternselect == 'auto') {
    9141048            //Check this constant first so it works when extension_loaded() is disabled by safe mode
     
    9911125
    9921126    /**
     1127     * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the
     1128     * "intl" and "mbstring" PHP extensions.
     1129     * @return bool "true" if required functions for IDN support are present
     1130     */
     1131    public function idnSupported()
     1132    {
     1133        // @TODO: Write our own "idn_to_ascii" function for PHP <= 5.2.
     1134        return function_exists('idn_to_ascii') and function_exists('mb_convert_encoding');
     1135    }
     1136
     1137    /**
     1138     * Converts IDN in given email address to its ASCII form, also known as punycode, if possible.
     1139     * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet.
     1140     * This function silently returns unmodified address if:
     1141     * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form)
     1142     * - Conversion to punycode is impossible (e.g. required PHP functions are not available)
     1143     *   or fails for any reason (e.g. domain has characters not allowed in an IDN)
     1144     * @see PHPMailer::$CharSet
     1145     * @param string $address The email address to convert
     1146     * @return string The encoded address in ASCII form
     1147     */
     1148    public function punyencodeAddress($address)
     1149    {
     1150        // Verify we have required functions, CharSet, and at-sign.
     1151        if ($this->idnSupported() and
     1152            !empty($this->CharSet) and
     1153            ($pos = strrpos($address, '@')) !== false) {
     1154            $domain = substr($address, ++$pos);
     1155            // Verify CharSet string is a valid one, and domain properly encoded in this CharSet.
     1156            if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) {
     1157                $domain = mb_convert_encoding($domain, 'UTF-8', $this->CharSet);
     1158                if (($punycode = defined('INTL_IDNA_VARIANT_UTS46') ?
     1159                    idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) :
     1160                    idn_to_ascii($domain)) !== false) {
     1161                    return substr($address, 0, $pos) . $punycode;
     1162                }
     1163            }
     1164        }
     1165        return $address;
     1166    }
     1167
     1168    /**
    9931169     * Create a message and send it.
    9941170     * Uses the sending method specified by $Mailer.
     
    10211197    {
    10221198        try {
     1199            $this->error_count = 0; // Reset errors
    10231200            $this->mailHeader = '';
     1201
     1202            // Dequeue recipient and Reply-To addresses with IDN
     1203            foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) {
     1204                $params[1] = $this->punyencodeAddress($params[1]);
     1205                call_user_func_array(array($this, 'addAnAddress'), $params);
     1206            }
    10241207            if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
    10251208                throw new phpmailerException($this->lang('provide_address'), self::STOP_CRITICAL);
     1209            }
     1210
     1211            // Validate From, Sender, and ConfirmReadingTo addresses
     1212            foreach (array('From', 'Sender', 'ConfirmReadingTo') as $address_kind) {
     1213                $this->$address_kind = trim($this->$address_kind);
     1214                if (empty($this->$address_kind)) {
     1215                    continue;
     1216                }
     1217                $this->$address_kind = $this->punyencodeAddress($this->$address_kind);
     1218                if (!$this->validateAddress($this->$address_kind)) {
     1219                    $error_message = $this->lang('invalid_address') . $this->$address_kind;
     1220                    $this->setError($error_message);
     1221                    $this->edebug($error_message);
     1222                    if ($this->exceptions) {
     1223                        throw new phpmailerException($error_message);
     1224                    }
     1225                    return false;
     1226                }
    10261227            }
    10271228
     
    10311232            }
    10321233
    1033             $this->error_count = 0; // Reset errors
    10341234            $this->setMessageType();
    10351235            // Refuse to send an empty message unless we are specifically allowing it
     
    11721372            fputs($mail, $body);
    11731373            $result = pclose($mail);
    1174             $this->doCallback(($result == 0), $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From);
     1374            $this->doCallback(
     1375                ($result == 0),
     1376                $this->to,
     1377                $this->cc,
     1378                $this->bcc,
     1379                $this->Subject,
     1380                $body,
     1381                $this->From
     1382            );
    11751383            if ($result != 0) {
    11761384                throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
     
    14581666            'from_failed' => 'The following From address failed: ',
    14591667            'instantiate' => 'Could not instantiate mail function.',
    1460             'invalid_address' => 'Invalid address',
     1668            'invalid_address' => 'Invalid address: ',
    14611669            'mailer_not_supported' => ' mailer is not supported.',
    14621670            'provide_address' => 'You must provide at least one recipient email address.',
     
    17231931        $result .= $this->headerLine('Date', $this->MessageDate);
    17241932
    1725 
    17261933        // To be created automatically by mail()
    17271934        if ($this->SingleTo) {
     
    17691976            $this->lastMessageID = $this->MessageID;
    17701977        } else {
    1771             $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->ServerHostname());
     1978            $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->serverHostname());
    17721979        }
    17731980        $result .= $this->headerLine('Message-ID', $this->lastMessageID);
    1774         $result .= $this->headerLine('X-Priority', $this->Priority);
     1981        if (!is_null($this->Priority)) {
     1982            $result .= $this->headerLine('X-Priority', $this->Priority);
     1983        }
    17751984        if ($this->XMailer == '') {
    17761985            $result .= $this->headerLine(
    17771986                'X-Mailer',
    1778                 'PHPMailer ' . $this->Version . ' (https://github.com/PHPMailer/PHPMailer/)'
     1987                'PHPMailer ' . $this->Version . ' (https://github.com/PHPMailer/PHPMailer)'
    17791988            );
    17801989        } else {
     
    17861995
    17871996        if ($this->ConfirmReadingTo != '') {
    1788             $result .= $this->headerLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>');
     1997            $result .= $this->headerLine('Disposition-Notification-To', '<' . $this->ConfirmReadingTo . '>');
    17891998        }
    17901999
     
    18982107            $bodyCharSet = 'us-ascii';
    18992108        }
    1900         //If lines are too long, change to quoted-printable transfer encoding
    1901         if (self::hasLineLongerThanMax($this->Body)) {
     2109        //If lines are too long, and we're not already using an encoding that will shorten them,
     2110        //change to quoted-printable transfer encoding
     2111        if ('base64' != $this->Encoding and self::hasLineLongerThanMax($this->Body)) {
    19022112            $this->Encoding = 'quoted-printable';
    19032113            $bodyEncoding = 'quoted-printable';
     
    22662476                $disposition = $attachment[6];
    22672477                $cid = $attachment[7];
    2268                 if ($disposition == 'inline' && isset($cidUniq[$cid])) {
     2478                if ($disposition == 'inline' && array_key_exists($cid, $cidUniq)) {
    22692479                    continue;
    22702480                }
     
    22722482
    22732483                $mime[] = sprintf('--%s%s', $boundary, $this->LE);
    2274                 $mime[] = sprintf(
    2275                     'Content-Type: %s; name="%s"%s',
    2276                     $type,
    2277                     $this->encodeHeader($this->secureHeader($name)),
    2278                     $this->LE
    2279                 );
     2484                //Only include a filename property if we have one
     2485                if (!empty($name)) {
     2486                    $mime[] = sprintf(
     2487                        'Content-Type: %s; name="%s"%s',
     2488                        $type,
     2489                        $this->encodeHeader($this->secureHeader($name)),
     2490                        $this->LE
     2491                    );
     2492                } else {
     2493                    $mime[] = sprintf(
     2494                        'Content-Type: %s%s',
     2495                        $type,
     2496                        $this->LE
     2497                    );
     2498                }
    22802499                // RFC1341 part 5 says 7bit is assumed if not specified
    22812500                if ($encoding != '7bit') {
     
    23012520                        );
    23022521                    } else {
    2303                         $mime[] = sprintf(
    2304                             'Content-Disposition: %s; filename=%s%s',
    2305                             $disposition,
    2306                             $encoded_name,
    2307                             $this->LE . $this->LE
    2308                         );
     2522                        if (!empty($encoded_name)) {
     2523                            $mime[] = sprintf(
     2524                                'Content-Disposition: %s; filename=%s%s',
     2525                                $disposition,
     2526                                $encoded_name,
     2527                                $this->LE . $this->LE
     2528                            );
     2529                        } else {
     2530                            $mime[] = sprintf(
     2531                                'Content-Disposition: %s%s',
     2532                                $disposition,
     2533                                $this->LE . $this->LE
     2534                            );
     2535                        }
    23092536                    }
    23102537                } else {
     
    23402567     * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'
    23412568     * @throws phpmailerException
    2342      * @see EncodeFile(encodeFile
    23432569     * @access protected
    23442570     * @return string
     
    25602786        // Use native function if it's available (>= PHP5.3)
    25612787        if (function_exists('quoted_printable_encode')) {
    2562             return $this->fixEOL(quoted_printable_encode($string));
     2788            return quoted_printable_encode($string);
    25632789        }
    25642790        // Fall back to a pure PHP implementation
     
    25682794            rawurlencode($string)
    25692795        );
    2570         $string = preg_replace('/[^\r\n]{' . ($line_max - 3) . '}[^=\r\n]{2}/', "$0=\r\n", $string);
    2571         return $this->fixEOL($string);
     2796        return preg_replace('/[^\r\n]{' . ($line_max - 3) . '}[^=\r\n]{2}/', "$0=\r\n", $string);
    25722797    }
    25732798
     
    26382863    }
    26392864
    2640 
    26412865    /**
    26422866     * Add a string or binary attachment (non-filesystem).
     
    27442968    ) {
    27452969        // If a MIME type is not specified, try to work it out from the name
    2746         if ($type == '') {
     2970        if ($type == '' and !empty($name)) {
    27472971            $type = self::filenameToType($name);
    27482972        }
     
    28013025
    28023026    /**
     3027     * Clear queued addresses of given kind.
     3028     * @access protected
     3029     * @param string $kind 'to', 'cc', or 'bcc'
     3030     * @return void
     3031     */
     3032    public function clearQueuedAddresses($kind)
     3033    {
     3034        $RecipientsQueue = $this->RecipientsQueue;
     3035        foreach ($RecipientsQueue as $address => $params) {
     3036            if ($params[0] == $kind) {
     3037                unset($this->RecipientsQueue[$address]);
     3038            }
     3039        }
     3040    }
     3041
     3042    /**
    28033043     * Clear all To recipients.
    28043044     * @return void
     
    28103050        }
    28113051        $this->to = array();
     3052        $this->clearQueuedAddresses('to');
    28123053    }
    28133054
     
    28223063        }
    28233064        $this->cc = array();
     3065        $this->clearQueuedAddresses('cc');
    28243066    }
    28253067
     
    28343076        }
    28353077        $this->bcc = array();
     3078        $this->clearQueuedAddresses('bcc');
    28363079    }
    28373080
     
    28433086    {
    28443087        $this->ReplyTo = array();
     3088        $this->ReplyToQueue = array();
    28453089    }
    28463090
     
    28553099        $this->bcc = array();
    28563100        $this->all_recipients = array();
     3101        $this->RecipientsQueue = array();
    28573102    }
    28583103
     
    30113256
    30123257    /**
    3013      * Returns all custom headers
    3014      *
     3258     * Returns all custom headers.
    30153259     * @return array
    30163260     */
     
    30293273     * @param string $basedir baseline directory for path
    30303274     * @param boolean|callable $advanced Whether to use the internal HTML to text converter
    3031      *    or your own custom converter @see html2text()
     3275     *    or your own custom converter @see PHPMailer::html2text()
    30323276     * @return string $message
    30333277     */
     
    30353279    {
    30363280        preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
    3037         if (isset($images[2])) {
     3281        if (array_key_exists(2, $images)) {
    30383282            foreach ($images[2] as $imgindex => $url) {
    30393283                // Convert data URIs into embedded images
     
    30463290                    }
    30473291                    $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
    3048                     if ($this->addStringEmbeddedImage($data, $cid, '', 'base64', $match[1])) {
     3292                    if ($this->addStringEmbeddedImage($data, $cid, 'embed' . $imgindex, 'base64', $match[1])) {
    30493293                        $message = str_replace(
    30503294                            $images[0][$imgindex],
     
    30533297                        );
    30543298                    }
    3055                 } elseif (!preg_match('#^[A-z]+://#', $url)) {
     3299                } elseif (substr($url, 0, 4) !== 'cid:' && !preg_match('#^[A-z]+://#', $url)) {
    30563300                    // Do not change urls for absolute images (thanks to corvuscorax)
     3301                    // Do not change urls that are already inline images
    30573302                    $filename = basename($url);
    30583303                    $directory = dirname($url);
     
    31443389            'doc'   => 'application/msword',
    31453390            'word'  => 'application/msword',
     3391            'xlsx'  => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
     3392            'xltx'  => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
     3393            'potx'  => 'application/vnd.openxmlformats-officedocument.presentationml.template',
     3394            'ppsx'  => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
     3395            'pptx'  => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
     3396            'sldx'  => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
     3397            'docx'  => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
     3398            'dotx'  => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
     3399            'xlam'  => 'application/vnd.ms-excel.addin.macroEnabled.12',
     3400            'xlsb'  => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
    31463401            'class' => 'application/octet-stream',
    31473402            'dll'   => 'application/octet-stream',
     
    33483603    }
    33493604
    3350 
    33513605    /**
    33523606     * Set the public and private key files and password for S/MIME signing.
     
    35173771            "\tb=";
    35183772        $toSign = $this->DKIM_HeaderC(
    3519             $from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs
     3773            $from_header . "\r\n" .
     3774            $to_header . "\r\n" .
     3775            $subject_header . "\r\n" .
     3776            $dkimhdrs
    35203777        );
    35213778        $signed = $this->DKIM_Sign($toSign);
     
    35373794    /**
    35383795     * Allows for public read access to 'to' property.
     3796     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
    35393797     * @access public
    35403798     * @return array
     
    35473805    /**
    35483806     * Allows for public read access to 'cc' property.
     3807     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
    35493808     * @access public
    35503809     * @return array
     
    35573816    /**
    35583817     * Allows for public read access to 'bcc' property.
     3818     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
    35593819     * @access public
    35603820     * @return array
     
    35673827    /**
    35683828     * Allows for public read access to 'ReplyTo' property.
     3829     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
    35693830     * @access public
    35703831     * @return array
     
    35773838    /**
    35783839     * Allows for public read access to 'all_recipients' property.
     3840     * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
    35793841     * @access public
    35803842     * @return array
  • _plugins_/facteur/trunk/phpmailer-php5/class.pop3.php

    r89555 r92830  
    3232    /**
    3333     * The POP3 PHPMailer Version number.
    34      * @type string
    35      * @access public
    36      */
    37     public $Version = '5.2.10';
     34     * @var string
     35     * @access public
     36     */
     37    public $Version = '5.2.14';
    3838
    3939    /**
    4040     * Default POP3 port number.
    41      * @type integer
     41     * @var integer
    4242     * @access public
    4343     */
     
    4646    /**
    4747     * Default timeout in seconds.
    48      * @type integer
     48     * @var integer
    4949     * @access public
    5050     */
     
    5353    /**
    5454     * POP3 Carriage Return + Line Feed.
    55      * @type string
     55     * @var string
    5656     * @access public
    5757     * @deprecated Use the constant instead
     
    6262     * Debug display level.
    6363     * Options: 0 = no, 1+ = yes
    64      * @type integer
     64     * @var integer
    6565     * @access public
    6666     */
     
    6969    /**
    7070     * POP3 mail server hostname.
    71      * @type string
     71     * @var string
    7272     * @access public
    7373     */
     
    7676    /**
    7777     * POP3 port number.
    78      * @type integer
     78     * @var integer
    7979     * @access public
    8080     */
     
    8383    /**
    8484     * POP3 Timeout Value in seconds.
    85      * @type integer
     85     * @var integer
    8686     * @access public
    8787     */
     
    9090    /**
    9191     * POP3 username
    92      * @type string
     92     * @var string
    9393     * @access public
    9494     */
     
    9797    /**
    9898     * POP3 password.
    99      * @type string
     99     * @var string
    100100     * @access public
    101101     */
     
    104104    /**
    105105     * Resource handle for the POP3 connection socket.
    106      * @type resource
    107      * @access private
    108      */
    109     private $pop_conn;
     106     * @var resource
     107     * @access protected
     108     */
     109    protected $pop_conn;
    110110
    111111    /**
    112112     * Are we connected?
    113      * @type boolean
    114      * @access private
    115      */
    116     private $connected = false;
     113     * @var boolean
     114     * @access protected
     115     */
     116    protected $connected = false;
    117117
    118118    /**
    119119     * Error container.
    120      * @type array
    121      * @access private
    122      */
    123     private $errors = array();
     120     * @var array
     121     * @access protected
     122     */
     123    protected $errors = array();
    124124
    125125    /**
     
    311311     * @param integer $size
    312312     * @return string
    313      * @access private
    314      */
    315     private function getResponse($size = 128)
     313     * @access protected
     314     */
     315    protected function getResponse($size = 128)
    316316    {
    317317        $response = fgets($this->pop_conn, $size);
     
    326326     * @param string $string
    327327     * @return integer
    328      * @access private
    329      */
    330     private function sendString($string)
     328     * @access protected
     329     */
     330    protected function sendString($string)
    331331    {
    332332        if ($this->pop_conn) {
     
    344344     * @param string $string
    345345     * @return boolean
    346      * @access private
    347      */
    348     private function checkResponse($string)
     346     * @access protected
     347     */
     348    protected function checkResponse($string)
    349349    {
    350350        if (substr($string, 0, 3) !== '+OK') {
     
    364364     * Also display debug output if it's enabled.
    365365     * @param $error
    366      */
    367     private function setError($error)
     366     * @access protected
     367     */
     368    protected function setError($error)
    368369    {
    369370        $this->errors[] = $error;
     
    378379
    379380    /**
     381     * Get an array of error messages, if any.
     382     * @return array
     383     */
     384    public function getErrors()
     385    {
     386        return $this->errors;
     387    }
     388
     389    /**
    380390     * POP3 connection error handler.
    381391     * @param integer $errno
     
    383393     * @param string $errfile
    384394     * @param integer $errline
    385      * @access private
    386      */
    387     private function catchWarning($errno, $errstr, $errfile, $errline)
     395     * @access protected
     396     */
     397    protected function catchWarning($errno, $errstr, $errfile, $errline)
    388398    {
    389399        $this->setError(array(
  • _plugins_/facteur/trunk/phpmailer-php5/class.smtp.php

    r89555 r92830  
    2929    /**
    3030     * The PHPMailer SMTP version number.
    31      * @type string
    32      */
    33     const VERSION = '5.2.10';
     31     * @var string
     32     */
     33    const VERSION = '5.2.14';
    3434
    3535    /**
    3636     * SMTP line break constant.
    37      * @type string
     37     * @var string
    3838     */
    3939    const CRLF = "\r\n";
     
    4141    /**
    4242     * The SMTP port to use if one is not specified.
    43      * @type integer
     43     * @var integer
    4444     */
    4545    const DEFAULT_SMTP_PORT = 25;
     
    4747    /**
    4848     * The maximum line length allowed by RFC 2822 section 2.1.1
    49      * @type integer
     49     * @var integer
    5050     */
    5151    const MAX_LINE_LENGTH = 998;
     
    7878    /**
    7979     * The PHPMailer SMTP Version number.
    80      * @type string
     80     * @var string
    8181     * @deprecated Use the `VERSION` constant instead
    8282     * @see SMTP::VERSION
    8383     */
    84     public $Version = '5.2.10';
     84    public $Version = '5.2.14';
    8585
    8686    /**
    8787     * SMTP server port number.
    88      * @type integer
     88     * @var integer
    8989     * @deprecated This is only ever used as a default value, so use the `DEFAULT_SMTP_PORT` constant instead
    9090     * @see SMTP::DEFAULT_SMTP_PORT
     
    9494    /**
    9595     * SMTP reply line ending.
    96      * @type string
     96     * @var string
    9797     * @deprecated Use the `CRLF` constant instead
    9898     * @see SMTP::CRLF
     
    108108     * * self::DEBUG_CONNECTION (`3`) As DEBUG_SERVER plus connection status
    109109     * * self::DEBUG_LOWLEVEL (`4`) Low-level data output, all messages
    110      * @type integer
     110     * @var integer
    111111     */
    112112    public $do_debug = self::DEBUG_OFF;
     
    123123     * $smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
    124124     * </code>
    125      * @type string|callable
     125     * @var string|callable
    126126     */
    127127    public $Debugoutput = 'echo';
     
    131131     * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path
    132132     * @link http://www.postfix.org/VERP_README.html Info on VERP
    133      * @type boolean
     133     * @var boolean
    134134     */
    135135    public $do_verp = false;
     
    140140     * This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure.
    141141     * @link http://tools.ietf.org/html/rfc2821#section-4.5.3.2
    142      * @type integer
     142     * @var integer
    143143     */
    144144    public $Timeout = 300;
     
    147147     * How long to wait for commands to complete, in seconds.
    148148     * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
    149      * @type integer
     149     * @var integer
    150150     */
    151151    public $Timelimit = 300;
     
    153153    /**
    154154     * The socket for the server connection.
    155      * @type resource
     155     * @var resource
    156156     */
    157157    protected $smtp_conn;
     
    159159    /**
    160160     * Error information, if any, for the last SMTP command.
    161      * @type array
     161     * @var array
    162162     */
    163163    protected $error = array(
     
    171171     * The reply the server sent to us for HELO.
    172172     * If null, no HELO string has yet been received.
    173      * @type string|null
     173     * @var string|null
    174174     */
    175175    protected $helo_rply = null;
     
    182182     * Other values can be boolean TRUE or an array containing extension options.
    183183     * If null, no HELO/EHLO string has yet been received.
    184      * @type array|null
     184     * @var array|null
    185185     */
    186186    protected $server_caps = null;
     
    188188    /**
    189189     * The most recent reply received from the server.
    190      * @type string
     190     * @var string
    191191     */
    192192    protected $last_reply = '';
     
    352352     * Must be run after hello().
    353353     * @see hello()
    354      * @param string $username    The user name
    355      * @param string $password    The password
    356      * @param string $authtype    The auth type (PLAIN, LOGIN, NTLM, CRAM-MD5)
    357      * @param string $realm       The auth realm for NTLM
     354     * @param string $username The user name
     355     * @param string $password The password
     356     * @param string $authtype The auth type (PLAIN, LOGIN, NTLM, CRAM-MD5, XOAUTH2)
     357     * @param string $realm The auth realm for NTLM
    358358     * @param string $workstation The auth workstation for NTLM
    359      * @access public
    360      * @return boolean True if successfully authenticated.
     359     * @param null|OAuth $OAuth An optional OAuth instance (@see PHPMailerOAuth)
     360     * @return bool True if successfully authenticated.* @access public
    361361     */
    362362    public function authenticate(
     
    365365        $authtype = null,
    366366        $realm = '',
    367         $workstation = ''
     367        $workstation = '',
     368        $OAuth = null
    368369    ) {
    369370        if (!$this->server_caps) {
     
    389390
    390391            if (empty($authtype)) {
    391                 foreach (array('LOGIN', 'CRAM-MD5', 'NTLM', 'PLAIN') as $method) {
     392                foreach (array('LOGIN', 'CRAM-MD5', 'NTLM', 'PLAIN', 'XOAUTH2') as $method) {
    392393                    if (in_array($method, $this->server_caps['AUTH'])) {
    393394                        $authtype = $method;
     
    434435                }
    435436                if (!$this->sendCommand("Password", base64_encode($password), 235)) {
     437                    return false;
     438                }
     439                break;
     440            case 'XOAUTH2':
     441                //If the OAuth Instance is not set. Can be a case when PHPMailer is used
     442                //instead of PHPMailerOAuth
     443                if (is_null($OAuth)) {
     444                    return false;
     445                }
     446                $oauth = $OAuth->getOauth64();
     447
     448                // Start authentication
     449                if (!$this->sendCommand('AUTH', 'AUTH XOAUTH2 ' . $oauth, 235)) {
    436450                    return false;
    437451                }
     
    724738        $this->server_caps = array();
    725739        $lines = explode("\n", $this->last_reply);
     740
    726741        foreach ($lines as $n => $s) {
     742            //First 4 chars contain response code followed by - or space
    727743            $s = trim(substr($s, 4));
    728             if (!$s) {
     744            if (empty($s)) {
    729745                continue;
    730746            }
     
    736752                } else {
    737753                    $name = array_shift($fields);
    738                     if ($name == 'SIZE') {
    739                         $fields = ($fields) ? $fields[0] : 0;
     754                    switch ($name) {
     755                        case 'SIZE':
     756                            $fields = ($fields ? $fields[0] : 0);
     757                            break;
     758                        case 'AUTH':
     759                            if (!is_array($fields)) {
     760                                $fields = array();
     761                            }
     762                            break;
     763                        default:
     764                            $fields = true;
    740765                    }
    741766                }
    742                 $this->server_caps[$name] = ($fields ? $fields : true);
     767                $this->server_caps[$name] = $fields;
    743768            }
    744769        }
     
    790815     * Returns true if the recipient was accepted false if it was rejected.
    791816     * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
    792      * @param string $toaddr The address the message is being sent to
    793      * @access public
    794      * @return boolean
    795      */
    796     public function recipient($toaddr)
     817     * @param string $address The address the message is being sent to
     818     * @access public
     819     * @return boolean
     820     */
     821    public function recipient($address)
    797822    {
    798823        return $this->sendCommand(
    799824            'RCPT TO',
    800             'RCPT TO:<' . $toaddr . '>',
     825            'RCPT TO:<' . $address . '>',
    801826            array(250, 251)
    802827        );
     
    817842    /**
    818843     * Send a command to an SMTP server and check its return code.
    819      * @param string $command       The command name - not sent to the server
     844     * @param string $command The command name - not sent to the server
    820845     * @param string $commandstring The actual command to send
    821      * @param integer|array $expect     One or more expected integer success codes
     846     * @param integer|array $expect One or more expected integer success codes
    822847     * @access protected
    823848     * @return boolean True on success.
     
    827852        if (!$this->connected()) {
    828853            $this->setError("Called $command without being connected");
     854            return false;
     855        }
     856        //Reject line breaks in all commands
     857        if (strpos($commandstring, "\n") !== false or strpos($commandstring, "\r") !== false) {
     858            $this->setError("Command '$command' contained line breaks");
    829859            return false;
    830860        }
     
    10321062        while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) {
    10331063            $str = @fgets($this->smtp_conn, 515);
    1034             $this->edebug("SMTP -> get_lines(): \$data was \"$data\"", self::DEBUG_LOWLEVEL);
    1035             $this->edebug("SMTP -> get_lines(): \$str is \"$str\"", self::DEBUG_LOWLEVEL);
     1064            $this->edebug("SMTP -> get_lines(): \$data is \"$data\"", self::DEBUG_LOWLEVEL);
     1065            $this->edebug("SMTP -> get_lines(): \$str is  \"$str\"", self::DEBUG_LOWLEVEL);
    10361066            $data .= $str;
    1037             $this->edebug("SMTP -> get_lines(): \$data is \"$data\"", self::DEBUG_LOWLEVEL);
    10381067            // If 4th character is a space, we are done reading, break the loop, micro-optimisation over strlen
    10391068            if ((isset($str[3]) and $str[3] == ' ')) {
  • _plugins_/facteur/trunk/phpmailer-php5/composer.json

    r89555 r92830  
    2525    "require-dev": {
    2626        "phpdocumentor/phpdocumentor": "*",
    27         "phpunit/phpunit": "4.3.*"
     27        "phpunit/phpunit": "4.7.*"
     28    },
     29    "suggest": {
     30        "league/oauth2-client": "Needed for XOAUTH2 authentication",
     31        "league/oauth2-google": "Needed for Gmail XOAUTH2"
    2832    },
    2933    "autoload": {
    3034        "classmap": [
    3135            "class.phpmailer.php",
     36            "class.phpmaileroauth.php",
     37            "class.phpmaileroauthgoogle.php",
    3238            "class.smtp.php",
    3339            "class.pop3.php",
  • _plugins_/facteur/trunk/phpmailer-php5/extras/EasyPeasyICS.php

    r89555 r92830  
    2222    /**
    2323     * The name of the calendar
    24      * @type string
     24     * @var string
    2525     */
    2626    protected $calendarName;
    2727    /**
    2828     * The array of events to add to this calendar
    29      * @type array
     29     * @var array
    3030     */
    3131    protected $events = array();
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ar.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'خطأ على مستوى عنوان المرسل : ';
    1717$PHPMAILER_LANG['instantiate']          = 'لا يمكن توفير خدمة البريد.';
    18 $PHPMAILER_LANG['invalid_address']      = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح.';
     18$PHPMAILER_LANG['invalid_address']      = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.';
    2020$PHPMAILER_LANG['provide_address']      = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-bg.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Следните адреси за подател са невалидни: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Не може да се инстанцира функцията mail.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Невалиден адрес';
     18$PHPMAILER_LANG['invalid_address']      = 'Невалиден адрес: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.';
    2020$PHPMAILER_LANG['provide_address']      = 'Трябва да предоставите поне един email адрес за получател.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-br.php

    r89555 r92830  
    55 * @author Paulo Henrique Garcia <paulo@controllerweb.com.br>
    66 * @author Lucas Guimarães <lucas@lucasguimaraes.com>
     7 * @author Phelipe Alves <phelipealvesdesouza@gmail.com>
    78 */
    89
     
    2526$PHPMAILER_LANG['smtp_error']           = 'Erro de servidor SMTP: ';
    2627$PHPMAILER_LANG['variable_set']         = 'Não foi possível definir ou resetar a variável: ';
    27 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
     28$PHPMAILER_LANG['extension_missing']    = 'Extensão ausente: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ca.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'La(s) següent(s) adreces de remitent han fallat: ';
    1717$PHPMAILER_LANG['instantiate']          = 'No s’ha pogut crear una instància de la funció Mail.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Adreça d’email invalida';
     18$PHPMAILER_LANG['invalid_address']      = 'Adreça d’email invalida: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat';
    2020$PHPMAILER_LANG['provide_address']      = 'S’ha de proveir almenys una adreça d’email com a destinatari.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ch.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = '下面的发送地址邮件发送失败了: ';
    1717$PHPMAILER_LANG['instantiate']          = '不能实现mail方法。';
    18 //$PHPMAILER_LANG['invalid_address']      = 'Not sending, email address is invalid: ';
     18//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。';
    2020$PHPMAILER_LANG['provide_address']      = '您必须提供至少一个 收信人的email地址。';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-de.php

    r89555 r92830  
    1515$PHPMAILER_LANG['from_failed']          = 'Die folgende Absenderadresse ist nicht korrekt: ';
    1616$PHPMAILER_LANG['instantiate']          = 'Mail Funktion konnte nicht initialisiert werden.';
    17 $PHPMAILER_LANG['invalid_address']      = 'E-Mail wird nicht gesendet, die Adresse ist ungültig.';
     17$PHPMAILER_LANG['invalid_address']      = 'E-Mail wird nicht gesendet, die Adresse ist ungültig: ';
    1818$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
    1919$PHPMAILER_LANG['provide_address']      = 'Bitte geben Sie mindestens eine Empfänger E-Mailadresse an.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-dk.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Følgende afsenderadresse er forkert: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Kunne ikke initialisere email funktionen.';
    18 //$PHPMAILER_LANG['invalid_address']        = 'Not sending, email address is invalid: ';
     18//$PHPMAILER_LANG['invalid_address']        = 'Invalid address: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.';
    2020$PHPMAILER_LANG['provide_address']      = 'Du skal indtaste mindst en modtagers emailadresse.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-el.php

    r89555 r92830  
    1515$PHPMAILER_LANG['from_failed']          = 'Η παρακάτω διεύθυνση αποστολέα δεν είναι σωστή: ';
    1616$PHPMAILER_LANG['instantiate']          = 'Αδυναμία εκκίνησης Mail function.';
    17 $PHPMAILER_LANG['invalid_address']      = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη.';
     17$PHPMAILER_LANG['invalid_address']      = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη: ';
    1818$PHPMAILER_LANG['mailer_not_supported'] = ' mailer δεν υποστηρίζεται.';
    1919$PHPMAILER_LANG['provide_address']      = 'Παρακαλούμε δώστε τουλάχιστον μια e-mail διεύθυνση παραλήπτη.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-et.php

    r89555 r92830  
    2525$PHPMAILER_LANG['smtp_error']           = 'SMTP serveri viga: ';
    2626$PHPMAILER_LANG['variable_set']         = 'Ei õnnestunud määrata või lähtestada muutujat: ';
    27 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
     27$PHPMAILER_LANG['extension_missing']    = 'Nõutud laiendus on puudu: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-fi.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Seuraava lähettäjän osoite on virheellinen: ';
    1717$PHPMAILER_LANG['instantiate']          = 'mail-funktion luonti epäonnistui.';
    18 //$PHPMAILER_LANG['invalid_address']      = 'Not sending, email address is invalid: ';
     18//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.';
    2020$PHPMAILER_LANG['provide_address']      = 'Aseta vähintään yksi vastaanottajan sähk&ouml;postiosoite.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-fo.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'fylgjandi Frá/From adressa miseydnaðist: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Kuni ikki instantiera mail funktión.';
    18 //$PHPMAILER_LANG['invalid_address']      = 'Not sending, email address is invalid: ';
     18//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.';
    2020$PHPMAILER_LANG['provide_address']      = 'Tú skal uppgeva minst móttakara-emailadressu(r).';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-fr.php

    r89555 r92830  
    2727$PHPMAILER_LANG['smtp_error']           = 'Erreur du serveur SMTP : ';
    2828$PHPMAILER_LANG['variable_set']         = 'Impossible d\'initialiser ou de réinitialiser une variable : ';
    29 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
     29$PHPMAILER_LANG['extension_missing']    = 'Extension manquante : ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-gl.php

    r89555 r92830  
    2525$PHPMAILER_LANG['variable_set']         = 'Non puidemos axustar ou reaxustar a variábel: ';
    2626//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
    27 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-he.php

    r89555 r92830  
    1010$PHPMAILER_LANG['data_not_accepted']    = 'שגיאת SMTP: מידע לא התקבל.';
    1111$PHPMAILER_LANG['empty_message']        = 'גוף ההודעה ריק';
    12 $PHPMAILER_LANG['invalid_address']      = 'כתובת שגויה';
     12$PHPMAILER_LANG['invalid_address']      = 'כתובת שגויה: ';
    1313$PHPMAILER_LANG['encoding']             = 'קידוד לא מוכר: ';
    1414$PHPMAILER_LANG['execute']              = 'לא הצלחתי להפעיל את: ';
     
    2424$PHPMAILER_LANG['smtp_error']           = 'שגיאת שרת SMTP: ';
    2525$PHPMAILER_LANG['variable_set']         = 'לא ניתן לקבוע או לשנות את המשתנה: ';
     26//$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-hr.php

    r89555 r92830  
    1717$PHPMAILER_LANG['recipients_failed']    = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: ';
    1818$PHPMAILER_LANG['instantiate']          = 'Ne mogu pokrenuti mail funkcionalnost.';
    19 $PHPMAILER_LANG['invalid_address']      = 'E-mail nije poslan. Neispravna e-mail adresa.';
     19$PHPMAILER_LANG['invalid_address']      = 'E-mail nije poslan. Neispravna e-mail adresa: ';
    2020$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.';
    2121$PHPMAILER_LANG['provide_address']      = 'Definirajte barem jednu adresu primatelja.';
     
    2424$PHPMAILER_LANG['smtp_error']           = 'Greška SMTP poslužitelja: ';
    2525$PHPMAILER_LANG['variable_set']         = 'Ne mogu postaviti varijablu niti ju vratiti nazad: ';
    26 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
     26$PHPMAILER_LANG['extension_missing']    = 'Nedostaje proširenje: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ko.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = '다음 From 주소에서 오류가 발생했습니다: ';
    1717$PHPMAILER_LANG['instantiate']          = 'mail 함수를 인스턴스화할 수 없습니다';
    18 $PHPMAILER_LANG['invalid_address']      = '잘못된 주소';
     18$PHPMAILER_LANG['invalid_address']      = '잘못된 주소: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.';
    2020$PHPMAILER_LANG['provide_address']      = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-lt.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Neteisingas siuntėjo adresas: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Nepavyko paleisti mail funkcijos.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Neteisingas adresas';
     18$PHPMAILER_LANG['invalid_address']      = 'Neteisingas adresas: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.';
    2020$PHPMAILER_LANG['provide_address']      = 'Nurodykite bent vieną gavėjo adresą.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-lv.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Nepareiza sūtītāja adrese: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Nevar palaist sūtīšanas funkciju.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Nepareiza adrese';
     18$PHPMAILER_LANG['invalid_address']      = 'Nepareiza adrese: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.';
    2020$PHPMAILER_LANG['provide_address']      = 'Lūdzu, norādiet vismaz vienu adresātu.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ms.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Berikut merupakan ralat dari alamat e-mel: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Tidak dapat memberi contoh fungsi e-mel.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Alamat emel tidak sah';
     18$PHPMAILER_LANG['invalid_address']      = 'Alamat emel tidak sah: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.';
    2020$PHPMAILER_LANG['provide_address']      = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-nl.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Het volgende afzendersadres is mislukt: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Kon mailfunctie niet initialiseren.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Ongeldig adres';
     18$PHPMAILER_LANG['invalid_address']      = 'Ongeldig adres: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.';
    2020$PHPMAILER_LANG['provide_address']      = 'Er moet minstens één ontvanger worden opgegeven.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-pt.php

    r89555 r92830  
    2424$PHPMAILER_LANG['smtp_error']           = 'Erro de servidor SMTP: ';
    2525$PHPMAILER_LANG['variable_set']         = 'Não foi possível definir ou redefinir a variável: ';
    26 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
     26$PHPMAILER_LANG['extension_missing']    = 'Extensão em falta: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ro.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Urmatoarele adrese From au dat eroare: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Nu am putut instantia functia mail.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Adresa de email nu este valida. ';
     18$PHPMAILER_LANG['invalid_address']      = 'Adresa de email nu este valida: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.';
    2020$PHPMAILER_LANG['provide_address']      = 'Trebuie sa adaugati cel putin un recipient (adresa de mail).';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-ru.php

    r89555 r92830  
    44 * @package PHPMailer
    55 * @author Alexey Chumakov <alex@chumakov.ru>
     6 * @author Foster Snowhill <i18n@forstwoof.ru>
    67 */
    78
     
    1617$PHPMAILER_LANG['instantiate']          = 'Невозможно запустить функцию mail.';
    1718$PHPMAILER_LANG['provide_address']      = 'Пожалуйста, введите хотя бы один адрес e-mail получателя.';
    18 $PHPMAILER_LANG['mailer_not_supported'] = ' - почтовый сервер не поддерживается.';
     19$PHPMAILER_LANG['mailer_not_supported'] = ' почтовый сервер не поддерживается.';
    1920$PHPMAILER_LANG['recipients_failed']    = 'Ошибка SMTP: отправка по следующим адресам получателей не удалась: ';
    2021$PHPMAILER_LANG['empty_message']        = 'Пустое тело сообщения';
     
    2425$PHPMAILER_LANG['smtp_error']           = 'Ошибка SMTP-сервера: ';
    2526$PHPMAILER_LANG['variable_set']         = 'Невозможно установить или переустановить переменную: ';
    26 //$PHPMAILER_LANG['extension_missing']    = 'Extension missing: ';
     27$PHPMAILER_LANG['extension_missing']    = 'Расширение отсутствует: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-se.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Följande avsändaradress är felaktig: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Kunde inte initiera e-postfunktion.';
    18 //$PHPMAILER_LANG['invalid_address']      = 'Not sending, email address is invalid: ';
     18//$PHPMAILER_LANG['invalid_address']      = 'Invalid address: ';
    1919$PHPMAILER_LANG['provide_address']      = 'Du måste ange minst en mottagares e-postadress.';
    2020$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-sl.php

    r89555 r92830  
    55 * @author Klemen Tušar <techouse@gmail.com>
    66 */
    7  
     7
    88$PHPMAILER_LANG['authenticate']         = 'SMTP napaka: Avtentikacija ni uspela.';
    99$PHPMAILER_LANG['connect_host']         = 'SMTP napaka: Ne morem vzpostaviti povezave s SMTP gostiteljem.';
     
    1616$PHPMAILER_LANG['from_failed']          = 'Neveljaven e-naslov pošiljatelja: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Ne morem inicializirati mail funkcije.';
    18 $PHPMAILER_LANG['invalid_address']      = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven.';
     18$PHPMAILER_LANG['invalid_address']      = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.';
    2020$PHPMAILER_LANG['provide_address']      = 'Prosim vnesite vsaj enega naslovnika.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-sr.php

    r89555 r92830  
    1717$PHPMAILER_LANG['recipients_failed']    = 'SMTP грешка: слање на следеће адресе није успело: ';
    1818$PHPMAILER_LANG['instantiate']          = 'Није могуће покренути mail функцију.';
    19 $PHPMAILER_LANG['invalid_address']      = 'Порука није послата због неисправне адресе.';
     19$PHPMAILER_LANG['invalid_address']      = 'Порука није послата због неисправне адресе: ';
    2020$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.';
    2121$PHPMAILER_LANG['provide_address']      = 'Потребно је задати најмање једну адресу.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-uk.php

    r89555 r92830  
    44 * @package PHPMailer
    55 * @author Yuriy Rudyy <yrudyy@prs.net.ua>
     6 * @fixed by Boris Yurchenko <boris@yurchenko.pp.ua>
    67 */
    78
    89$PHPMAILER_LANG['authenticate']         = 'Помилка SMTP: помилка авторизації.';
    9 $PHPMAILER_LANG['connect_host']         = 'Помилка SMTP: не вдається підєднатися до серверу SMTP.';
     10$PHPMAILER_LANG['connect_host']         = 'Помилка SMTP: не вдається під\'єднатися до серверу SMTP.';
    1011$PHPMAILER_LANG['data_not_accepted']    = 'Помилка SMTP: дані не прийняті.';
    1112$PHPMAILER_LANG['encoding']             = 'Невідомий тип кодування: ';
     
    1718$PHPMAILER_LANG['provide_address']      = 'Будь-ласка, введіть хоча б одну адресу e-mail отримувача.';
    1819$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.';
    19 $PHPMAILER_LANG['recipients_failed']    = 'Помилка SMTP: відправти наступним отрмувачам не вдалася: ';
     20$PHPMAILER_LANG['recipients_failed']    = 'Помилка SMTP: відправлення наступним отримувачам не вдалося: ';
    2021$PHPMAILER_LANG['empty_message']        = 'Пусте тіло повідомлення';
    21 $PHPMAILER_LANG['invalid_address']      = 'Не відправлено, невірний формат email адреси: ';
     22$PHPMAILER_LANG['invalid_address']      = 'Не відправлено, невірний формат адреси e-mail: ';
    2223$PHPMAILER_LANG['signing']              = 'Помилка підпису: ';
    23 $PHPMAILER_LANG['smtp_connect_failed']  = 'Помилка зєднання із SMTP-сервером';
     24$PHPMAILER_LANG['smtp_connect_failed']  = 'Помилка з\'єднання із SMTP-сервером';
    2425$PHPMAILER_LANG['smtp_error']           = 'Помилка SMTP-сервера: ';
    2526$PHPMAILER_LANG['variable_set']         = 'Неможливо встановити або перевстановити змінну: ';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-vi.php

    r89555 r92830  
    1616$PHPMAILER_LANG['from_failed']          = 'Lỗi địa chỉ gửi đi: ';
    1717$PHPMAILER_LANG['instantiate']          = 'Không dùng được các hàm gửi thư.';
    18 $PHPMAILER_LANG['invalid_address']      = 'Đại chỉ emai không đúng';
     18$PHPMAILER_LANG['invalid_address']      = 'Đại chỉ emai không đúng: ';
    1919$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.';
    2020$PHPMAILER_LANG['provide_address']      = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.';
  • _plugins_/facteur/trunk/phpmailer-php5/language/phpmailer.lang-zh_cn.php

    r89555 r92830  
    1717$PHPMAILER_LANG['from_failed']          = '发送地址错误:';
    1818$PHPMAILER_LANG['instantiate']          = '未知函数调用。';
    19 $PHPMAILER_LANG['invalid_address']      = '发送失败,电子邮箱地址是无效的';
     19$PHPMAILER_LANG['invalid_address']      = '发送失败,电子邮箱地址是无效的';
    2020$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。';
    2121$PHPMAILER_LANG['provide_address']      = '必须提供至少一个收件人地址。';
  • _plugins_/facteur/trunk/phpmailer-php5/travis.phpunit.xml.dist

    r89555 r92830  
    1111         colors="false"
    1212         forceCoversAnnotation="false"
    13          strict="false"
    1413         processIsolation="false">
    1514    <testsuites>
Note: See TracChangeset for help on using the changeset viewer.