128 'Company Confidential');
231 private $_errorsTo =
'';
232 private $_deliveryReceipt = 0;
233 private $_trackId =
'';
234 private $_moreInHeader =
'';
260 $this->_deliveryReceipt = $_val;
270 return $this->_deliveryReceipt;
281 $this->_trackId = $_val;
292 $this->_moreinheader = $_val;
302 return $this->_trackId;
312 return $this->_moreinheader;
338 if ($_part ===
true) {
339 $_retValue = $this->_errorsTo;
341 $_retValue = $this->_errorsTo[$_part];
355 $this->_debug = $_vDebug;
366 $_aryToList = $this->getTO();
385 $usetls = preg_match(
'@tls://@i', $host);
387 $host = preg_replace(
'@tcp://@i',
'', $host);
388 $host = preg_replace(
'@ssl://@i',
'', $host);
389 $host = preg_replace(
'@tls://@i',
'', $host);
392 include_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
394 if ((!
is_ip($host)) && ((gethostbyname($host)) == $host)) {
395 $this->
_setErr(99, $host.
' is either offline or is an invalid host name.');
398 if (function_exists(
'stream_socket_client') && !empty($this->_options)) {
399 $socket_context = stream_context_create($this->_options);
400 $this->socket = @stream_socket_client(
401 preg_replace(
'@tls://@i',
'', $this->
getHost()).
406 STREAM_CLIENT_CONNECT,
410 $this->socket = @fsockopen(
411 preg_replace(
'@tls://@i',
'', $this->
getHost()),
420 if (is_resource($this->socket)) {
425 if (function_exists(
'stream_set_timeout')) {
426 stream_set_timeout($this->socket, $this->_smtpTimeout, 0);
430 if ($_retVal = $this->
server_parse($this->socket,
"220")) {
431 $_retVal = $this->socket;
436 if (empty($this->errstr)) {
437 $this->errstr =
'Failed to connect with fsockopen host='.$this->getHost().
' port='.$this->
getPort();
439 $this->
_setErr($this->errno, $this->errstr);
462 $usetls = preg_match(
'@tls://@i', $host);
464 $host = preg_replace(
'@tcp://@i',
'', $host);
465 $host = preg_replace(
'@ssl://@i',
'', $host);
466 $host = preg_replace(
'@tls://@i',
'', $host);
468 if ($usetls && !empty($conf->global->MAIN_SMTPS_ADD_TLS_TO_HOST_FOR_HELO)) {
469 $host =
'tls://'.$host;
474 if (!empty($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
475 if (!is_numeric($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
477 $hosth = $conf->global->MAIL_SMTP_USE_FROM_FOR_HELO;
481 $hosth = $this->
getFrom(
'addr');
482 $hosth = preg_replace(
'/^.*</',
'', $hosth);
483 $hosth = preg_replace(
'/>.*$/',
'', $hosth);
484 $hosth = preg_replace(
'/.*@/',
'', $hosth);
543 $this->
_setErr(131,
'STARTTLS connection is not supported.');
554 $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT;
555 if (defined(
'STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) {
556 $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
557 $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
560 if (!stream_socket_enable_crypto($this->socket,
true, $crypto_method)) {
561 $this->
_setErr(132,
'STARTTLS connection failed.');
567 $this->
_setErr(126,
'"'.$hosth.
'" does not support authenticated connections. Error after sending EHLO '.$hosth);
573 if (empty($conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE)) {
574 $conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE =
'LOGIN';
579 switch ($conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE) {
587 $_retVal = $this->
socket_send_str(base64_encode(
"\0".$this->_smtpsID.
"\0".$this->_smtpsPW),
'235');
593 $initRes =
"user=".$user.
"\001auth=Bearer ".$token.
"\001\001";
594 $_retVal = $this->
socket_send_str(
'AUTH XOAUTH2 '.base64_encode($initRes),
'235');
596 $this->
_setErr(130,
'Error when asking for AUTH XOAUTH2');
603 $this->
_setErr(130,
'Error when asking for AUTH LOGIN');
609 $_retVal = $this->
socket_send_str(base64_encode($this->_smtpsPW),
'235');
614 $this->
_setErr(130,
'Invalid Authentication Credentials.');
617 $this->
_setErr(126,
'"'.$host.
'" does not support authenticated connections. Error after sending EHLO '.$hosth);
640 if (!empty($this->_smtpsID) && (!empty($this->_smtpsPW) || !empty($this->_smtpsToken))) {
647 $usetls = preg_match(
'@tls://@i', $host);
649 $host = preg_replace(
'@tcp://@i',
'', $host);
650 $host = preg_replace(
'@ssl://@i',
'', $host);
651 $host = preg_replace(
'@tls://@i',
'', $host);
653 if ($usetls && !empty($conf->global->MAIN_SMTPS_ADD_TLS_TO_HOST_FOR_HELO)) {
654 $host =
'tls://'.$host;
659 if (!empty($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
660 if (!is_numeric($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
662 $hosth = $conf->global->MAIL_SMTP_USE_FROM_FOR_HELO;
666 $hosth = $this->
getFrom(
'addr');
667 $hosth = preg_replace(
'/^.*</',
'', $hosth);
668 $hosth = preg_replace(
'/>.*$/',
'', $hosth);
669 $hosth = preg_replace(
'/.*@/',
'', $hosth);
682 if (!$resultmailfrom) {
683 fclose($this->socket);
718 fputs($this->socket,
'QUIT');
719 fclose($this->socket);
765 if (!empty($_strConfigPath)) {
768 if (!@include $_strConfigPath) {
769 $this->
_setErr(110,
'"'.$_strConfigPath.
'" is not a valid path.');
776 if ($_host = ini_get(
'SMTPs')) {
780 if ($_port = ini_get(
'smtp_port')) {
784 if ($_from = ini_get(
'sendmail_from')) {
804 if ((is_numeric($_type)) && (($_type >= 0) && ($_type <= 3))) {
805 $this->_transportType = $_type;
848 $this->_smtpsHost = $_strHost;
873 if ((is_numeric($_intPort)) &&
874 (($_intPort >= 1) && ($_intPort <= 65536))) {
875 $this->_smtpsPort = $_intPort;
898 $this->_smtpsID = $_strID;
919 $this->_smtpsPW = $_strPW;
940 $this->_smtpsToken = $_strToken;
963 $this->_smtpsCharSet = $_strCharSet;
994 if (array_search($_strTransEncode, $this->_smtpsTransEncodeTypes)) {
995 $this->_smtpsTransEncode = $_strTransEncode;
1027 if (array_search($_strTransEncodeType, $this->_smtpsTransEncodeTypes)) {
1028 $this->_smtpsTransEncodeType = $_strTransEncodeType;
1068 if ($_part ===
true) {
1071 $_retValue = $this->_msgFrom[$_part];
1086 $this->_msgReplyTo = $this->
_strip_email($_strReplyTo);
1100 if ($_part ===
true) {
1103 $_retValue = $this->_msgReplyTo[$_part];
1127 if (!empty($_addrList)) {
1129 if (is_string($_addrList)) {
1131 if (strstr($_addrList,
',')) {
1133 $_addrList = explode(
',', $_addrList);
1136 $_addrList = array($_addrList);
1141 foreach ($_addrList as $_strAddr) {
1143 $_strAddr = str_replace(
'>',
'', $_strAddr);
1147 $_tmpaddr = explode(
'<', $_strAddr);
1150 if (count($_tmpaddr) == 2) {
1151 $_tmpHost = explode(
'@', $_tmpaddr[1]);
1152 $_tmpaddr[0] = trim($_tmpaddr[0],
' ">');
1153 $aryHost[$_tmpHost[1]][$_type][$_tmpHost[0]] = $_tmpaddr[0];
1157 $_strAddr = str_replace(
'<',
'', $_strAddr);
1159 $_tmpHost = explode(
'@', $_strAddr);
1160 $_tmpHost[0] = trim($_tmpHost[0]);
1161 $_tmpHost[1] = trim($_tmpHost[1]);
1163 $aryHost[$_tmpHost[1]][$_type][$_tmpHost[0]] =
'';
1168 $this->_msgRecipients = $aryHost;
1192 $_aryEmail[
'org'] = $_strAddr;
1195 $_strAddr = strtolower($_strAddr);
1198 $_strAddr = trim($_strAddr,
' ">');
1201 $_tmpAry = explode(
'<', $_strAddr);
1204 if (count($_tmpAry) == 2) {
1207 $_aryEmail[
'real'] = trim($_tmpAry[0],
' ">');
1210 $_aryEmail[
'addr'] = $_tmpAry[1];
1212 $_aryEmail[
'addr'] = $_tmpAry[0];
1216 list($_aryEmail[
'user'], $_aryEmail[
'host']) = explode(
'@', $_aryEmail[
'addr']);
1219 $_aryEmail[
'addr'] =
'<'.$_aryEmail[
'addr'].
'>';
1238 $_RCPT_list = array();
1241 foreach ($this->_msgRecipients as $_host => $_list) {
1242 foreach ($_list as $_subList) {
1243 foreach ($_subList as $_name => $_addr) {
1245 $_RCPT_list[] = $_name.
'@'.$_host;
1266 if ($this->_msgRecipients) {
1267 $_RCPT_list = array();
1269 foreach ($this->_msgRecipients as $_host => $_list) {
1270 if ($this->_msgRecipients[$_host][$_which]) {
1271 foreach ($this->_msgRecipients[$_host][$_which] as $_addr => $_realName) {
1273 $_realName =
'"'.$_realName.
'"';
1274 $_RCPT_list[] = $_realName.
' <'.$_addr.
'@'.$_host.
'>';
1276 $_RCPT_list[] = $_addr.
'@'.$_host;
1282 return implode(
', ', $_RCPT_list);
1284 $this->
_setErr(101,
'No eMail Address for message to be sent to.');
1288 $this->
_setErr(102,
'eMail type not defined.');
1371 $this->_msgSubject = $_strSubject;
1394 $_header =
'From: '.$this->getFrom(
'org').
"\r\n"
1395 .
'To: '.$this->getTO().
"\r\n";
1397 if ($this->
getCC()) {
1398 $_header .=
'Cc: '.$this->getCC().
"\r\n";
1412 $host = dol_getprefix(
'email');
1415 $_header .=
'Subject: '.$this->getSubject().
"\r\n";
1416 $_header .=
'Date: '.date(
"r").
"\r\n";
1421 $_header .=
'Message-ID: <'.time().
'.SMTPs-dolibarr-'.$trackid.
'@'.$host.
">\r\n";
1422 $_header .=
'References: <'.time().
'.SMTPs-dolibarr-'.$trackid.
'@'.$host.
">\r\n";
1423 $_header .=
'X-Dolibarr-TRACKID: '.$trackid.
'@'.$host.
"\r\n";
1425 $_header .=
'Message-ID: <'.time().
'.SMTPs@'.$host.
">\r\n";
1427 if (!empty($_SERVER[
'REMOTE_ADDR'])) {
1428 $_header .=
"X-RemoteAddr: ".$_SERVER[
'REMOTE_ADDR'].
"\r\n";
1439 $_header .=
'Sensitivity: '.$this->getSensitivity().
"\r\n";
1442 if ($this->_msgPriority != 3) {
1449 $_header .=
'Disposition-Notification-To: '.$this->getFrom(
'addr').
"\r\n";
1452 $_header .=
'Errors-To: '.$this->getErrorsTo(
'addr').
"\r\n";
1455 $_header .=
"Reply-To: ".$this->getReplyTo(
'addr').
"\r\n";
1458 $_header .=
'X-Mailer: Dolibarr version '.DOL_VERSION.
' (using SMTPs Mailer)'.
"\r\n";
1459 $_header .=
'X-Dolibarr-Option: '.($conf->global->MAIN_MAIL_USE_MULTI_PART ?
'MAIN_MAIL_USE_MULTI_PART' :
'No MAIN_MAIL_USE_MULTI_PART').
"\r\n";
1460 $_header .=
'Mime-Version: 1.0'.
"\r\n";
1477 if ($strType ==
'html') {
1478 $strMimeType =
'text/html';
1480 $strMimeType =
'text/plain';
1484 $strContent = preg_replace(
"/(?<!\r)\n/si",
"\r\n", $strContent);
1486 $strContentAltText =
'';
1487 if ($strType ==
'html') {
1489 $strContentAltText = preg_replace(
'/<head><title>.*<\/style><\/head>/',
'', $strContent);
1490 $strContentAltText = preg_replace(
"/<br\s*[^>]*>/",
" ", $strContentAltText);
1491 $strContentAltText = html_entity_decode(strip_tags($strContentAltText));
1492 $strContentAltText = trim(wordwrap($strContentAltText, 75,
"\r\n"));
1497 $strContent = rtrim(wordwrap($strContent, 75,
"\r\n"));
1499 $this->_msgContent[$strType] = array();
1501 $this->_msgContent[$strType][
'mimeType'] = $strMimeType;
1502 $this->_msgContent[$strType][
'data'] = $strContent;
1503 $this->_msgContent[$strType][
'dataText'] = $strContentAltText;
1506 $this->_msgContent[$strType][
'md5'] =
dol_hash($strContent, 3);
1524 $_types = array_keys($this->_msgContent);
1527 $keyCount = count($_types);
1530 if ($keyCount === 0) {
1531 die(
"Sorry, no content");
1532 } elseif ($keyCount === 1 && empty($conf->global->MAIN_MAIL_USE_MULTI_PART)) {
1535 $_msgData = $_msgData[$_types[0]];
1537 $content =
'Content-Type: '.$_msgData[
'mimeType'].
'; charset="'.$this->
getCharSet().
'"'.
"\r\n"
1538 .
'Content-Transfer-Encoding: '.$this->getTransEncodeType().
"\r\n"
1539 .
'Content-Disposition: inline'.
"\r\n"
1540 .
'Content-Description: Message'.
"\r\n";
1543 $content .=
'Content-MD5: '.$_msgData[
'md5'].
"\r\n";
1547 . $_msgData[
'data'].
"\r\n";
1548 } elseif ($keyCount >= 1 || !empty($conf->global->MAIN_MAIL_USE_MULTI_PART)) {
1555 $content =
'Content-Type: multipart/mixed; boundary="'.$this->_getBoundary(
'mixed').
'"'.
"\r\n";
1559 $content .=
"Content-Transfer-Encoding: 8bit\r\n";
1562 $content .=
"--".$this->_getBoundary(
'mixed').
"\r\n";
1564 if (key_exists(
'image', $this->_msgContent)) {
1565 $content .=
'Content-Type: multipart/alternative; boundary="'.$this->_getBoundary(
'alternative').
'"'.
"\r\n";
1567 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1575 foreach ($this->_msgContent as $type => $_content) {
1576 if ($type ==
'attachment') {
1578 foreach ($_content as $_file => $_data) {
1579 $content .=
"--".$this->_getBoundary(
'mixed').
"\r\n"
1580 .
'Content-Disposition: attachment; filename="'.$_data[
'fileName'].
'"'.
"\r\n"
1581 .
'Content-Type: '.$_data[
'mimeType'].
'; name="'.$_data[
'fileName'].
'"'.
"\r\n"
1582 .
'Content-Transfer-Encoding: base64'.
"\r\n"
1583 .
'Content-Description: '.$_data[
'fileName'].
"\r\n";
1584 if (!empty($_data[
'cid'])) {
1585 $content .=
"X-Attachment-Id: ".$_data[
'cid'].
"\r\n";
1586 $content .=
"Content-ID: <".$_data[
'cid'].
">\r\n";
1589 $content .=
'Content-MD5: '.$_data[
'md5'].
"\r\n";
1592 $content .=
"\r\n".$_data[
'data'].
"\r\n\r\n";
1594 } elseif ($type ==
'image') {
1597 foreach ($_content as $_image => $_data) {
1598 $content .=
"--".$this->_getBoundary(
'related').
"\r\n";
1600 $content .=
'Content-Type: '.$_data[
'mimeType'].
'; name="'.$_data[
'imageName'].
'"'.
"\r\n"
1601 .
'Content-Transfer-Encoding: base64'.
"\r\n"
1602 .
'Content-Disposition: inline; filename="'.$_data[
'imageName'].
'"'.
"\r\n"
1603 .
'Content-ID: <'.$_data[
'cid'].
'> '.
"\r\n";
1606 $content .=
'Content-MD5: '.$_data[
'md5'].
"\r\n";
1610 . $_data[
'data'].
"\r\n";
1614 $content .=
"--".$this->_getBoundary(
'related').
"--\r\n";
1615 $content .=
"\r\n--".$this->_getBoundary(
'alternative').
"--\r\n";
1618 if (key_exists(
'image', $this->_msgContent)) {
1619 $content .=
"Content-Type: text/plain; charset=".$this->getCharSet().
"\r\n";
1620 $content .=
"\r\n".($_content[
'dataText'] ? $_content[
'dataText'] : strip_tags($_content[
'data'])).
"\r\n";
1621 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1622 $content .=
'Content-Type: multipart/related; boundary="'.$this->_getBoundary(
'related').
'"'.
"\r\n";
1624 $content .=
"--".$this->_getBoundary(
'related').
"\r\n";
1627 if (!key_exists(
'image', $this->_msgContent) && $_content[
'dataText'] && !empty($conf->global->MAIN_MAIL_USE_MULTI_PART)) {
1629 $content .=
'Content-Type: multipart/alternative; boundary="'.$this->_getBoundary(
'alternative').
'"'.
"\r\n";
1631 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1633 $content .=
"Content-Type: text/plain; charset=".$this->getCharSet().
"\r\n";
1634 $content .=
"\r\n".$_content[
'dataText'].
"\r\n";
1635 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1638 $content .=
'Content-Type: '.$_content[
'mimeType'].
'; charset='.$this->
getCharSet();
1643 $content .=
'Content-MD5: '.$_content[
'md5'].
"\r\n";
1646 $content .=
"\r\n".$_content[
'data'].
"\r\n";
1648 if (!key_exists(
'image', $this->_msgContent) && $_content[
'dataText'] && !empty($conf->global->MAIN_MAIL_USE_MULTI_PART)) {
1650 $content .=
"--".$this->_getBoundary(
'alternative').
"--\r\n";
1657 $content .=
"--".$this->_getBoundary(
'mixed').
'--'.
"\r\n";
1673 public function setAttachment($strContent, $strFileName =
'unknown', $strMimeType =
'unknown', $strCid =
'')
1676 $strContent = rtrim(chunk_split(base64_encode($strContent), 76,
"\r\n"));
1678 $this->_msgContent[
'attachment'][$strFileName][
'mimeType'] = $strMimeType;
1679 $this->_msgContent[
'attachment'][$strFileName][
'fileName'] = $strFileName;
1680 $this->_msgContent[
'attachment'][$strFileName][
'data'] = $strContent;
1681 $this->_msgContent[
'attachment'][$strFileName][
'cid'] = $strCid;
1684 $this->_msgContent[
'attachment'][$strFileName][
'md5'] =
dol_hash($strContent, 3);
1702 public function setImageInline($strContent, $strImageName =
'unknown', $strMimeType =
'unknown', $strImageCid =
'unknown')
1705 $this->_msgContent[
'image'][$strImageName][
'mimeType'] = $strMimeType;
1706 $this->_msgContent[
'image'][$strImageName][
'imageName'] = $strImageName;
1707 $this->_msgContent[
'image'][$strImageName][
'cid'] = $strImageCid;
1708 $this->_msgContent[
'image'][$strImageName][
'data'] = $strContent;
1711 $this->_msgContent[
'image'][$strImageName][
'md5'] =
dol_hash($strContent, 3);
1731 if ((is_numeric($_value)) &&
1732 (($_value >= 0) && ($_value <= 3))) {
1733 $this->_msgSensitivity = $_value;
1767 if ((is_numeric($_value)) &&
1768 (($_value >= 0) && ($_value <= 5))) {
1769 $this->_msgPriority = $_value;
1789 .
'X-Priority: '.$this->_msgPriority.
' ('.$this->_aryPriority[
$this->_msgPriority].
')'.
"\r\n";
1800 $this->_smtpMD5 = $_flag;
1824 $this->_msgXheader[] = $strXdata;
1845 $this->_smtpsBoundary =
"multipart_x.".time().
".x_boundary";
1846 $this->_smtpsRelatedBoundary =
'mul_'.dol_hash(uniqid(
"dolibarr2"), 3);
1847 $this->_smtpsAlternativeBoundary =
'mul_'.dol_hash(uniqid(
"dolibarr3"), 3);
1858 if ($type ==
'mixed') {
1860 } elseif ($type ==
'related') {
1862 } elseif ($type ==
'alternative') {
1885 $server_response =
'';
1890 while (substr($server_response, 3, 1) !=
' ' && $limit < 100) {
1891 if (!($server_response = fgets($socket, 256))) {
1892 $this->
_setErr(121,
"Couldn't get mail server response codes");
1896 $this->log .= $server_response;
1900 if (!(substr($server_response, 0, 3) == $response)) {
1901 $this->
_setErr(120,
"Ran into problems sending Mail.\r\nResponse:".$server_response);
1920 if ($this->_debug) {
1921 $this->log .= $_strSend;
1923 fputs($this->socket, $_strSend.$CRLF);
1924 if ($this->_debug) {
1925 $this->log .=
' ('.$_returnCode.
')'.$CRLF;
1929 return $this->
server_parse($this->socket, $_returnCode);
1945 $this->_smtpsErrors[] = array(
1960 if (is_array($this->_smtpsErrors)) {
1961 foreach ($this->_smtpsErrors as $_err => $_info) {
1962 $_errMsg[] =
'Error ['.$_info[
'num'].
']: '.$_info[
'msg'];
1966 return implode(
"\n", $_errMsg);
Class to construct and send SMTP compliant email, even to a secure SMTP server, regardless of platfor...
$_smtpsToken
Token in case we use OAUTH2.
_getBoundary($type='mixed')
Retrieves the MIME message Boundary.
setConfig($_strConfigPath=null)
setConfig() is used to populate select class properties from either a user defined INI file or the sy...
sendMsg()
Now send the message.
$_arySensitivity
Message Sensitivity.
$_smtpsCharSet
Character set Defaulted to 'iso-8859-1'.
getErrors()
Returns errors codes and messages for Class.
setCharSet($_strCharSet)
Character set used for current message Character set is defaulted to 'iso-8859-1';.
setSubject($_strSubject='')
Message Subject.
getPriority()
Message Content Priority Message Priority values:
$_smtpsHost
Host Name or IP of SMTP Server to use.
getMD5flag()
Gets flag which determines whether to calculate message MD5 checksum.
socket_send_str($_strSend, $_returnCode=null, $CRLF="\r\n")
Send str.
_strip_email($_strAddr)
Returns an array of the various parts of an email address This assumes a well formed address:
getTransEncodeType()
Retrieves the Content-Transfer-Encoding.
setTrackId($_val='')
Set trackid.
setToken($_strToken)
User token for OAUTH2.
buildRCPTlist()
build RECIPIENT List, all addresses who will recieve this message
getBodyContent()
Retrieves the Message Content.
_buildAddrList($_type, $_addrList)
Inserts given addresses into structured format.
setOptions($_options=array())
Set delivery receipt.
_server_connect()
Attempt a connection to mail server.
setBodyContent($strContent, $strType='plain')
Message Content.
server_parse($socket, $response)
This function has been modified as provided by SirSir to allow multiline responses when using SMTP Ex...
setTransportType($_type=0)
Determines the method inwhich the messages are to be sent.
getBCC()
Retrieves the BCC Address[es] inwhich to send mail to.
$_smtpsTransEncodeTypes
Content-Transfer-Encoding.
setAttachment($strContent, $strFileName='unknown', $strMimeType='unknown', $strCid='')
File attachments are added to the content array as sub-arrays, allowing for multiple attachments for ...
_setBoundary()
Generates Random string for MIME message Boundary.
getTo()
Retrieves the TO Address[es] inwhich to send mail to.
setPort($_intPort)
Defines the Port Number of the Mail Server to use This is defaulted to '25' This is used only with 's...
getID()
Retrieves the User Name for authentication on Mail Server.
setBCC($_strBCC)
BCC Address[es] inwhich to send mail to.
setReplyTo($_strReplyTo)
Reply-To Address from which mail will be the reply-to.
getToken()
Retrieves the User token for OAUTH2.
setSensitivity($_value=0)
Message Content Sensitivity Message Sensitivity values:
setCC($_strCC)
CC Address[es] inwhich to send mail to.
$_msgReplyTo
Where are replies and errors to be sent to This can be defined via a INI file or via a setter method.
$_smtpsID
Secure SMTP Server access ID This can be defined via a INI file or via a setter method.
setTO($_addrTo)
TO Address[es] inwhich to send mail to.
setTransEncodeType($_strTransEncodeType)
Content-Transfer-Encoding, Defaulted to '0' [ZERO] This can be changed for 2byte characers sets Known...
get_email_list($_which=null)
Returns an array of addresses for a specific type; TO, CC or BCC.
setMD5flag($_flag=false)
Set flag which determines whether to calculate message MD5 checksum.
getCharSet()
Retrieves the Character set used for current message.
getCC()
Retrieves the CC Address[es] inwhich to send mail to.
getDeliveryReceipt()
get delivery receipt
setFrom($_strFrom)
FROM Address from which mail will be sent.
get_RCPT_list()
Returns an array of bares addresses for use with 'RCPT TO:' This is a "build as you go" method.
_server_authenticate()
Attempt mail server authentication for a secure connection.
setID($_strID)
User Name for authentication on Mail Server.
getMoreInHeader()
get moreInHeader
$_log_level
Defines log level 0 - no logging 1 - connectivity logging 2 - message generation logging 3 - detail l...
getPW()
Retrieves the User Password for authentication on Mail Server.
getSubject()
Retrieves the Message Subject.
getXheader()
Retrieves the Message X-Header Content.
$_msgFrom
Who sent the Message This can be defined via a INI file or via a setter method.
setErrorsTo($_strErrorsTo)
Set errors to.
$_smtpsTransEncodeType
Content-Transfer-Encoding Defaulted to 0 - 7bit.
setImageInline($strContent, $strImageName='unknown', $strMimeType='unknown', $strImageCid='unknown')
Image attachments are added to the content array as sub-arrays, allowing for multiple images for each...
$_smtpsTransEncode
Content-Transfer-Encoding Defaulted to '7bit'.
$_smtpTimeout
Sets the SMTP server timeout in seconds.
$_smtpsRelatedBoundary
Related Boundary.
setHost($_strHost)
Defines the Host Name or IP of the Mail Server to use.
$_msgPriority
Message Sensitivity Defaults to 3 - Normal.
$_smtpsPort
SMTP Server Port definition.
getFrom($_part=true)
Retrieves the Address from which mail will be sent.
getHost()
Retrieves the Host Name or IP of the Mail Server to use This is used only with 'socket' based mail tr...
$_msgSensitivity
Message Sensitivity Defaults to ZERO - None.
setPW($_strPW)
User Password for authentication on Mail Server.
$_smtpsErrors
Class error codes and messages.
$_msgSubject
Message Subject.
getReplyTo($_part=true)
Retrieves the Address from which mail will be the reply-to.
setPriority($_value=3)
Message Content Priority Message Priority values:
setMoreInHeader($_val='')
Set moreInHeader.
$_smtpMD5
Determines whether to calculate message MD5 checksum.
$_smtpsAlternativeBoundary
Alternative Boundary.
$_aryPriority
Message Priority.
$_smtpsBoundary
Boundary String for MIME seperation.
getErrorsTo($_part=true)
Get errors to.
getSensitivity()
Returns Message Content Sensitivity string Message Sensitivity values:
getPort()
Retrieves the Port Number of the Mail Server to use This is used only with 'socket' based mail transm...
$_msgXheader
Custom X-Headers.
$_options
An array of options for stream_context_create()
$_smtpsPW
Secure SMTP Server access Password This can be defined via a INI file or via a setter method.
getTransportType()
Return the method inwhich the message is to be sent.
setMailPath($_path)
Path to the sendmail execuable.
$_msgContent
Message Content.
getTransEncode()
Retrieves the Content-Transfer-Encoding.
setTransEncode($_strTransEncode)
Content-Transfer-Encoding, Defaulted to '7bit' This can be changed for 2byte characers sets Known Enc...
$_mailPath
If '$_transportType' is set to '1', then this variable is used to define the UNIX file system path to...
setDebug($_vDebug=false)
Set debug.
$_msgRecipients
Who will the Message be sent to; TO, CC, BCC Multi-diminsional array containg addresses the message w...
setDeliveryReceipt($_val=0)
Set delivery receipt.
_setErr($_errNum, $_errMsg)
Defines errors codes and messages for Class.
getHeader()
Constructes and returns message header.
$_debug
Place Class in" debug" mode.
setXheader($strXdata)
Message X-Header Content This is a simple "insert".
$_transportType
Determines the method inwhich the message are to be sent.
is_ip($ip)
This function evaluates a string that should be a valid IPv4 Note: For ip 169.254....
dol_hash($chain, $type='0')
Returns a hash (non reversible encryption) of a string.