From f40a474002f4e474d52690e6642f592f5deac5ad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Aug 2011 23:40:47 +0000 Subject: [PATCH] Qual: vcard is not really an external project but now a specific dolibarr class file, so i moved it into core/class --- COPYRIGHT | 19 +- htdocs/core/class/smtps.php | 3716 ++++++++++++++++++----------------- 2 files changed, 1870 insertions(+), 1865 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index 40bf7ad19d6..b105d119008 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -10,29 +10,26 @@ However it uses some external libraries under different licences. This is compat Composant Version License Compatible GPL Usage ---------------------------------------------------------------------------- -PHP libraries: +In alphabetical order of includes directory: AdoDb-Date 0.21 Modified BSD License Yes Date convertion ArtiChow 1.07 Public Domain Yes Graphics CKEditor 3.6.1 GPL or LGPL 2.1 or MPL 1.1 Yes Editor WYSIWYG -FPDI 1.4.1 Apache Software License 2.0 ? PDF templates management -NuSoap 0.9.5 LGPL 2.1 Yes Library to develop SOAP Web services -OdtPHP 1.0.1 GPL 2.0 Yes Library to build/edit ODT files -Php-barcode 0.3pl1 GPL 2.0 Yes Bar code generation -PHPExcel 1.7.6 LGPL 2.1 Yes Read/Write XLS files, read ODS files -TCPDF 5.9.098 LGPL 3.0 Yes PDF generation - -JS libraries: +FPDI 1.4.1 Apache Software License 2.0 No GPL3 only PDF templates management jQuery 1.6.1 GPL and MIT Licence Yes JS library jQuery UI 1.8.14 GPL and MIT Licence Yes JS library plugin UI jQuery Flot 0.7 MIT Licence Yes JS library to build graph jQuery JCrop 0.9.8 MIT Licence Yes JS library plugin Crop (to crop images) jQuery Layout 1.3.0 GPL and MIT Licence Yes JS library plugin Layout (RC-29.15) jQuery TableDnD 0.5 GPL and MIT Licence Yes JS library plugin TableDnD (to reorder table rows) -jQuery jNotify 1.1.00 Apache Software License 2.0 ? JS library plugin jNotify (to use ajax popups) +jQuery jNotify 1.1.00 Apache Software License 2.0 No GPL3 only JS library plugin jNotify (to use ajax popups) jQuery Mobile 1.0b1 GPL and MIT Licence Yes JS library for smartphone (not used) jQuery Tiptip 1.3 GPL and MIT Licence Yes JS library for tooltips JSGantt 1.2 BSD Licence Yes JS library (to build Gantt reports) - +NuSoap 0.9.5 LGPL 2.1 Yes Interfaces with third tools +OdtPHP 1.0.1 GPL 2.0 Yes Library to build/edit ODT files +Php-barcode 0.3pl1 GPL 2.0 Yes Bar code generation +PHPExcel 1.7.6 LGPL 2.1 Yes Read/Write XLS files, read ODS files +TCPDF 5.9.098 LGPL 3.0 Yes PDF generation For licenses compatibility informations: http://www.fsf.org/licensing/licenses/index_html diff --git a/htdocs/core/class/smtps.php b/htdocs/core/class/smtps.php index af6fea70b64..e0fee217d50 100755 --- a/htdocs/core/class/smtps.php +++ b/htdocs/core/class/smtps.php @@ -1,336 +1,341 @@ [with a *lot* of help!] - * @author Laurent Destailleur - * @author Regis Houssin - * - * @version $Revision: 1.1 $ - * @license GNU General Public Licence - * - * $Id: smtps.php,v 1.1 2011/08/26 23:19:54 eldy Exp $ - * - **/ +/* + * Class SMTPs + * + * Class to construct and send SMTP compliant email, even to a secure + * SMTP server, regardless of platform. + * + * Goals: + * - mime compliant + * - multiple Reciptiants + * - TO + * - CC + * - BCC + * - multi-part message + * - plain text + * - HTML + * - inline attachments + * - attachments + * - GPG access + * + * This Class is based off of 'SMTP PHP MAIL' by Dirk Paehl, http://www.paehl.de + * + * @package SMTPs + * + * @tutorial /path/to/tutorial.php Complete Class tutorial + * @example url://path/to/example.php description + * + * @reference http://db.ilug-bom.org.in/lug-authors/philip/docs/mail-stuff/smtp-intro.html + * @reference http://www.gordano.com/kb.htm?q=344 + * @reference http://www.gordano.com/kb.htm?q=803 + * + * @author Walter Torres [with a *lot* of help!] + * @author Laurent Destailleur + * @author Regis Houssin + * + * @version $Revision: 1.2 $ + * @license GNU General Public Licence + * + * $Id: smtps.php,v 1.2 2011/08/26 23:40:48 eldy Exp $ + * + */ + + +/** + * \file htdocs/core/class/smtps.class.php + * \brief Class to manage SMTPS email sending + */ + // ============================================================= // ** Class Constants - /** - * Version number of Class - * @const SMTPs_VER - * - */ - define('SMTPs_VER', '1.15', false); +/** + * Version number of Class + * @const SMTPs_VER + * + */ +define('SMTPs_VER', '1.15', false); - /** - * SMTPs Success value - * @const SMTPs_SUCCEED - * - */ - define('SMTPs_SUCCEED', true, false); +/** + * SMTPs Success value + * @const SMTPs_SUCCEED + * + */ +define('SMTPs_SUCCEED', true, false); - /** - * SMTPs Fail value - * @const SMTPs_FAIL - * - */ - define('SMTPs_FAIL', false, false); +/** + * SMTPs Fail value + * @const SMTPs_FAIL + * + */ +define('SMTPs_FAIL', false, false); // ============================================================= // ** Error codes and messages - /** - * Improper parameters - * @const SMTPs_INVALID_PARAMETERS - * - */ - define('SMTPs_INVALID_PARAMETERS', 50, false); +/** + * Improper parameters + * @const SMTPs_INVALID_PARAMETERS + * + */ +define('SMTPs_INVALID_PARAMETERS', 50, false); -// ============================================================= -// ============================================================= -// ** Class - /** - * Class SMTPs - * - * Class to construct and send SMTP compliant email, even - * to a secure SMTP server, regardless of platform. - * - * @package SMTPs - * - **/ + +/** + * Class SMTPs + * + * Class to construct and send SMTP compliant email, even + * to a secure SMTP server, regardless of platform. + * + * @package SMTPs + * + **/ class SMTPs { -// ============================================================= -// ** Class Properties + // ============================================================= + // ** Class Properties - /** - * Property private string $_smtpsHost - * - * @property private string Host Name or IP of SMTP Server to use - * @name $_smtpsHost - * - * Host Name or IP of SMTP Server to use. Default value of 'localhost' - * This can be defined via a INI file or via a setter method - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string $_smtpsHost + * + * @property private string Host Name or IP of SMTP Server to use + * @name $_smtpsHost + * + * Host Name or IP of SMTP Server to use. Default value of 'localhost' + * This can be defined via a INI file or via a setter method + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsHost = 'localhost'; - /** - * Property private int $_smtpsPort - * - * @property private int SMTP Server Port definition. 25 is default value - * @name var_name - * - * SMTP Server Port definition. 25 is default value - * This can be defined via a INI file or via a setter method - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private int $_smtpsPort + * + * @property private int SMTP Server Port definition. 25 is default value + * @name var_name + * + * SMTP Server Port definition. 25 is default value + * This can be defined via a INI file or via a setter method + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsPort = '25'; - /** - * Property private string $_smtpsID - * - * @property private string Secure SMTP Server access ID - * @name $_smtpsID - * - * Secure SMTP Server access ID - * This can be defined via a INI file or via a setter method - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string $_smtpsID + * + * @property private string Secure SMTP Server access ID + * @name $_smtpsID + * + * Secure SMTP Server access ID + * This can be defined via a INI file or via a setter method + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsID = null; - /** - * Property private string var $_smtpsPW - * - * @property private string Secure SMTP Server access Password - * @name var $_smtpsPW - * - * Secure SMTP Server access Password - * This can be defined via a INI file or via a setter method - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_smtpsPW + * + * @property private string Secure SMTP Server access Password + * @name var $_smtpsPW + * + * Secure SMTP Server access Password + * This can be defined via a INI file or via a setter method + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsPW = null; - /** - * Property private string var $_msgFrom - * - * @property private string Who sent the Message - * @name var $_msgFrom - * - * Who sent the Message - * This can be defined via a INI file or via a setter method - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_msgFrom + * + * @property private string Who sent the Message + * @name var $_msgFrom + * + * Who sent the Message + * This can be defined via a INI file or via a setter method + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgFrom = null; - /** - * Property private string var $_msgReplyTo - * - * @property private string Where are replies and errors to be sent to - * @name var $_msgReplyTo - * - * Where are replies and errors to be sent to - * This can be defined via a INI file or via a setter method - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_msgReplyTo + * + * @property private string Where are replies and errors to be sent to + * @name var $_msgReplyTo + * + * Where are replies and errors to be sent to + * This can be defined via a INI file or via a setter method + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgReplyTo = null; - /** - * Property private array var $_msgRecipients - * - * @property private array Who will the Message be sent to; TO, CC, BCC - * @name var $_msgRecipients - * - * Who will the Message be sent to; TO, CC, BCC - * Multi-diminsional array containg addresses the message will - * be sent TO, CC or BCC - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private array var $_msgRecipients + * + * @property private array Who will the Message be sent to; TO, CC, BCC + * @name var $_msgRecipients + * + * Who will the Message be sent to; TO, CC, BCC + * Multi-diminsional array containg addresses the message will + * be sent TO, CC or BCC + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgRecipients = null; - /** - * Property private string var $_msgSubject - * - * @property private string Message Subject - * @name var $_msgSubject - * - * Message Subject - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_msgSubject + * + * @property private string Message Subject + * @name var $_msgSubject + * + * Message Subject + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgSubject = null; - /** - * Property private string var $_msgContent - * - * @property private string Message Content - * @name var $_msgContent - * - * Message Content - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_msgContent + * + * @property private string Message Content + * @name var $_msgContent + * + * Message Content + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgContent = null; - /** - * Property private string var $_msgXheader - * - * @property private array Custom X-Headers - * @name var $_msgXheader - * - * Custom X-Headers - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_msgXheader + * + * @property private array Custom X-Headers + * @name var $_msgXheader + * + * Custom X-Headers + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgXheader = null; - /** - * Property private string var $_smtpsCharSet - * - * @property private string Character set - * @name var $_smtpsCharSet - * - * Character set - * Defaulted to 'iso-8859-1' - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_smtpsCharSet + * + * @property private string Character set + * @name var $_smtpsCharSet + * + * Character set + * Defaulted to 'iso-8859-1' + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsCharSet = 'iso-8859-1'; - /** - * Property private int var $_msgSensitivity - * - * @property private string Message Sensitivity - * @name var $_msgSensitivity - * - * Message Sensitivity - * Defaults to ZERO - None - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private int var $_msgSensitivity + * + * @property private string Message Sensitivity + * @name var $_msgSensitivity + * + * Message Sensitivity + * Defaults to ZERO - None + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgSensitivity = 0; - /** - * Property private array var $_arySensitivity - * - * @property private array Sensitivity string values - * @name var $_arySensitivity - * - * Message Sensitivity - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private array var $_arySensitivity + * + * @property private array Sensitivity string values + * @name var $_arySensitivity + * + * Message Sensitivity + * + * @access private + * @static + * @since 1.0 + * + */ var $_arySensitivity = array ( false, 'Personal', 'Private', 'Company Confidential' ); - /** - * Property private int var $_msgPriority - * - * @property private int Message Priority - * @name var $_msgPriority - * - * Message Sensitivity - * Defaults to 3 - Normal - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private int var $_msgPriority + * + * @property private int Message Priority + * @name var $_msgPriority + * + * Message Sensitivity + * Defaults to 3 - Normal + * + * @access private + * @static + * @since 1.0 + * + */ var $_msgPriority = 3; - /** - * Property private array var $_aryPriority - * - * @property private array Priority string values - * @name var $_aryPriority - * - * Message Priority - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private array var $_aryPriority + * + * @property private array Priority string values + * @name var $_aryPriority + * + * Message Priority + * + * @access private + * @static + * @since 1.0 + * + */ var $_aryPriority = array ( 'Bulk', 'Highest', 'High', @@ -338,35 +343,35 @@ class SMTPs 'Low', 'Lowest' ); - /** - * Property private string var $_smtpsTransEncodeType - * - * @property private string Character set - * @name var $_smtpsTransEncode - * - * Content-Transfer-Encoding - * Defaulted to 0 - 7bit - * - * @access private - * @static - * @since 1.15 - * - */ + /** + * Property private string var $_smtpsTransEncodeType + * + * @property private string Character set + * @name var $_smtpsTransEncode + * + * Content-Transfer-Encoding + * Defaulted to 0 - 7bit + * + * @access private + * @static + * @since 1.15 + * + */ var $_smtpsTransEncodeType = 0; - /** - * Property private string var $_smtpsTransEncodeTypes - * - * @property private string Character set - * @name var $_smtpsTransEncodeTypes - * - * Content-Transfer-Encoding - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_smtpsTransEncodeTypes + * + * @property private string Character set + * @name var $_smtpsTransEncodeTypes + * + * Content-Transfer-Encoding + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsTransEncodeTypes = array( '7bit', // Simple 7-bit ASCII '8bit', // 8-bit coding with line termination characters 'base64', // 3 octets encoded into 4 sextets with offset @@ -375,151 +380,151 @@ class SMTPs 'quoted-printable', // Mostly 7-bit, with 8-bit characters encoded as "=HH" 'uuencode' ); // UUENCODE encoding - /** - * Property private string var $_smtpsTransEncode - * - * @property private string Character set - * @name var $_smtpsTransEncode - * - * Content-Transfer-Encoding - * Defaulted to '7bit' - * - * @access private - * @static - * @since 1.15 - * @deprecated - * - */ + /** + * Property private string var $_smtpsTransEncode + * + * @property private string Character set + * @name var $_smtpsTransEncode + * + * Content-Transfer-Encoding + * Defaulted to '7bit' + * + * @access private + * @static + * @since 1.15 + * @deprecated + * + */ var $_smtpsTransEncode = '7bit'; - /** - * Property private string var $_smtpsBoundary - * - * @property private string Boundary String for MIME seperation - * @name var $_smtpsBoundary - * - * Boundary String for MIME seperation - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private string var $_smtpsBoundary + * + * @property private string Boundary String for MIME seperation + * @name var $_smtpsBoundary + * + * Boundary String for MIME seperation + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsBoundary = null; - /** - * Property private int var $_transportType - * - * @property private int Determines the method inwhich the message are to be sent. - * @name var $_transportType - * - * Determines the method inwhich the message are to be sent. - * - 'sockets' [0] - conect via network to SMTP server - default - * - 'pipe [1] - use UNIX path to EXE - * - 'phpmail [2] - use the PHP built-in mail function - * - * NOTE: Only 'sockets' is implemented - * - * @access private - * @static - * @since 1.8 - * - */ + /** + * Property private int var $_transportType + * + * @property private int Determines the method inwhich the message are to be sent. + * @name var $_transportType + * + * Determines the method inwhich the message are to be sent. + * - 'sockets' [0] - conect via network to SMTP server - default + * - 'pipe [1] - use UNIX path to EXE + * - 'phpmail [2] - use the PHP built-in mail function + * + * NOTE: Only 'sockets' is implemented + * + * @access private + * @static + * @since 1.8 + * + */ var $_transportType = 0; - /** - * Property private string var $_mailPath - * - * @property private string Path to the sendmail execuable - * @name var $_mailPath - * - * If '$_transportType' is set to '1', then this variable is used - * to define the UNIX file system path to the sendmail execuable - * - * @access private - * @static - * @since 1.8 - * - */ + /** + * Property private string var $_mailPath + * + * @property private string Path to the sendmail execuable + * @name var $_mailPath + * + * If '$_transportType' is set to '1', then this variable is used + * to define the UNIX file system path to the sendmail execuable + * + * @access private + * @static + * @since 1.8 + * + */ var $_mailPath = '/usr/lib/sendmail'; - /** - * Property private int var $_smtpTimeout - * - * @property private int Sets the SMTP server timeout in seconds. - * @name var $_smtpTimeout - * - * Sets the SMTP server timeout in seconds. - * - * @access private - * @static - * @since 1.8 - * - */ + /** + * Property private int var $_smtpTimeout + * + * @property private int Sets the SMTP server timeout in seconds. + * @name var $_smtpTimeout + * + * Sets the SMTP server timeout in seconds. + * + * @access private + * @static + * @since 1.8 + * + */ var $_smtpTimeout = 10; - /** - * Property private int var $_smtpMD5 - * - * @property private boolean Determines whether to calculate message MD5 checksum. - * @name var $_smtpMD5 - * - * Determines whether to calculate message MD5 checksum. - * - * @access private - * @static - * @since 1.15 - * - */ + /** + * Property private int var $_smtpMD5 + * + * @property private boolean Determines whether to calculate message MD5 checksum. + * @name var $_smtpMD5 + * + * Determines whether to calculate message MD5 checksum. + * + * @access private + * @static + * @since 1.15 + * + */ var $_smtpMD5 = false; - /** - * Property private array var $_smtpsErrors - * - * @property private array Class error codes and messages - * @name var $_smtpsErrors - * - * Class error codes and messages - * - * @access private - * @static - * @since 1.0 - * - */ + /** + * Property private array var $_smtpsErrors + * + * @property private array Class error codes and messages + * @name var $_smtpsErrors + * + * Class error codes and messages + * + * @access private + * @static + * @since 1.0 + * + */ var $_smtpsErrors = null; - /** - * Property private boolean var $_log_level - * - * @property private integer Defines Log Level - * @name var $_log_level - * - * Defines log level - * 0 - no logging - * 1 - connectivity logging - * 2 - message generation logging - * 3 - detail logging - * - * @access private - * @static - * @since 1.15 - * - */ + /** + * Property private boolean var $_log_level + * + * @property private integer Defines Log Level + * @name var $_log_level + * + * Defines log level + * 0 - no logging + * 1 - connectivity logging + * 2 - message generation logging + * 3 - detail logging + * + * @access private + * @static + * @since 1.15 + * + */ var $_log_level = 0; - /** - * Property private boolean var $_debug - * - * @property private boolean Place Class in" debug" mode - * @name var $_debug - * - * Place Class in" debug" mode - * - * @access private - * @static - * @since 1.8 - * - */ + /** + * Property private boolean var $_debug + * + * @property private boolean Place Class in" debug" mode + * @name var $_debug + * + * Place Class in" debug" mode + * + * @access private + * @static + * @since 1.8 + * + */ var $_debug = false; @@ -542,7 +547,7 @@ class SMTPs function setErrorsTo ( $_strErrorsTo ) { if ( $_strErrorsTo ) - $this->_errorsTo = $this->_strip_email ( $_strErrorsTo ); + $this->_errorsTo = $this->_strip_email ( $_strErrorsTo ); } function getErrorsTo ( $_part = true ) @@ -550,75 +555,75 @@ class SMTPs $_retValue = ''; if ( $_part === true ) - $_retValue = $this->_errorsTo; + $_retValue = $this->_errorsTo; else - $_retValue = $this->_errorsTo[$_part]; + $_retValue = $this->_errorsTo[$_part]; return $_retValue; } -// ============================================================= + // ============================================================= function setDebug ( $_vDebug = false ) { $this->_debug = $_vDebug; } -// ** Class methods + // ** Class methods - /** - * Method public void buildRCPTlist( void ) - * - * build RECIPIENT List, all addresses who will recieve this message - * - * @name buildRCPTlist() - * - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return void - * - * @TODO - * - */ + /** + * Method public void buildRCPTlist( void ) + * + * build RECIPIENT List, all addresses who will recieve this message + * + * @name buildRCPTlist() + * + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return void + * + * @TODO + * + */ function buildRCPTlist() { // Pull TO list $_aryToList = $this->getTO(); } - /** - * Method private bool _server_connect( void ) - * - * Attempt a connection to mail server - * - * @name _server_connect() - * - * @final - * @access private - * - * @since 1.14 - * - * @param void - * @return mixed $_retVal Boolean indicating success or failure on connection - * - * @TODO - * Modify method to generate log of Class to Mail Server communication - * - */ + /** + * Method private bool _server_connect( void ) + * + * Attempt a connection to mail server + * + * @name _server_connect() + * + * @final + * @access private + * + * @since 1.14 + * + * @param void + * @return mixed $_retVal Boolean indicating success or failure on connection + * + * @TODO + * Modify method to generate log of Class to Mail Server communication + * + */ function _server_connect() { - /** - * Default return value - * - * @var mixed $_retVal Indicates if Object was created or not - * @access private - * @static - */ + /** + * Default return value + * + * @var mixed $_retVal Indicates if Object was created or not + * @access private + * @static + */ $_retVal = true; // We have to make sure the HOST given is valid @@ -640,10 +645,10 @@ class SMTPs { //See if we can connect to the SMTP server if ( $this->socket = @fsockopen($this->getHost(), // Host to 'hit', IP or domain - $this->getPort(), // which Port number to use - $this->errno, // actual system level error - $this->errstr, // and any text that goes with the error - $this->_smtpTimeout) ) // timeout for reading/writing data over the socket + $this->getPort(), // which Port number to use + $this->errno, // actual system level error + $this->errstr, // and any text that goes with the error + $this->_smtpTimeout) ) // timeout for reading/writing data over the socket { // Fix from PHP SMTP class by 'Chris Ryan' // Sometimes the SMTP server takes a little longer to respond @@ -653,14 +658,14 @@ class SMTPs // Check response from Server if ( $_retVal = $this->server_parse($this->socket, "220") ) - $_retVal = $this->socket; + $_retVal = $this->socket; } // This connection attempt failed. else { - // DOL_CHANGE LDR - if (empty($this->errstr)) $this->errstr='Failed to connect with fsockopen host='.$this->getHost().' port='.$this->getPort(); - $this->_setErr ( $this->errno, $this->errstr ); + // DOL_CHANGE LDR + if (empty($this->errstr)) $this->errstr='Failed to connect with fsockopen host='.$this->getHost().' port='.$this->getPort(); + $this->_setErr ( $this->errno, $this->errstr ); $_retVal = false; } } @@ -668,25 +673,25 @@ class SMTPs return $_retVal; } - /** - * Method private bool _server_authenticate( void ) - * - * Attempt mail server authentication for a secure connection - * - * @name _server_authenticate() - * - * @final - * @access private - * - * @since 1.14 - * - * @param void - * @return mixed $_retVal Boolean indicating success or failure of authentication - * - * @TODO - * Modify method to generate log of Class to Mail Server communication - * - */ + /** + * Method private bool _server_authenticate( void ) + * + * Attempt mail server authentication for a secure connection + * + * @name _server_authenticate() + * + * @final + * @access private + * + * @since 1.14 + * + * @param void + * @return mixed $_retVal Boolean indicating success or failure of authentication + * + * @TODO + * Modify method to generate log of Class to Mail Server communication + * + */ function _server_authenticate() { // Send the RFC2554 specified EHLO. @@ -695,7 +700,7 @@ class SMTPs $host=$this->getHost(); $host=preg_replace('@tcp://@i','',$host); // Remove prefix $host=preg_replace('@ssl://@i','',$host); // Remove prefix - if ( $_retVal = $this->socket_send_str('EHLO ' . $host, '250') ) + if ( $_retVal = $this->socket_send_str('EHLO ' . $host, '250') ) { // Send Authentication to Server // Check for errors along the way @@ -707,7 +712,7 @@ class SMTPs // The error here just means the ID/password combo doesn't work. // There is not a method to determine which is the problem, ID or password if ( ! $_retVal = $this->socket_send_str(base64_encode($this->_smtpsPW), '235') ) - $this->_setErr ( 130, 'Invalid Authentication Credentials.' ); + $this->_setErr ( 130, 'Invalid Authentication Credentials.' ); } else { @@ -717,37 +722,37 @@ class SMTPs return $_retVal; } - /** - * Method public void sendMsg( void ) - * - * Now send the message - * - * @name sendMsg() - * - * @final - * @access public - * - * @since 1.0 - * - * @param boolean $_bolTestMsg whether to run this method in 'Test' mode. - * @param boolean $_bolDebug whether to log all communication between this Class and the Mail Server. - * @return mixed void - * $_strMsg If this is run in 'Test' mode, the actual message structure will be returned - * - * @TODO - * Modify method to generate log of Class to Mail Server communication - * Impliment use of new parameters - * - */ + /** + * Method public void sendMsg( void ) + * + * Now send the message + * + * @name sendMsg() + * + * @final + * @access public + * + * @since 1.0 + * + * @param boolean $_bolTestMsg whether to run this method in 'Test' mode. + * @param boolean $_bolDebug whether to log all communication between this Class and the Mail Server. + * @return mixed void + * $_strMsg If this is run in 'Test' mode, the actual message structure will be returned + * + * @TODO + * Modify method to generate log of Class to Mail Server communication + * Impliment use of new parameters + * + */ function sendMsg ( $_bolTestMsg = false, $_bolDebug = false ) { - /** - * Default return value - * - * @var mixed $_retVal Indicates if Object was created or not - * @access private - * @static - */ + /** + * Default return value + * + * @var mixed $_retVal Indicates if Object was created or not + * @access private + * @static + */ $_retVal = false; // Connect to Server @@ -764,10 +769,10 @@ class SMTPs else { // Send the RFC821 specified HELO. - $host=$this->getHost(); - $host=preg_replace('@tcp://@i','',$host); // Remove prefix - $host=preg_replace('@ssl://@i','',$host); // Remove prefix - $_retVal = $this->socket_send_str('HELO ' . $host, '250'); + $host=$this->getHost(); + $host=preg_replace('@tcp://@i','',$host); // Remove prefix + $host=preg_replace('@ssl://@i','',$host); // Remove prefix + $_retVal = $this->socket_send_str('HELO ' . $host, '250'); } // Well, did we get to the server? @@ -783,14 +788,14 @@ class SMTPs // and send it out "single file" foreach ( $this->get_RCPT_list() as $_address ) { - /* - * @TODO - * After each 'RCPT TO:' is sent, we need to make sure it was kosher, - * if not, the whole message will fail - * If any email address fails, we will need to RESET the connection, - * mark the last address as "bad" and start the address loop over again. - * If any address fails, the entire message fails. - */ + /* + * @TODO + * After each 'RCPT TO:' is sent, we need to make sure it was kosher, + * if not, the whole message will fail + * If any email address fails, we will need to RESET the connection, + * mark the last address as "bad" and start the address loop over again. + * If any address fails, the entire message fails. + */ $this->socket_send_str('RCPT TO: <' . $_address . '>', '250'); } @@ -812,70 +817,70 @@ class SMTPs return $_retVal; } -// ============================================================= -// ** Setter & Getter methods + // ============================================================= + // ** Setter & Getter methods -// ** Basic System configuration + // ** Basic System configuration - /** - * Method public void setConfig( mixed ) - * - * setConfig() is used to populate select class properties from either - * a user defined INI file or the systems 'php.ini' file - * - * If a user defined INI is to be used, the files complete path is passed - * as the method single parameter. The INI can define any class and/or - * user properties. Only properties defined within this file will be setter - * and/or orverwritten - * - * If the systems 'php.ini' file is to be used, the method is called without - * parameters. In this case, only HOST, PORT and FROM properties will be set - * as they are the only properties that are defined within the 'php.ini'. - * - * If secure SMTP is to be used, the user ID and Password can be defined with - * the user INI file, but the properties are not defined with the systems - * 'php.ini'file, they must be defined via their setter methods - * - * This method can be called twice, if desired. Once without a parameter to - * load the properties as defined within the systems 'php.ini' file, and a - * second time, with a path to a user INI file for other properties to be - * defined. - * - * @name setConfig() - * - * @final - * @access public - * - * @since 1.0 - * - * @param mixed $_strConfigPath path to config file or VOID - * @return void - * - */ + /** + * Method public void setConfig( mixed ) + * + * setConfig() is used to populate select class properties from either + * a user defined INI file or the systems 'php.ini' file + * + * If a user defined INI is to be used, the files complete path is passed + * as the method single parameter. The INI can define any class and/or + * user properties. Only properties defined within this file will be setter + * and/or orverwritten + * + * If the systems 'php.ini' file is to be used, the method is called without + * parameters. In this case, only HOST, PORT and FROM properties will be set + * as they are the only properties that are defined within the 'php.ini'. + * + * If secure SMTP is to be used, the user ID and Password can be defined with + * the user INI file, but the properties are not defined with the systems + * 'php.ini'file, they must be defined via their setter methods + * + * This method can be called twice, if desired. Once without a parameter to + * load the properties as defined within the systems 'php.ini' file, and a + * second time, with a path to a user INI file for other properties to be + * defined. + * + * @name setConfig() + * + * @final + * @access public + * + * @since 1.0 + * + * @param mixed $_strConfigPath path to config file or VOID + * @return void + * + */ function setConfig ( $_strConfigPath = null ) { - /** - * Default return value - * - * Returns constructed SELECT Object string or boolean upon failure - * Default value is set at TRUE - * - * @var mixed $_retVal Indicates if Object was created or not - * @access private - * @static - */ + /** + * Default return value + * + * Returns constructed SELECT Object string or boolean upon failure + * Default value is set at TRUE + * + * @var mixed $_retVal Indicates if Object was created or not + * @access private + * @static + */ $_retVal = true; // if we have a path... if ( ! empty ($_strConfigPath) ) { - /* - * @TODO The error supression around the INCLUDE has to be replaced with - * a 'real' file validation sequence. - * If there is anything wrong with the 'code' in the INI file - * the app will fail right here without any indication of the issue. - * - */ + /* + * @TODO The error supression around the INCLUDE has to be replaced with + * a 'real' file validation sequence. + * If there is anything wrong with the 'code' in the INI file + * the app will fail right here without any indication of the issue. + * + */ // If the path is not valid, this will NOT generate an error, // it will simply return FALSE. if ( ! @include ( $_strConfigPath ) ) @@ -891,533 +896,533 @@ class SMTPs // Set these properties ONLY if they are set in the php.ini file. // Otherwise the default values will be used. if ( $_host = ini_get ('SMTPs') ) - $this->setHost ( $_host ); + $this->setHost ( $_host ); if ( $_port = ini_get ('smtp_port') ) - $this->setPort ( $_port ); + $this->setPort ( $_port ); if ( $_from = ini_get ('sendmail_from') ) - $this->setFrom ( $_from ); + $this->setFrom ( $_from ); } // Send back what we have return $_retVal; } - /** - * Method public void setTransportType( int ) - * - * Determines the method inwhich the messages are to be sent. - * - 'sockets' [0] - conect via network to SMTP server - * - 'pipe [1] - use UNIX path to EXE - * - 'phpmail [2] - use the PHP built-in mail function - * - * NOTE: Not yet implemented - * - * @name setTransportType() - * - * @uses Class property $_transportType - * @final - * @access public - * - * @since 1.8 - * - * @param int $_type Interger value representing Mail Transport Type - * @return void - * - * @TODO - * This feature is not yet implemented - * - */ + /** + * Method public void setTransportType( int ) + * + * Determines the method inwhich the messages are to be sent. + * - 'sockets' [0] - conect via network to SMTP server + * - 'pipe [1] - use UNIX path to EXE + * - 'phpmail [2] - use the PHP built-in mail function + * + * NOTE: Not yet implemented + * + * @name setTransportType() + * + * @uses Class property $_transportType + * @final + * @access public + * + * @since 1.8 + * + * @param int $_type Interger value representing Mail Transport Type + * @return void + * + * @TODO + * This feature is not yet implemented + * + */ function setTransportType ( $_type = 0 ) { if ( ( is_numeric ($_type) ) && - ( ( $_type >= 0 ) && ( $_type <= 3 ) ) ) - $this->_transportType = $_type; + ( ( $_type >= 0 ) && ( $_type <= 3 ) ) ) + $this->_transportType = $_type; } - /** - * Method public int getTransportType( void ) - * - * Return the method inwhich the message is to be sent. - * - 'sockets' [0] - conect via network to SMTP server - * - 'pipe [1] - use UNIX path to EXE - * - 'phpmail [2] - use the PHP built-in mail function - * - * NOTE: Not yet implemented - * - * @name getTransportType() - * - * @uses Class property $_transportType - * @final - * @access public - * - * @since 1.8 - * - * @param void - * @return int $_strHost Host Name or IP of the Mail Server to use - * - */ + /** + * Method public int getTransportType( void ) + * + * Return the method inwhich the message is to be sent. + * - 'sockets' [0] - conect via network to SMTP server + * - 'pipe [1] - use UNIX path to EXE + * - 'phpmail [2] - use the PHP built-in mail function + * + * NOTE: Not yet implemented + * + * @name getTransportType() + * + * @uses Class property $_transportType + * @final + * @access public + * + * @since 1.8 + * + * @param void + * @return int $_strHost Host Name or IP of the Mail Server to use + * + */ function getTransportType () { return $this->_transportType; } - /** - * Method public void setMailPath( string ) - * - * Path to the sendmail execuable - * - * NOTE: Not yet implemented - * - * @name setMailPath() - * - * @uses Class property $_mailPath - * @final - * @access public - * - * @since 1.8 - * - * @param string $_path Path to the sendmail execuable - * @return void - * - */ + /** + * Method public void setMailPath( string ) + * + * Path to the sendmail execuable + * + * NOTE: Not yet implemented + * + * @name setMailPath() + * + * @uses Class property $_mailPath + * @final + * @access public + * + * @since 1.8 + * + * @param string $_path Path to the sendmail execuable + * @return void + * + */ function setMailPath ( $_path ) { // This feature is not yet implemented return true; if ( $_path ) - $this->_mailPath = $_path; + $this->_mailPath = $_path; } - /** - * Method public void setHost( string ) - * - * Defines the Host Name or IP of the Mail Server to use. - * This is defaulted to 'localhost' - * - * This is used only with 'socket' based mail transmission - * - * @name setHost() - * - * @uses Class property $_smtpsHost - * @final - * @access public - * - * @since 1.0 - * - * @param string $_strHost Host Name or IP of the Mail Server to use - * @return void - * - */ + /** + * Method public void setHost( string ) + * + * Defines the Host Name or IP of the Mail Server to use. + * This is defaulted to 'localhost' + * + * This is used only with 'socket' based mail transmission + * + * @name setHost() + * + * @uses Class property $_smtpsHost + * @final + * @access public + * + * @since 1.0 + * + * @param string $_strHost Host Name or IP of the Mail Server to use + * @return void + * + */ function setHost ( $_strHost ) { if ( $_strHost ) - $this->_smtpsHost = $_strHost; + $this->_smtpsHost = $_strHost; } - /** - * Method public string getHost( void ) - * - * Retrieves the Host Name or IP of the Mail Server to use - * - * This is used only with 'socket' based mail transmission - * - * @name getHost() - * - * @uses Class property $_smtpsHost - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_strHost Host Name or IP of the Mail Server to use - * - */ + /** + * Method public string getHost( void ) + * + * Retrieves the Host Name or IP of the Mail Server to use + * + * This is used only with 'socket' based mail transmission + * + * @name getHost() + * + * @uses Class property $_smtpsHost + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_strHost Host Name or IP of the Mail Server to use + * + */ function getHost () { return $this->_smtpsHost; } - /** - * Method public void setPort( int ) - * - * Defines the Port Number of the Mail Server to use - * This is defaulted to '25' - * - * This is used only with 'socket' based mail transmission - * - * @name setPort() - * - * @uses Class property $_smtpsPort - * @final - * @access public - * - * @since 1.0 - * - * @param int $_smtpsPort Port Number of the Mail Server to use - * @return void - * - */ + /** + * Method public void setPort( int ) + * + * Defines the Port Number of the Mail Server to use + * This is defaulted to '25' + * + * This is used only with 'socket' based mail transmission + * + * @name setPort() + * + * @uses Class property $_smtpsPort + * @final + * @access public + * + * @since 1.0 + * + * @param int $_smtpsPort Port Number of the Mail Server to use + * @return void + * + */ function setPort ( $_intPort ) { if ( ( is_numeric ($_intPort) ) && - ( ( $_intPort >= 1 ) && ( $_intPort <= 65536 ) ) ) - $this->_smtpsPort = $_intPort; + ( ( $_intPort >= 1 ) && ( $_intPort <= 65536 ) ) ) + $this->_smtpsPort = $_intPort; } - /** - * Method public string getPort( void ) - * - * Retrieves the Port Number of the Mail Server to use - * - * This is used only with 'socket' based mail transmission - * - * @name getPort() - * - * @uses Class property $_smtpsPort - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_smtpsPort Port Number of the Mail Server to use - * - */ + /** + * Method public string getPort( void ) + * + * Retrieves the Port Number of the Mail Server to use + * + * This is used only with 'socket' based mail transmission + * + * @name getPort() + * + * @uses Class property $_smtpsPort + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_smtpsPort Port Number of the Mail Server to use + * + */ function getPort () { return $this->_smtpsPort; } - /** - * Method public void setID( string ) - * - * User Name for authentication on Mail Server - * - * @name setID() - * - * @uses Class property $_smtpsID - * @final - * @access public - * - * @since 1.0 - * - * @param string $_strID User Name for authentication on Mail Server - * @return void - * - */ + /** + * Method public void setID( string ) + * + * User Name for authentication on Mail Server + * + * @name setID() + * + * @uses Class property $_smtpsID + * @final + * @access public + * + * @since 1.0 + * + * @param string $_strID User Name for authentication on Mail Server + * @return void + * + */ function setID ( $_strID ) { $this->_smtpsID = $_strID; } - /** - * Method public string getID( void ) - * - * Retrieves the User Name for authentication on Mail Server - * - * @name getID() - * - * @uses Class property $_smtpsPort - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string _smtpsID User Name for authentication on Mail Server - * - */ + /** + * Method public string getID( void ) + * + * Retrieves the User Name for authentication on Mail Server + * + * @name getID() + * + * @uses Class property $_smtpsPort + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string _smtpsID User Name for authentication on Mail Server + * + */ function getID () { return $this->_smtpsID; } - /** - * Method public void setPW( string ) - * - * User Password for authentication on Mail Server - * - * @name setPW() - * - * @uses Class property $_smtpsPW - * @final - * @access public - * - * @since 1.0 - * - * @param string $_strPW User Password for authentication on Mail Server - * @return void - * - */ + /** + * Method public void setPW( string ) + * + * User Password for authentication on Mail Server + * + * @name setPW() + * + * @uses Class property $_smtpsPW + * @final + * @access public + * + * @since 1.0 + * + * @param string $_strPW User Password for authentication on Mail Server + * @return void + * + */ function setPW ( $_strPW ) { $this->_smtpsPW = $_strPW; } - /** - * Method public string getPW( void ) - * - * Retrieves the User Password for authentication on Mail Server - * - * @name getPW() - * - * @uses Class property $_smtpsPW - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_smtpsPW User Password for authentication on Mail Server - * - */ + /** + * Method public string getPW( void ) + * + * Retrieves the User Password for authentication on Mail Server + * + * @name getPW() + * + * @uses Class property $_smtpsPW + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_smtpsPW User Password for authentication on Mail Server + * + */ function getPW () { return $this->_smtpsPW; } - /** - * Method public void setCharSet( string ) - * - * Character set used for current message - * Character set is defaulted to 'iso-8859-1'; - * - * @name setCharSet() - * - * @uses Class property $_smtpsCharSet - * @final - * @access public - * - * @since 1.0 - * - * @param string $_strCharSet Character set used for current message - * @return void - * - */ + /** + * Method public void setCharSet( string ) + * + * Character set used for current message + * Character set is defaulted to 'iso-8859-1'; + * + * @name setCharSet() + * + * @uses Class property $_smtpsCharSet + * @final + * @access public + * + * @since 1.0 + * + * @param string $_strCharSet Character set used for current message + * @return void + * + */ function setCharSet ( $_strCharSet ) { if ( $_strCharSet ) - $this->_smtpsCharSet = $_strCharSet; + $this->_smtpsCharSet = $_strCharSet; } - /** - * Method public string getCharSet( void ) - * - * Retrieves the Character set used for current message - * - * @name getCharSet() - * - * @uses Class property $_smtpsCharSet - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_smtpsCharSet Character set used for current message - * - */ + /** + * Method public string getCharSet( void ) + * + * Retrieves the Character set used for current message + * + * @name getCharSet() + * + * @uses Class property $_smtpsCharSet + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_smtpsCharSet Character set used for current message + * + */ function getCharSet () { return $this->_smtpsCharSet; } - /** - * Method public void setTransEncode( string ) - * - * Content-Transfer-Encoding, Defaulted to '7bit' - * This can be changed for 2byte characers sets - * - * Known Encode Types - * - 7bit Simple 7-bit ASCII - * - 8bit 8-bit coding with line termination characters - * - base64 3 octets encoded into 4 sextets with offset - * - binary Arbitrary binary stream - * - mac-binhex40 Macintosh binary to hex encoding - * - quoted-printable Mostly 7-bit, with 8-bit characters encoded as "=HH" - * - uuencode UUENCODE encoding - * - * @name setTransEncode() - * - * @uses Class property $_smtpsTransEncode - * @final - * @access public - * - * @since 1.15 - * @deprecated - * - * @param string $_strTransEncode Content-Transfer-Encoding - * @return void - * - */ + /** + * Method public void setTransEncode( string ) + * + * Content-Transfer-Encoding, Defaulted to '7bit' + * This can be changed for 2byte characers sets + * + * Known Encode Types + * - 7bit Simple 7-bit ASCII + * - 8bit 8-bit coding with line termination characters + * - base64 3 octets encoded into 4 sextets with offset + * - binary Arbitrary binary stream + * - mac-binhex40 Macintosh binary to hex encoding + * - quoted-printable Mostly 7-bit, with 8-bit characters encoded as "=HH" + * - uuencode UUENCODE encoding + * + * @name setTransEncode() + * + * @uses Class property $_smtpsTransEncode + * @final + * @access public + * + * @since 1.15 + * @deprecated + * + * @param string $_strTransEncode Content-Transfer-Encoding + * @return void + * + */ function setTransEncode ( $_strTransEncode ) { if ( array_search ( $_strTransEncode, $this->_smtpsTransEncodeTypes ) ) - $this->_smtpsTransEncode = $_strTransEncode; + $this->_smtpsTransEncode = $_strTransEncode; } - /** - * Method public string getTransEncode( void ) - * - * Retrieves the Content-Transfer-Encoding - * - * @name getTransEncode() - * - * @uses Class property $_smtpsCharSet - * @final - * @access public - * - * @since 1.15 - * @deprecated - * - * @param void - * @return string $_smtpsTransEncode Content-Transfer-Encoding - * - */ + /** + * Method public string getTransEncode( void ) + * + * Retrieves the Content-Transfer-Encoding + * + * @name getTransEncode() + * + * @uses Class property $_smtpsCharSet + * @final + * @access public + * + * @since 1.15 + * @deprecated + * + * @param void + * @return string $_smtpsTransEncode Content-Transfer-Encoding + * + */ function getTransEncode () { return $this->_smtpsTransEncode; } - /** - * Method public void setTransEncodeType( int ) - * - * Content-Transfer-Encoding, Defaulted to '0' [ZERO] - * This can be changed for 2byte characers sets - * - * Known Encode Types - * - [0] 7bit Simple 7-bit ASCII - * - [1] 8bit 8-bit coding with line termination characters - * - [2] base64 3 octets encoded into 4 sextets with offset - * - [3] binary Arbitrary binary stream - * - [4] mac-binhex40 Macintosh binary to hex encoding - * - [5] quoted-printable Mostly 7-bit, with 8-bit characters encoded as "=HH" - * - [6] uuencode UUENCODE encoding - * - * @name setTransEncodeType() - * - * @uses Class property $_smtpsTransEncodeType - * @uses Class property $_smtpsTransEncodeTypes - * @final - * @access public - * - * @since 1.15 - * - * @param string $_strTransEncodeType Content-Transfer-Encoding - * @return void - * - */ + /** + * Method public void setTransEncodeType( int ) + * + * Content-Transfer-Encoding, Defaulted to '0' [ZERO] + * This can be changed for 2byte characers sets + * + * Known Encode Types + * - [0] 7bit Simple 7-bit ASCII + * - [1] 8bit 8-bit coding with line termination characters + * - [2] base64 3 octets encoded into 4 sextets with offset + * - [3] binary Arbitrary binary stream + * - [4] mac-binhex40 Macintosh binary to hex encoding + * - [5] quoted-printable Mostly 7-bit, with 8-bit characters encoded as "=HH" + * - [6] uuencode UUENCODE encoding + * + * @name setTransEncodeType() + * + * @uses Class property $_smtpsTransEncodeType + * @uses Class property $_smtpsTransEncodeTypes + * @final + * @access public + * + * @since 1.15 + * + * @param string $_strTransEncodeType Content-Transfer-Encoding + * @return void + * + */ function setTransEncodeType ( $_strTransEncodeType ) { if ( array_search ( $_strTransEncodeType, $this->_smtpsTransEncodeTypes ) ) - $this->_smtpsTransEncodeType = $_strTransEncodeType; + $this->_smtpsTransEncodeType = $_strTransEncodeType; } - /** - * Method public string getTransEncodeType( void ) - * - * Retrieves the Content-Transfer-Encoding - * - * @name getTransEncodeType() - * - * @uses Class property $_smtpsTransEncodeType - * @uses Class property $_smtpsTransEncodeTypes - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_smtpsTransEncode Content-Transfer-Encoding - * - */ + /** + * Method public string getTransEncodeType( void ) + * + * Retrieves the Content-Transfer-Encoding + * + * @name getTransEncodeType() + * + * @uses Class property $_smtpsTransEncodeType + * @uses Class property $_smtpsTransEncodeTypes + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_smtpsTransEncode Content-Transfer-Encoding + * + */ function getTransEncodeType () { return $this->_smtpsTransEncodeTypes[$this->_smtpsTransEncodeType]; } -// ** Message Construction + // ** Message Construction - /** - * Method public void setFrom( string ) - * - * FROM Address from which mail will be sent - * - * @name setFrom() - * - * @uses Class property $_msgFrom - * @final - * @access public - * - * @since 1.0 - * - * @param string $_msgFrom Address from which mail will be sent - * @return void - * - */ + /** + * Method public void setFrom( string ) + * + * FROM Address from which mail will be sent + * + * @name setFrom() + * + * @uses Class property $_msgFrom + * @final + * @access public + * + * @since 1.0 + * + * @param string $_msgFrom Address from which mail will be sent + * @return void + * + */ function setFrom ( $_strFrom ) { if ( $_strFrom ) - $this->_msgFrom = $this->_strip_email ( $_strFrom ); + $this->_msgFrom = $this->_strip_email ( $_strFrom ); } - /** - * Method public string getFrom( void ) - * - * Retrieves the Address from which mail will be sent - * - * @name getFrom() - * - * @uses Class property $_msgFrom - * @final - * @access public - * - * @since 1.0 - * - * @param boolean $_strip To "strip" 'Real name' from address - * @return string $_msgFrom Address from which mail will be sent - * - */ + /** + * Method public string getFrom( void ) + * + * Retrieves the Address from which mail will be sent + * + * @name getFrom() + * + * @uses Class property $_msgFrom + * @final + * @access public + * + * @since 1.0 + * + * @param boolean $_strip To "strip" 'Real name' from address + * @return string $_msgFrom Address from which mail will be sent + * + */ function getFrom ( $_part = true ) { $_retValue = ''; if ( $_part === true ) - $_retValue = $this->_msgFrom; + $_retValue = $this->_msgFrom; else - $_retValue = $this->_msgFrom[$_part]; + $_retValue = $this->_msgFrom[$_part]; return $_retValue; } - /** - * Method private array _buildAddrList( void ) - * - * Inserts given addresses into structured format. - * This method takes a list of given addresses, via an array - * or a COMMA delimted string, and inserts them into a highly - * structured array. This array is designed to remove duplicate - * addresses and to sort them by Domain. - * - * @name _buildAddrList() - * - * @uses Class property $_msgRecipients - * @final - * @access private - * - * @since 1.0 - * - * @param string $_type TO, CC, or BCC lists to add addrresses into - * @param mixed $_addrList Array or COMMA delimited string of addresses - * @return void - * - */ + /** + * Method private array _buildAddrList( void ) + * + * Inserts given addresses into structured format. + * This method takes a list of given addresses, via an array + * or a COMMA delimted string, and inserts them into a highly + * structured array. This array is designed to remove duplicate + * addresses and to sort them by Domain. + * + * @name _buildAddrList() + * + * @uses Class property $_msgRecipients + * @final + * @access private + * + * @since 1.0 + * + * @param string $_type TO, CC, or BCC lists to add addrresses into + * @param mixed $_addrList Array or COMMA delimited string of addresses + * @return void + * + */ function _buildAddrList( $_type, $_addrList ) { // Pull existing list @@ -1431,12 +1436,12 @@ class SMTPs { // This could be a COMMA delimited string if ( strstr ($_addrList, ',') ) - // "explode "list" into an array - $_addrList = explode ( ',', $_addrList ); + // "explode "list" into an array + $_addrList = explode ( ',', $_addrList ); // Stick it in an array else - $_addrList = array($_addrList); + $_addrList = array($_addrList); } // take the array of addresses and split them further @@ -1474,34 +1479,34 @@ class SMTPs $this->_msgRecipients = $aryHost; } - /** - * Method private array _strip_email( string ) - * - * Returns an array of the various parts of an email address - * - * This assumes a well formed address: - * - "Real name" - * - "Real Name" is optional - * - if "Real Name" does not exist, the angle brackets are optional - * - * This will split an email address into 4 or 5 parts. - * - $_aryEmail[org] = orignal string - * - $_aryEmail[real] = "real name" - if there is one - * - $_aryEmail[addr] = address part "username@domain.tld" - * - $_aryEmail[host] = "domain.tld" - * - $_aryEmail[user] = "userName" - * - * @name _strip_email() - * - * @final - * @access private - * - * @since 1.0 - * - * @param void - * @return array $_aryEmail An array of the various parts of an email address - * - */ + /** + * Method private array _strip_email( string ) + * + * Returns an array of the various parts of an email address + * + * This assumes a well formed address: + * - "Real name" + * - "Real Name" is optional + * - if "Real Name" does not exist, the angle brackets are optional + * + * This will split an email address into 4 or 5 parts. + * - $_aryEmail[org] = orignal string + * - $_aryEmail[real] = "real name" - if there is one + * - $_aryEmail[addr] = address part "username@domain.tld" + * - $_aryEmail[host] = "domain.tld" + * - $_aryEmail[user] = "userName" + * + * @name _strip_email() + * + * @final + * @access private + * + * @since 1.0 + * + * @param void + * @return array $_aryEmail An array of the various parts of an email address + * + */ function _strip_email ( $_strAddr ) { // Keep the orginal @@ -1521,12 +1526,12 @@ class SMTPs { // We may not really have a "Real Name" if ( $_tmpAry[0]) - $_aryEmail['real'] = trim ( $_tmpAry[0], ' ">' ); + $_aryEmail['real'] = trim ( $_tmpAry[0], ' ">' ); $_aryEmail['addr'] = $_tmpAry[1]; } else - $_aryEmail['addr'] = $_tmpAry[0]; + $_aryEmail['addr'] = $_tmpAry[0]; // Pull User Name and Host.tld apart list($_aryEmail['user'], $_aryEmail['host'] ) = explode ( '@', $_aryEmail['addr'] ); @@ -1537,42 +1542,42 @@ class SMTPs return $_aryEmail; } - /** - * Method public array get_RCPT_list( void ) - * - * Returns an array of bares addresses for use with 'RCPT TO:' - * - * This is a "build as you go" method. Each time this method is called - * the underlaying array is destroyed and reconstructed. - * - * @name get_RCPT_list() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return array $_RCPT_list Returns an array of bares addresses - * - */ + /** + * Method public array get_RCPT_list( void ) + * + * Returns an array of bares addresses for use with 'RCPT TO:' + * + * This is a "build as you go" method. Each time this method is called + * the underlaying array is destroyed and reconstructed. + * + * @name get_RCPT_list() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return array $_RCPT_list Returns an array of bares addresses + * + */ function get_RCPT_list() { - /** - * Variable local array $_RCPT_list - * - * An array of bares addresses for use with 'RCPT TO:' - * - * Reset this array each time this method is called. - * - * @var array $_RCPT_list 'RCPT TO:' address list - * @access private - * @static - * @final - * - * @since 1.8 - */ + /** + * Variable local array $_RCPT_list + * + * An array of bares addresses for use with 'RCPT TO:' + * + * Reset this array each time this method is called. + * + * @var array $_RCPT_list 'RCPT TO:' address list + * @access private + * @static + * @final + * + * @since 1.8 + */ unset ( $_RCPT_list ); // walk down Recipients array and pull just email addresses @@ -1591,23 +1596,23 @@ class SMTPs return $_RCPT_list; } - /** - * Method public array get_email_list( string ) - * - * Returns an array of addresses for a specific type; TO, CC or BCC - * - * @name get_email_list() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param mixed $_which Which collection of adresses to return - * @return array $_RCPT_list Array of emaill address - * - */ + /** + * Method public array get_email_list( string ) + * + * Returns an array of addresses for a specific type; TO, CC or BCC + * + * @name get_email_list() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param mixed $_which Which collection of adresses to return + * @return array $_RCPT_list Array of emaill address + * + */ function get_email_list( $_which = null ) { // We need to know which address segment to pull @@ -1616,7 +1621,7 @@ class SMTPs // Make sure we have addresses to process if ( $this->_msgRecipients ) { - $_RCPT_list=array(); + $_RCPT_list=array(); // walk down Recipients array and pull just email addresses foreach ( $this->_msgRecipients as $_host => $_list ) { @@ -1627,11 +1632,11 @@ class SMTPs if ( $_realName ) // DOL_CHANGE FIX { $_realName = '"' . $_realName . '"'; - $_RCPT_list[] = $_realName . ' <' . $_addr . '@' . $_host . '>'; + $_RCPT_list[] = $_realName . ' <' . $_addr . '@' . $_host . '>'; } else { - $_RCPT_list[] = $_addr . '@' . $_host; + $_RCPT_list[] = $_addr . '@' . $_host; } } } @@ -1653,220 +1658,220 @@ class SMTPs } - /** - * Method public void setTO( string ) - * - * TO Address[es] inwhich to send mail to - * - * @name setTO() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param mixed $_addrTo TO Address[es] inwhich to send mail to - * @return void - * - */ + /** + * Method public void setTO( string ) + * + * TO Address[es] inwhich to send mail to + * + * @name setTO() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param mixed $_addrTo TO Address[es] inwhich to send mail to + * @return void + * + */ function setTO ( $_addrTo ) { if ( $_addrTo ) - $this->_buildAddrList( 'to', $_addrTo ); + $this->_buildAddrList( 'to', $_addrTo ); } - /** - * Method public string getTo( void ) - * - * Retrieves the TO Address[es] inwhich to send mail to - * - * @name getTo() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_msgRecipients TO Address[es] inwhich to send mail to - * - */ + /** + * Method public string getTo( void ) + * + * Retrieves the TO Address[es] inwhich to send mail to + * + * @name getTo() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_msgRecipients TO Address[es] inwhich to send mail to + * + */ function getTo () { return $this->get_email_list( 'to' ); } - /** - * Method public void setCC( string ) - * - * CC Address[es] inwhich to send mail to - * - * @name setCC() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param string $_msgRecipients CC Address[es] inwhich to send mail to - * @return void - * - */ + /** + * Method public void setCC( string ) + * + * CC Address[es] inwhich to send mail to + * + * @name setCC() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param string $_msgRecipients CC Address[es] inwhich to send mail to + * @return void + * + */ function setCC ( $_strCC ) { if ( $_strCC ) - $this->_buildAddrList( 'cc', $_strCC ); + $this->_buildAddrList( 'cc', $_strCC ); } - /** - * Method public string getCC( void ) - * - * Retrieves the CC Address[es] inwhich to send mail to - * - * @name getCC() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_msgRecipients CC Address[es] inwhich to send mail to - * - */ + /** + * Method public string getCC( void ) + * + * Retrieves the CC Address[es] inwhich to send mail to + * + * @name getCC() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_msgRecipients CC Address[es] inwhich to send mail to + * + */ function getCC () { return $this->get_email_list( 'cc' ); } - /** - * Method public void setBCC( string ) - * - * BCC Address[es] inwhich to send mail to - * - * @name setBCC() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param string $_msgRecipients BCC Address[es] inwhich to send mail to - * @return void - * - */ + /** + * Method public void setBCC( string ) + * + * BCC Address[es] inwhich to send mail to + * + * @name setBCC() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param string $_msgRecipients BCC Address[es] inwhich to send mail to + * @return void + * + */ function setBCC ( $_strBCC ) { if ( $_strBCC ) - $this->_buildAddrList( 'bcc', $_strBCC ); + $this->_buildAddrList( 'bcc', $_strBCC ); } - /** - * Method public string getBCC( void ) - * - * Retrieves the BCC Address[es] inwhich to send mail to - * - * @name getBCC() - * - * @uses Class property $_msgRecipients - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_msgRecipients BCC Address[es] inwhich to send mail to - * - */ + /** + * Method public string getBCC( void ) + * + * Retrieves the BCC Address[es] inwhich to send mail to + * + * @name getBCC() + * + * @uses Class property $_msgRecipients + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_msgRecipients BCC Address[es] inwhich to send mail to + * + */ function getBCC () { return $this->get_email_list( 'bcc' ); } - /** - * Method public void setSubject( string ) - * - * Message Subject - * - * @name setSubject() - * - * @uses Class property $_msgSubject - * @final - * @access public - * - * @since 1.0 - * - * @param string $_msgSubject Message Subject - * @return void - * - */ + /** + * Method public void setSubject( string ) + * + * Message Subject + * + * @name setSubject() + * + * @uses Class property $_msgSubject + * @final + * @access public + * + * @since 1.0 + * + * @param string $_msgSubject Message Subject + * @return void + * + */ function setSubject ( $_strSubject = '' ) { if ( $_strSubject ) - $this->_msgSubject = $_strSubject; + $this->_msgSubject = $_strSubject; } - /** - * Method public string getSubject( void ) - * - * Retrieves the Message Subject - * - * @name getSubject() - * - * @uses Class property $_msgSubject - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_msgSubject Message Subject - * - */ + /** + * Method public string getSubject( void ) + * + * Retrieves the Message Subject + * + * @name getSubject() + * + * @uses Class property $_msgSubject + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_msgSubject Message Subject + * + */ function getSubject () { return $this->_msgSubject; } - /** - * Method public string getHeader( void ) - * - * Constructes and returns message header - * - * @name getHeader() - * - * @uses Class method getFrom() The FROM address - * @uses Class method getTO() The TO address[es] - * @uses Class method getCC() The CC address[es] - * @uses Class method getBCC() The BCC address[es] - * @uses Class method getSubject() The Message Subject - * @uses Class method getSensitivity() Message Sensitivity - * @uses Class method getPriority() Message Priority - * - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string Complete message header - * - */ + /** + * Method public string getHeader( void ) + * + * Constructes and returns message header + * + * @name getHeader() + * + * @uses Class method getFrom() The FROM address + * @uses Class method getTO() The TO address[es] + * @uses Class method getCC() The CC address[es] + * @uses Class method getBCC() The BCC address[es] + * @uses Class method getSubject() The Message Subject + * @uses Class method getSensitivity() Message Sensitivity + * @uses Class method getPriority() Message Priority + * + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string Complete message header + * + */ function getHeader() { $_header = 'From: ' . $this->getFrom( 'org' ) . "\r\n" - . 'To: ' . $this->getTO() . "\r\n"; + . 'To: ' . $this->getTO() . "\r\n"; if ( $this->getCC() ) - $_header .= 'Cc: ' . $this->getCC() . "\r\n"; + $_header .= 'Cc: ' . $this->getCC() . "\r\n"; if ( $this->getBCC() ) - $_header .= 'Bcc: ' . $this->getBCC() . "\r\n"; + $_header .= 'Bcc: ' . $this->getBCC() . "\r\n"; $host=$this->getHost(); $host=preg_replace('@tcp://@i','',$host); // Remove prefix @@ -1874,89 +1879,89 @@ class SMTPs //NOTE: Message-ID should probably contain the username of the user who sent the msg $_header .= 'Subject: ' . $this->getSubject() . "\r\n" - . 'Date: ' . date("r") . "\r\n" - . 'Message-ID: <' . time() . '.SMTPs@' . $host . ">\r\n"; -// . 'Read-Receipt-To: ' . $this->getFrom( 'org' ) . "\r\n" -// . 'Return-Receipt-To: ' . $this->getFrom( 'org' ) . "\r\n"; + . 'Date: ' . date("r") . "\r\n" + . 'Message-ID: <' . time() . '.SMTPs@' . $host . ">\r\n"; + // . 'Read-Receipt-To: ' . $this->getFrom( 'org' ) . "\r\n" + // . 'Return-Receipt-To: ' . $this->getFrom( 'org' ) . "\r\n"; if ( $this->getSensitivity() ) - $_header .= 'Sensitivity: ' . $this->getSensitivity() . "\r\n"; + $_header .= 'Sensitivity: ' . $this->getSensitivity() . "\r\n"; if ( $this->_msgPriority != 3 ) - $_header .= $this->getPriority(); + $_header .= $this->getPriority(); // DOL_CHANGE LDR - if ( $this->getDeliveryReceipt() ) - $_header .= 'Disposition-Notification-To: '.$this->getFrom('addr') . "\r\n"; - if ( $this->getErrorsTo() ) - $_header .= 'Errors-To: '.$this->getErrorsTo('addr') . "\r\n"; + if ( $this->getDeliveryReceipt() ) + $_header .= 'Disposition-Notification-To: '.$this->getFrom('addr') . "\r\n"; + if ( $this->getErrorsTo() ) + $_header .= 'Errors-To: '.$this->getErrorsTo('addr') . "\r\n"; - $_header .= 'X-Mailer: Dolibarr version ' . DOL_VERSION .' (using SMTPs Mailer)' . "\r\n" - . 'Mime-Version: 1.0' . "\r\n"; + $_header .= 'X-Mailer: Dolibarr version ' . DOL_VERSION .' (using SMTPs Mailer)' . "\r\n" + . 'Mime-Version: 1.0' . "\r\n"; return $_header; } - /** - * Method public void setBodyContent( string, string ) - * - * Message Content - * - * @name setBodyContent() - * - * @uses Class property $_msgContent - * @final - * @access public - * - * @since 1.0 - * - * @param string $_msgContent Message Content - * @return void - * - */ + /** + * Method public void setBodyContent( string, string ) + * + * Message Content + * + * @name setBodyContent() + * + * @uses Class property $_msgContent + * @final + * @access public + * + * @since 1.0 + * + * @param string $_msgContent Message Content + * @return void + * + */ function setBodyContent ( $strContent, $strType = 'plain' ) { //if ( $strContent ) //{ - if ( $strType == 'html' ) - $strMimeType = 'text/html'; - else - $strMimeType = 'text/plain'; + if ( $strType == 'html' ) + $strMimeType = 'text/html'; + else + $strMimeType = 'text/plain'; - // Make RFC821 Compliant, replace bare linefeeds - $strContent = preg_replace("/(?_msgContent[$strType] = array(); + $this->_msgContent[$strType] = array(); - $this->_msgContent[$strType]['mimeType'] = $strMimeType; - $this->_msgContent[$strType]['data'] = $strContent; + $this->_msgContent[$strType]['mimeType'] = $strMimeType; + $this->_msgContent[$strType]['data'] = $strContent; - if ( $this->getMD5flag() ) - $this->_msgContent[$strType]['md5'] = md5($strContent); + if ( $this->getMD5flag() ) + $this->_msgContent[$strType]['md5'] = md5($strContent); //} } - /** - * Method public string getBodyContent( void ) - * - * Retrieves the Message Content - * - * @name getBodyContent() - * - * @uses Class property $_msgContent - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_msgContent Message Content - * - */ + /** + * Method public string getBodyContent( void ) + * + * Retrieves the Message Content + * + * @name getBodyContent() + * + * @uses Class property $_msgContent + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_msgContent Message Content + * + */ function getBodyContent () { // Generate a new Boundary string @@ -1970,7 +1975,7 @@ class SMTPs // If we have ZERO, we have a problem if( $keyCount === 0 ) - die ( "Sorry, no content" ); + die ( "Sorry, no content" ); // If we have ONE, we can use the simple format else if( $keyCount === 1 ) @@ -1979,15 +1984,15 @@ class SMTPs $_msgData = $_msgData[$_types[0]]; $content = 'Content-Type: ' . $_msgData['mimeType'] . '; charset="' . $this->getCharSet() . '"' . "\r\n" - . 'Content-Transfer-Encoding: ' . $this->getTransEncodeType() . "\r\n" - . 'Content-Disposition: inline' . "\r\n" - . 'Content-Description: message' . "\r\n"; + . 'Content-Transfer-Encoding: ' . $this->getTransEncodeType() . "\r\n" + . 'Content-Disposition: inline' . "\r\n" + . 'Content-Description: message' . "\r\n"; if ( $this->getMD5flag() ) - $content .= 'Content-MD5: ' . $_msgData['md5'] . "\r\n"; + $content .= 'Content-MD5: ' . $_msgData['md5'] . "\r\n"; $content .= "\r\n" - . $_msgData['data'] . "\r\n"; + . $_msgData['data'] . "\r\n"; } // If we have more than ONE, we use the multi-part format @@ -1997,17 +2002,17 @@ class SMTPs // We need to define a content message Boundary // NOTE: This was 'multipart/alternative', but Windows based // mail servers have issues with this. - /* + /* * @TODO Investigate "nested" boundary message parts */ //$content = 'Content-Type: multipart/related; boundary="' . $this->_getBoundary() . '"' . "\r\n"; $content = 'Content-Type: multipart/mixed; boundary="' . $this->_getBoundary() . '"' . "\r\n"; -// TODO Restore -// . "\r\n" -// . 'This is a multi-part message in MIME format.' . "\r\n"; - $content .= "Content-Transfer-Encoding: 8bit" . "\r\n"; - $content .= "\r\n"; + // TODO Restore + // . "\r\n" + // . 'This is a multi-part message in MIME format.' . "\r\n"; + $content .= "Content-Transfer-Encoding: 8bit" . "\r\n"; + $content .= "\r\n"; // Loop through message content array foreach ($this->_msgContent as $type => $_content ) @@ -2018,19 +2023,19 @@ class SMTPs foreach ( $_content as $_file => $_data ) { - // TODO Restore "\r\n" - $content .= "--" . $this->_getBoundary() . "\r\n" - . 'Content-Disposition: attachment; filename="' . $_data['fileName'] . '"' . "\r\n" - . 'Content-Type: ' . $_data['mimeType'] . '; name="' . $_data['fileName'] . '"' . "\r\n" - . 'Content-Transfer-Encoding: base64' . "\r\n" - . 'Content-Description: File Attachment' . "\r\n"; + // TODO Restore "\r\n" + $content .= "--" . $this->_getBoundary() . "\r\n" + . 'Content-Disposition: attachment; filename="' . $_data['fileName'] . '"' . "\r\n" + . 'Content-Type: ' . $_data['mimeType'] . '; name="' . $_data['fileName'] . '"' . "\r\n" + . 'Content-Transfer-Encoding: base64' . "\r\n" + . 'Content-Description: File Attachment' . "\r\n"; if ( $this->getMD5flag() ) - $content .= 'Content-MD5: ' . $_data['md5'] . "\r\n"; + $content .= 'Content-MD5: ' . $_data['md5'] . "\r\n"; $content .= "\r\n" - . $_data['data'] . "\r\n" - . "\r\n"; + . $_data['data'] . "\r\n" + . "\r\n"; } } // DOL_CHANGE LDR @@ -2039,74 +2044,74 @@ class SMTPs // loop through all images foreach ( $_content as $_image => $_data ) { - // TODO Restore "\r\n" - $content .= "--" . $this->_getBoundary() . "\r\n"; + // TODO Restore "\r\n" + $content .= "--" . $this->_getBoundary() . "\r\n"; $content .= 'Content-Type: ' . $_data['mimeType'] . '; name="' . $_data['imageName'] . '"' . "\r\n" - . 'Content-Transfer-Encoding: base64' . "\r\n" - . 'Content-Disposition: inline; filename="' . $_data['imageName'] . '"' . "\r\n" - . 'Content-ID: <' . $_data['cid'] . '> ' . "\r\n"; + . 'Content-Transfer-Encoding: base64' . "\r\n" + . 'Content-Disposition: inline; filename="' . $_data['imageName'] . '"' . "\r\n" + . 'Content-ID: <' . $_data['cid'] . '> ' . "\r\n"; if ( $this->getMD5flag() ) - $content .= 'Content-MD5: ' . $_data['md5'] . "\r\n"; + $content .= 'Content-MD5: ' . $_data['md5'] . "\r\n"; $content .= "\r\n" - . $_data['data'] . "\r\n"; + . $_data['data'] . "\r\n"; } } else { // TODO Restore "\r\n" - $content .= "--" . $this->_getBoundary() . "\r\n" - . 'Content-Type: ' . $_content['mimeType'] . '; ' -// . 'charset="' . $this->getCharSet() . '"'; - . 'charset=' . $this->getCharSet() . ''; + $content .= "--" . $this->_getBoundary() . "\r\n" + . 'Content-Type: ' . $_content['mimeType'] . '; ' + // . 'charset="' . $this->getCharSet() . '"'; + . 'charset=' . $this->getCharSet() . ''; -// TODO Restore -// $content .= ( $type == 'html') ? '; name="HTML Part"' : ''; + // TODO Restore + // $content .= ( $type == 'html') ? '; name="HTML Part"' : ''; $content .= "\r\n"; -// $content .= 'Content-Transfer-Encoding: '; -// $content .= ( $type == 'html') ? 'quoted-printable' : $this->getTransEncodeType(); -// $content .= "\r\n" -// . 'Content-Disposition: inline' . "\r\n" -// . 'Content-Description: ' . $type . ' message' . "\r\n"; + // $content .= 'Content-Transfer-Encoding: '; + // $content .= ( $type == 'html') ? 'quoted-printable' : $this->getTransEncodeType(); + // $content .= "\r\n" + // . 'Content-Disposition: inline' . "\r\n" + // . 'Content-Description: ' . $type . ' message' . "\r\n"; if ( $this->getMD5flag() ) - $content .= 'Content-MD5: ' . $_content['md5'] . "\r\n"; + $content .= 'Content-MD5: ' . $_content['md5'] . "\r\n"; $content .= "\r\n" - . $_content['data'] . "\r\n" - . "\r\n"; + . $_content['data'] . "\r\n" + . "\r\n"; } } // Close message boundries -// $content .= "\r\n--" . $this->_getBoundary() . '--' . "\r\n" ; + // $content .= "\r\n--" . $this->_getBoundary() . '--' . "\r\n" ; $content .= "--" . $this->_getBoundary() . '--' . "\r\n" ; } return $content; } - /** - * Method public void setAttachment( string, string, string ) - * - * File attachments are added to the content array as sub-arrays, - * allowing for multiple attachments for each outbound email - * - * @name setBodyContent() - * - * @final - * @access public - * - * @since 1.0 - * - * @param string $strContent File data to attach to message - * @param string $strFileName File Name to give to attachment - * @param string $strMimeType File Mime Type of attachment - * @return void - * - */ + /** + * Method public void setAttachment( string, string, string ) + * + * File attachments are added to the content array as sub-arrays, + * allowing for multiple attachments for each outbound email + * + * @name setBodyContent() + * + * @final + * @access public + * + * @since 1.0 + * + * @param string $strContent File data to attach to message + * @param string $strFileName File Name to give to attachment + * @param string $strMimeType File Mime Type of attachment + * @return void + * + */ function setAttachment ( $strContent, $strFileName = 'unknown', $strMimeType = 'unknown' ) { if ( $strContent ) @@ -2118,7 +2123,7 @@ class SMTPs $this->_msgContent['attachment'][$strFileName]['data'] = $strContent; if ( $this->getMD5flag() ) - $this->_msgContent['attachment'][$strFileName]['md5'] = md5($strContent); + $this->_msgContent['attachment'][$strFileName]['md5'] = md5($strContent); } } @@ -2140,268 +2145,268 @@ class SMTPs { if ( $strContent ) { - $this->_msgContent['image'][$strImageName]['mimeType'] = $strMimeType; - $this->_msgContent['image'][$strImageName]['imageName'] = $strImageName; - $this->_msgContent['image'][$strImageName]['cid'] = $strImageCid; - $this->_msgContent['image'][$strImageName]['data'] = $strContent; + $this->_msgContent['image'][$strImageName]['mimeType'] = $strMimeType; + $this->_msgContent['image'][$strImageName]['imageName'] = $strImageName; + $this->_msgContent['image'][$strImageName]['cid'] = $strImageCid; + $this->_msgContent['image'][$strImageName]['data'] = $strContent; - if ( $this->getMD5flag() ) - $this->_msgContent['image'][$strFileName]['md5'] = md5($strContent); + if ( $this->getMD5flag() ) + $this->_msgContent['image'][$strFileName]['md5'] = md5($strContent); } } // END DOL_CHANGE LDR - /** - * Method public void setSensitivity( string ) - * - * Message Content Sensitivity - * Message Sensitivity values: - * - [0] None - default - * - [1] Personal - * - [2] Private - * - [3] Company Confidential - * - * @name setSensitivity() - * - * @uses Class property $_msgSensitivity - * @final - * @access public - * - * @since 1.0 - * - * @param string $_value Message Sensitivity - * @return void - * - */ + /** + * Method public void setSensitivity( string ) + * + * Message Content Sensitivity + * Message Sensitivity values: + * - [0] None - default + * - [1] Personal + * - [2] Private + * - [3] Company Confidential + * + * @name setSensitivity() + * + * @uses Class property $_msgSensitivity + * @final + * @access public + * + * @since 1.0 + * + * @param string $_value Message Sensitivity + * @return void + * + */ function setSensitivity ( $_value = 0 ) { if ( ( is_numeric ($_value) ) && - ( ( $_value >= 0 ) && ( $_value <= 3 ) ) ) - $this->_msgSensitivity = $_value; + ( ( $_value >= 0 ) && ( $_value <= 3 ) ) ) + $this->_msgSensitivity = $_value; } - /** - * Method public string getSensitivity( void ) - * - * Returns Message Content Sensitivity string - * Message Sensitivity values: - * - [0] None - default - * - [1] Personal - * - [2] Private - * - [3] Company Confidential - * - * @name getSensitivity() - * - * @uses Class property $_msgSensitivity - * @uses Class property $_arySensitivity - * @final - * @access public - * - * @since 1.0 - * - * @param string $_msgSensitivity Message Sensitivity - * @return void - * - */ + /** + * Method public string getSensitivity( void ) + * + * Returns Message Content Sensitivity string + * Message Sensitivity values: + * - [0] None - default + * - [1] Personal + * - [2] Private + * - [3] Company Confidential + * + * @name getSensitivity() + * + * @uses Class property $_msgSensitivity + * @uses Class property $_arySensitivity + * @final + * @access public + * + * @since 1.0 + * + * @param string $_msgSensitivity Message Sensitivity + * @return void + * + */ function getSensitivity() { return $this->_arySensitivity[$this->_msgSensitivity]; } - /** - * Method public void setPriority( int ) - * - * Message Content Priority - * Message Priority values: - * - [0] 'Bulk' - * - [1] 'Highest' - * - [2] 'High' - * - [3] 'Normal' - default - * - [4] 'Low' - * - [5] 'Lowest' - * - * @name setPriority() - * - * @uses Class property $_msgPriority - * @final - * @access public - * - * @since 1.0 - * - * @param string $_value Message Priority - * @return void - * - */ + /** + * Method public void setPriority( int ) + * + * Message Content Priority + * Message Priority values: + * - [0] 'Bulk' + * - [1] 'Highest' + * - [2] 'High' + * - [3] 'Normal' - default + * - [4] 'Low' + * - [5] 'Lowest' + * + * @name setPriority() + * + * @uses Class property $_msgPriority + * @final + * @access public + * + * @since 1.0 + * + * @param string $_value Message Priority + * @return void + * + */ function setPriority ( $_value = 3 ) { if ( ( is_numeric ($_value) ) && - ( ( $_value >= 0 ) && ( $_value <= 5 ) ) ) - $this->_msgPriority = $_value; + ( ( $_value >= 0 ) && ( $_value <= 5 ) ) ) + $this->_msgPriority = $_value; } - /** - * Method public string getPriority( void ) - * - * Message Content Priority - * Message Priority values: - * - [0] 'Bulk' - * - [1] 'Highest' - * - [2] 'High' - * - [3] 'Normal' - default - * - [4] 'Low' - * - [5] 'Lowest' - * - * @name getPriority() - * - * @uses Class property $_msgPriority - * @uses Class property $_aryPriority - * @final - * @access public - * - * @since 1.0 - * - * @param string $_value Message Priority - * @return void - * - */ + /** + * Method public string getPriority( void ) + * + * Message Content Priority + * Message Priority values: + * - [0] 'Bulk' + * - [1] 'Highest' + * - [2] 'High' + * - [3] 'Normal' - default + * - [4] 'Low' + * - [5] 'Lowest' + * + * @name getPriority() + * + * @uses Class property $_msgPriority + * @uses Class property $_aryPriority + * @final + * @access public + * + * @since 1.0 + * + * @param string $_value Message Priority + * @return void + * + */ function getPriority() { return 'Importance: ' . $this->_aryPriority[$this->_msgPriority] . "\r\n" - . 'Priority: ' . $this->_aryPriority[$this->_msgPriority] . "\r\n" - . 'X-Priority: ' . $this->_msgPriority . ' (' . $this->_aryPriority[$this->_msgPriority] . ')' . "\r\n"; + . 'Priority: ' . $this->_aryPriority[$this->_msgPriority] . "\r\n" + . 'X-Priority: ' . $this->_msgPriority . ' (' . $this->_aryPriority[$this->_msgPriority] . ')' . "\r\n"; } - /** - * Method public void setMD5flag( boolean ) - * - * Set flag which determines whether to calculate message MD5 checksum. - * - * @name setMD5flag() - * - * @uses Class property $_smtpMD5 - * @final - * @access public - * - * @since 1.14 - * - * @param string $_value Message Priority - * @return void - * - */ + /** + * Method public void setMD5flag( boolean ) + * + * Set flag which determines whether to calculate message MD5 checksum. + * + * @name setMD5flag() + * + * @uses Class property $_smtpMD5 + * @final + * @access public + * + * @since 1.14 + * + * @param string $_value Message Priority + * @return void + * + */ function setMD5flag ( $_flag = false ) { $this->_smtpMD5 = $_flag; } - /** - * Method public boolean getMD5flag( void ) - * - * Gets flag which determines whether to calculate message MD5 checksum. - * - * @name getMD5flag() - * - * @uses Class property $_smtpMD5 - * @final - * @access public - * - * @since 1.14 - * - * @param void - * @return string $_value Message Priority - * - */ + /** + * Method public boolean getMD5flag( void ) + * + * Gets flag which determines whether to calculate message MD5 checksum. + * + * @name getMD5flag() + * + * @uses Class property $_smtpMD5 + * @final + * @access public + * + * @since 1.14 + * + * @param void + * @return string $_value Message Priority + * + */ function getMD5flag ( ) { return $this->_smtpMD5; } - /** - * Method public void setXheader( string ) - * - * Message X-Header Content - * This is a simple "insert". Whatever is given will be placed - * "as is" into the Xheader array. - * - * @name setXheader() - * - * @uses Class property $_msgXheader - * @final - * @access public - * - * @since 1.0 - * - * @param string $strXdata Message X-Header Content - * @return void - * - */ + /** + * Method public void setXheader( string ) + * + * Message X-Header Content + * This is a simple "insert". Whatever is given will be placed + * "as is" into the Xheader array. + * + * @name setXheader() + * + * @uses Class property $_msgXheader + * @final + * @access public + * + * @since 1.0 + * + * @param string $strXdata Message X-Header Content + * @return void + * + */ function setXheader ( $strXdata ) { if ( $strXdata ) - $this->_msgXheader[] = $strXdata; + $this->_msgXheader[] = $strXdata; } - /** - * Method public string getXheader( void ) - * - * Retrieves the Message X-Header Content - * - * @name getXheader() - * - * @uses Class property $_msgContent - * @final - * @access public - * - * @since 1.0 - * - * @param void - * @return string $_msgContent Message X-Header Content - * - */ + /** + * Method public string getXheader( void ) + * + * Retrieves the Message X-Header Content + * + * @name getXheader() + * + * @uses Class property $_msgContent + * @final + * @access public + * + * @since 1.0 + * + * @param void + * @return string $_msgContent Message X-Header Content + * + */ function getXheader () { return $this->_msgXheader; } - /** - * Method private void _setBoundary( string ) - * - * Generates Random string for MIME message Boundary - * - * @name _setBoundary() - * - * @uses Class property $_smtpsBoundary - * @final - * @access private - * - * @since 1.0 - * - * @param void - * @return void - * - */ + /** + * Method private void _setBoundary( string ) + * + * Generates Random string for MIME message Boundary + * + * @name _setBoundary() + * + * @uses Class property $_smtpsBoundary + * @final + * @access private + * + * @since 1.0 + * + * @param void + * @return void + * + */ function _setBoundary() { $this->_smtpsBoundary = "multipart_x." . time() . ".x_boundary"; } - /** - * Method private string _getBoundary( void ) - * - * Retrieves the MIME message Boundary - * - * @name _getBoundary() - * - * @uses Class property $_smtpsBoundary - * @final - * @access private - * - * @since 1.0 - * - * @param void - * @return string $_smtpsBoundary MIME message Boundary - * - */ + /** + * Method private string _getBoundary( void ) + * + * Retrieves the MIME message Boundary + * + * @name _getBoundary() + * + * @uses Class property $_smtpsBoundary + * @final + * @access private + * + * @since 1.0 + * + * @param void + * @return string $_smtpsBoundary MIME message Boundary + * + */ function _getBoundary() { return $this->_smtpsBoundary; @@ -2413,16 +2418,16 @@ class SMTPs // function server_parse($socket, $response) { - /** - * Default return value - * - * Returns constructed SELECT Object string or boolean upon failure - * Default value is set at TRUE - * - * @var mixed $_retVal Indicates if Object was created or not - * @access private - * @static - */ + /** + * Default return value + * + * Returns constructed SELECT Object string or boolean upon failure + * Default value is set at TRUE + * + * @var mixed $_retVal Indicates if Object was created or not + * @access private + * @static + */ $_retVal = true; $server_response = ''; @@ -2447,58 +2452,58 @@ class SMTPs function socket_send_str ( $_strSend, $_returnCode = null, $CRLF = "\r\n" ) { - if ($this->_debug) $this->log.=$_strSend; // DOL_CHANGE LDR for log + if ($this->_debug) $this->log.=$_strSend; // DOL_CHANGE LDR for log fputs($this->socket, $_strSend . $CRLF); if ($this->_debug) $this->log.=' ('.$_returnCode.')' . $CRLF; if ( $_returnCode ) - return $this->server_parse($this->socket, $_returnCode); + return $this->server_parse($this->socket, $_returnCode); } -// ============================================================= -// ** Error handling methods + // ============================================================= + // ** Error handling methods - /** - * Method private void _setErr( int code, string message ) - * - * Defines errors codes and messages for Class - * - * @name _setErr() - * - * @uses Class property $_smtpsErrors - * @final - * @access private - * - * @since 1.8 - * - * @param int $_errNum Error Code Number - * @param string $_errMsg Error Message - * @return void - * - */ + /** + * Method private void _setErr( int code, string message ) + * + * Defines errors codes and messages for Class + * + * @name _setErr() + * + * @uses Class property $_smtpsErrors + * @final + * @access private + * + * @since 1.8 + * + * @param int $_errNum Error Code Number + * @param string $_errMsg Error Message + * @return void + * + */ function _setErr ( $_errNum, $_errMsg ) { $this->_smtpsErrors[] = array( 'num' => $_errNum, 'msg' => $_errMsg ); } - /** - * Method private string getErrors ( void ) - * - * Returns errors codes and messages for Class - * - * @name _setErr() - * - * @uses Class property $_smtpsErrors - * @final - * @access private - * - * @since 1.8 - * - * @param void - * @return string $_errMsg Error Message - * - */ + /** + * Method private string getErrors ( void ) + * + * Returns errors codes and messages for Class + * + * @name _setErr() + * + * @uses Class property $_smtpsErrors + * @final + * @access private + * + * @since 1.8 + * + * @param void + * @return string $_errMsg Error Message + * + */ function getErrors() { $_errMsg = array(); @@ -2512,205 +2517,208 @@ class SMTPs } -// ============================================================= + // ============================================================= } // end of Class // ============================================================= // ============================================================= // ** CSV Version Control Info - /** - * $Log: smtps.php,v $ - * Revision 1.1 2011/08/26 23:19:54 eldy - * Qual: smtps is not really an external project but now a specific dolibarr class file, so i moved it into core/class - * - * Revision 1.15 2011/07/12 22:19:02 eldy - * Fix: Attachment fails if content was empty - * - * Revision 1.14 2011/06/20 23:17:50 hregis - * Fix: use best structure of mail - * - * Revision 1.13 2010/04/13 20:58:37 eldy - * Fix: Can provide ip address on smtps. Better error reporting. - * - * Revision 1.12 2010/04/13 20:30:25 eldy - * Fix: Can provide ip address on smtps. Better error reporting. - * - * Revision 1.11 2010/01/12 13:02:07 hregis - * Fix: missing attach-files - * - * Revision 1.10 2009/11/01 14:16:30 eldy - * Fix: Sending mail with SMTPS was not working. - * - * Revision 1.9 2009/10/20 13:14:47 hregis - * Fix: function "split" is deprecated since php 5.3.0 - * - * Revision 1.8 2009/05/13 19:10:07 eldy - * New: Can use inline images.Everything seems to work with thunderbird and webmail gmail. New to be tested on other mail browsers. - * - * Revision 1.7 2009/05/13 14:49:30 eldy - * Fix: Make code so much simpler and solve a lot of problem with new version. - * - * Revision 1.2 2009/02/09 00:04:35 eldy - * Added support for SMTPS protocol - * - * Revision 1.1 2008/04/16 23:11:45 eldy - * New: Add action "Test server connectivity" - * - * Revision 1.18 2007/01/12 22:17:08 ongardie - * - Added full_http_site_root() to utils-misc.php - * - Made SMTPs' getError() easier to use - * - Improved activity modified emails - * - * Revision 1.17 2006/04/05 03:15:40 ongardie - * -Fixed method name typo that resulted in a fatal error. - * - * Revision 1.16 2006/03/08 04:05:25 jswalter - * - '$_smtpsTransEncode' was removed and '$_smtpsTransEncodeType' is now used - * - '$_smtpsTransEncodeType' is defaulted to ZERO - * - corrected 'setCharSet()' internal vars - * - defined '$_mailPath' - * - added '$_smtpMD5' as a class property - * - added 'setMD5flag()' to set above property - * - added 'getMD5flag()' to retrieve above property - * - 'setAttachment()' will add an MD5 checksum to attachements if above property is set - * - 'setBodyContent()' will add an MD5 checksum to message parts if above property is set - * - 'getBodyContent()' will insert the MD5 checksum for messages and attachments if above property is set - * - removed leading dashes from message boundry - * - added propery "Close message boundry" tomessage block - * - corrected some comments in various places - * - removed some incorrect comments in others - * - * Revision 1.15 2006/02/21 02:00:07 vanmer - * - patch to add support for sending to exim mail server - * - thanks to Diego Ongaro at ETSZONE (diego@etszone.com) - * - * Revision 1.14 2005/08/29 16:22:10 jswalter - * - change 'multipart/alternative' to 'multipart/mixed', but Windows based mail servers have issues with this. - * Bug 594 - * - * Revision 1.13 2005/08/21 01:57:30 vanmer - * - added initialization for array if no recipients exist - * - * Revision 1.12 2005/08/20 12:04:30 braverock - * - remove potentially binary characters from Message-ID - * - add getHost to get the hostname of the mailserver - * - @todo add username to Message-ID header - * - * Revision 1.11 2005/08/20 11:49:48 braverock - * - fix typos in boundary - * - remove potentially illegal characters from boundary - * - * Revision 1.10 2005/08/19 20:39:32 jswalter - * - added _server_connect()' as a seperate method to handle server connectivity. - * - added '_server_authenticate()' as a seperate method to handle server authentication. - * - 'sendMsg()' now uses the new methods to handle server communication. - * - modified 'server_parse()' and 'socket_send_str()' to give error codes and messages. - * - * Revision 1.9 2005/08/19 15:40:18 jswalter - * - IMPORTANT: 'setAttachement()' is now spelled correctly: 'setAttachment()' - * - added additional comment to several methods - * - added '$_smtpsTransEncodeTypes' array to limit encode types - * - added parameters to 'sendMsg()' for future development around debugging and logging - * - added error code within 'setConfig()' if the given path is not found - * - 'setTransportType()' now has parameter validation - * [this still is not implemented] - * - 'setPort()' now does parameter validation - * - 'setTransEncode()' now has parameter validation against '$_smtpsTransEncodeTypes' - * - modified 'get_email_list()' to handle error handling - * - 'setSensitivity()' now has parameter validation - * - 'setPriority()' now has parameter validation - * - * Revision 1.8 2005/06/24 21:00:20 jswalter - * - corrected comments - * - corrected the defualt value for 'setPriority()' - * - modified 'setAttachement()' to process multiple attachments correctly - * - modified 'getBodyContent()' to handle multiple attachments - * Bug 310 - * - * Revision 1.7 2005/05/19 21:12:34 braverock - * - replace chunk_split() with wordwrap() to fix funky wrapping of templates - * - * Revision 1.6 2005/04/25 04:55:06 jswalter - * - cloned from Master Version - * - * Revision 1.10 2005/04/25 04:54:10 walter - * - "fixed" 'getBodyContent()' to handle a "simple" text only message - * - * Revision 1.9 2005/04/25 03:52:01 walter - * - replace closing curly bracket. Removed it in last revision! - * - * Revision 1.8 2005/04/25 02:29:49 walter - * - added '$_transportType' and its getter/setter methods. - * for future use. NOT yet implemented. - * - in 'sendMsg()', added HOST validation check - * - added error check for initial Socket Connection - * - created new method 'socket_send_str()' to process socket - * communication in a unified means. Socket calls within - * 'sendMsg()' have been modified to use this new method. - * - expanded comments in 'setConfig()' - * - added "error" check on PHP ini file properties. If these - * properties not set within the INI file, the default values - * will be used. - * - modified 'get_RCPT_list()' to reset itself each time it is called - * - modified 'setBodyContent()' to store data in a sub-array for better - * parsing within the 'getBodyContent()' method - * - modified 'getBodyContent()' to process contents array better. - * Also modified to handle attachements. - * - added 'setAttachement()' so files and other data can be attached - * to messages - * - added '_setErr()' and 'getErrors()' as an attempt to begin an error - * handling process within this class - * - * Revision 1.7 2005/04/13 15:23:50 walter - * - made 'CC' a conditional insert - * - made 'BCC' a conditional insert - * - fixed 'Message-ID' - * - corrected 'getSensitivity()' - * - modified '$_aryPriority[]' to proper values - * - updated 'setConfig()' to handle external Ini or 'php.ini' - * - * Revision 1.6 2005/03/15 17:34:06 walter - * - corrected Message Sensitivity property and method comments - * - added array to Message Sensitivity - * - added getSensitivity() method to use new Sensitivity array - * - created seters and getter for Priority with new Prioity value array property - * - changed config file include from 'include_once' - * - modified getHeader() to ustilize new Message Sensitivity and Priorty properties - * - * Revision 1.5 2005/03/14 22:25:27 walter - * - added references - * - added Message sensitivity as a property with Getter/Setter methods - * - boundary is now a property with Getter/Setter methods - * - added 'builtRCPTlist()' - * - 'sendMsg()' now uses Object properties and methods to build message - * - 'setConfig()' to load external file - * - 'setForm()' will "strip" the email address out of "address" string - * - modifed 'getFrom()' to handle "striping" the email address - * - '_buildArrayList()' creates a multi-dimensional array of addresses - * by domain, TO, CC & BCC and then by User Name. - * - '_strip_email()' pulls email address out of "full Address" string' - * - 'get_RCPT_list()' pulls out "bare" emaill address form address array - * - 'getHeader()' builds message Header from Object properties - * - 'getBodyContent()' builds full messsage body, even multi-part - * - * Revision 1.4 2005/03/02 20:53:35 walter - * - core Setters & Getters defined - * - added additional Class Properties - * - * Revision 1.3 2005/03/02 18:51:51 walter - * - added base 'Class Properties' - * - * Revision 1.2 2005/03/01 19:37:52 walter - * - CVS logging tags - * - more comments - * - more "shell" - * - some constants - * - * Revision 1.1 2005/03/01 19:22:49 walter - * - initial commit - * - basic shell with some commets - * - */ +/** + * $Log: smtps.php,v $ + * Revision 1.2 2011/08/26 23:40:48 eldy + * Qual: vcard is not really an external project but now a specific dolibarr class file, so i moved it into core/class + * + * Revision 1.1 2011/08/26 23:19:54 eldy + * Qual: smtps is not really an external project but now a specific dolibarr class file, so i moved it into core/class + * + * Revision 1.15 2011/07/12 22:19:02 eldy + * Fix: Attachment fails if content was empty + * + * Revision 1.14 2011/06/20 23:17:50 hregis + * Fix: use best structure of mail + * + * Revision 1.13 2010/04/13 20:58:37 eldy + * Fix: Can provide ip address on smtps. Better error reporting. + * + * Revision 1.12 2010/04/13 20:30:25 eldy + * Fix: Can provide ip address on smtps. Better error reporting. + * + * Revision 1.11 2010/01/12 13:02:07 hregis + * Fix: missing attach-files + * + * Revision 1.10 2009/11/01 14:16:30 eldy + * Fix: Sending mail with SMTPS was not working. + * + * Revision 1.9 2009/10/20 13:14:47 hregis + * Fix: function "split" is deprecated since php 5.3.0 + * + * Revision 1.8 2009/05/13 19:10:07 eldy + * New: Can use inline images.Everything seems to work with thunderbird and webmail gmail. New to be tested on other mail browsers. + * + * Revision 1.7 2009/05/13 14:49:30 eldy + * Fix: Make code so much simpler and solve a lot of problem with new version. + * + * Revision 1.2 2009/02/09 00:04:35 eldy + * Added support for SMTPS protocol + * + * Revision 1.1 2008/04/16 23:11:45 eldy + * New: Add action "Test server connectivity" + * + * Revision 1.18 2007/01/12 22:17:08 ongardie + * - Added full_http_site_root() to utils-misc.php + * - Made SMTPs' getError() easier to use + * - Improved activity modified emails + * + * Revision 1.17 2006/04/05 03:15:40 ongardie + * -Fixed method name typo that resulted in a fatal error. + * + * Revision 1.16 2006/03/08 04:05:25 jswalter + * - '$_smtpsTransEncode' was removed and '$_smtpsTransEncodeType' is now used + * - '$_smtpsTransEncodeType' is defaulted to ZERO + * - corrected 'setCharSet()' internal vars + * - defined '$_mailPath' + * - added '$_smtpMD5' as a class property + * - added 'setMD5flag()' to set above property + * - added 'getMD5flag()' to retrieve above property + * - 'setAttachment()' will add an MD5 checksum to attachements if above property is set + * - 'setBodyContent()' will add an MD5 checksum to message parts if above property is set + * - 'getBodyContent()' will insert the MD5 checksum for messages and attachments if above property is set + * - removed leading dashes from message boundry + * - added propery "Close message boundry" tomessage block + * - corrected some comments in various places + * - removed some incorrect comments in others + * + * Revision 1.15 2006/02/21 02:00:07 vanmer + * - patch to add support for sending to exim mail server + * - thanks to Diego Ongaro at ETSZONE (diego@etszone.com) + * + * Revision 1.14 2005/08/29 16:22:10 jswalter + * - change 'multipart/alternative' to 'multipart/mixed', but Windows based mail servers have issues with this. + * Bug 594 + * + * Revision 1.13 2005/08/21 01:57:30 vanmer + * - added initialization for array if no recipients exist + * + * Revision 1.12 2005/08/20 12:04:30 braverock + * - remove potentially binary characters from Message-ID + * - add getHost to get the hostname of the mailserver + * - @todo add username to Message-ID header + * + * Revision 1.11 2005/08/20 11:49:48 braverock + * - fix typos in boundary + * - remove potentially illegal characters from boundary + * + * Revision 1.10 2005/08/19 20:39:32 jswalter + * - added _server_connect()' as a seperate method to handle server connectivity. + * - added '_server_authenticate()' as a seperate method to handle server authentication. + * - 'sendMsg()' now uses the new methods to handle server communication. + * - modified 'server_parse()' and 'socket_send_str()' to give error codes and messages. + * + * Revision 1.9 2005/08/19 15:40:18 jswalter + * - IMPORTANT: 'setAttachement()' is now spelled correctly: 'setAttachment()' + * - added additional comment to several methods + * - added '$_smtpsTransEncodeTypes' array to limit encode types + * - added parameters to 'sendMsg()' for future development around debugging and logging + * - added error code within 'setConfig()' if the given path is not found + * - 'setTransportType()' now has parameter validation + * [this still is not implemented] + * - 'setPort()' now does parameter validation + * - 'setTransEncode()' now has parameter validation against '$_smtpsTransEncodeTypes' + * - modified 'get_email_list()' to handle error handling + * - 'setSensitivity()' now has parameter validation + * - 'setPriority()' now has parameter validation + * + * Revision 1.8 2005/06/24 21:00:20 jswalter + * - corrected comments + * - corrected the defualt value for 'setPriority()' + * - modified 'setAttachement()' to process multiple attachments correctly + * - modified 'getBodyContent()' to handle multiple attachments + * Bug 310 + * + * Revision 1.7 2005/05/19 21:12:34 braverock + * - replace chunk_split() with wordwrap() to fix funky wrapping of templates + * + * Revision 1.6 2005/04/25 04:55:06 jswalter + * - cloned from Master Version + * + * Revision 1.10 2005/04/25 04:54:10 walter + * - "fixed" 'getBodyContent()' to handle a "simple" text only message + * + * Revision 1.9 2005/04/25 03:52:01 walter + * - replace closing curly bracket. Removed it in last revision! + * + * Revision 1.8 2005/04/25 02:29:49 walter + * - added '$_transportType' and its getter/setter methods. + * for future use. NOT yet implemented. + * - in 'sendMsg()', added HOST validation check + * - added error check for initial Socket Connection + * - created new method 'socket_send_str()' to process socket + * communication in a unified means. Socket calls within + * 'sendMsg()' have been modified to use this new method. + * - expanded comments in 'setConfig()' + * - added "error" check on PHP ini file properties. If these + * properties not set within the INI file, the default values + * will be used. + * - modified 'get_RCPT_list()' to reset itself each time it is called + * - modified 'setBodyContent()' to store data in a sub-array for better + * parsing within the 'getBodyContent()' method + * - modified 'getBodyContent()' to process contents array better. + * Also modified to handle attachements. + * - added 'setAttachement()' so files and other data can be attached + * to messages + * - added '_setErr()' and 'getErrors()' as an attempt to begin an error + * handling process within this class + * + * Revision 1.7 2005/04/13 15:23:50 walter + * - made 'CC' a conditional insert + * - made 'BCC' a conditional insert + * - fixed 'Message-ID' + * - corrected 'getSensitivity()' + * - modified '$_aryPriority[]' to proper values + * - updated 'setConfig()' to handle external Ini or 'php.ini' + * + * Revision 1.6 2005/03/15 17:34:06 walter + * - corrected Message Sensitivity property and method comments + * - added array to Message Sensitivity + * - added getSensitivity() method to use new Sensitivity array + * - created seters and getter for Priority with new Prioity value array property + * - changed config file include from 'include_once' + * - modified getHeader() to ustilize new Message Sensitivity and Priorty properties + * + * Revision 1.5 2005/03/14 22:25:27 walter + * - added references + * - added Message sensitivity as a property with Getter/Setter methods + * - boundary is now a property with Getter/Setter methods + * - added 'builtRCPTlist()' + * - 'sendMsg()' now uses Object properties and methods to build message + * - 'setConfig()' to load external file + * - 'setForm()' will "strip" the email address out of "address" string + * - modifed 'getFrom()' to handle "striping" the email address + * - '_buildArrayList()' creates a multi-dimensional array of addresses + * by domain, TO, CC & BCC and then by User Name. + * - '_strip_email()' pulls email address out of "full Address" string' + * - 'get_RCPT_list()' pulls out "bare" emaill address form address array + * - 'getHeader()' builds message Header from Object properties + * - 'getBodyContent()' builds full messsage body, even multi-part + * + * Revision 1.4 2005/03/02 20:53:35 walter + * - core Setters & Getters defined + * - added additional Class Properties + * + * Revision 1.3 2005/03/02 18:51:51 walter + * - added base 'Class Properties' + * + * Revision 1.2 2005/03/01 19:37:52 walter + * - CVS logging tags + * - more comments + * - more "shell" + * - some constants + * + * Revision 1.1 2005/03/01 19:22:49 walter + * - initial commit + * - basic shell with some commets + * + */ ?>