105 private $_msgContent = array();
130 'Company Confidential');
233 public $lastretval =
'';
250 private $_errorsTo =
'';
251 private $_deliveryReceipt = 0;
252 private $_trackId =
'';
253 private $_moreinheader =
'';
279 $this->_deliveryReceipt = $_val;
289 return $this->_deliveryReceipt;
300 $this->_trackId = $_val;
311 $this->_moreinheader = $_val;
321 return $this->_trackId;
331 return $this->_moreinheader;
357 if ($_part ===
true) {
358 $_retValue = $this->_errorsTo;
360 $_retValue = $this->_errorsTo[$_part];
374 $this->_debug = $_vDebug;
385 $_aryToList = $this->getTO();
404 $usetls = preg_match(
'@tls://@i', $host);
406 $host = preg_replace(
'@tcp://@i',
'', $host);
407 $host = preg_replace(
'@ssl://@i',
'', $host);
408 $host = preg_replace(
'@tls://@i',
'', $host);
411 include_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
413 if ((!
is_ip($host)) && ((gethostbyname($host)) == $host)) {
414 $this->
_setErr(99, $host.
' is either offline or is an invalid host name.');
417 if (function_exists(
'stream_socket_client') && !empty($this->_options)) {
418 $socket_context = stream_context_create($this->_options);
419 $this->socket = @stream_socket_client(
420 preg_replace(
'@tls://@i',
'', $this->
getHost()).
425 STREAM_CLIENT_CONNECT,
429 $this->socket = @fsockopen(
430 preg_replace(
'@tls://@i',
'', $this->
getHost()),
439 if (is_resource($this->socket)) {
444 if (function_exists(
'stream_set_timeout')) {
445 stream_set_timeout($this->socket, $this->_smtpTimeout, 0);
449 if ($_retVal = $this->
server_parse($this->socket,
"220")) {
450 $_retVal = $this->socket;
455 if (empty($this->errstr)) {
456 $this->errstr =
'Failed to connect with fsockopen host='.$this->getHost().
' port='.$this->
getPort();
458 $this->
_setErr($this->errno, $this->errstr);
477 require_once DOL_DOCUMENT_ROOT.
'/core/lib/geturl.lib.php';
482 $usetls = preg_match(
'@tls://@i', $host);
484 $host = preg_replace(
'@tcp://@i',
'', $host);
485 $host = preg_replace(
'@ssl://@i',
'', $host);
486 $host = preg_replace(
'@tls://@i',
'', $host);
489 $host =
'tls://'.$host;
495 if (!is_numeric($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
497 $hosth = $conf->global->MAIL_SMTP_USE_FROM_FOR_HELO;
501 $hosth = $this->
getFrom(
'addr');
502 $hosth = preg_replace(
'/^.*</',
'', $hosth);
503 $hosth = preg_replace(
'/>.*$/',
'', $hosth);
504 $hosth = preg_replace(
'/.*@/',
'', $hosth);
507 global $dolibarr_main_url_root;
567 $this->
_setErr(131,
'STARTTLS connection is not supported.');
578 $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT;
579 if (defined(
'STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) {
580 $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
581 $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
584 if (!stream_socket_enable_crypto($this->socket,
true, $crypto_method)) {
585 $this->
_setErr(132,
'STARTTLS connection failed.');
591 $this->
_setErr(126,
'"'.$hosth.
'" does not support authenticated connections or temporary error. Error after 2nd sending EHLO '.$hosth.
' : '.$this->lastretval);
598 $conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE =
'LOGIN';
603 switch ($conf->global->MAIN_MAIL_SMTPS_AUTH_TYPE) {
611 $_retVal = $this->
socket_send_str(base64_encode(
"\0".$this->_smtpsID.
"\0".$this->_smtpsPW),
'235');
617 $initRes =
"user=".$user.
"\001auth=Bearer ".$token.
"\001\001";
618 $_retVal = $this->
socket_send_str(
'AUTH XOAUTH2 '.base64_encode($initRes),
'235');
620 $this->
_setErr(130,
'Error when asking for AUTH XOAUTH2');
627 $this->
_setErr(130,
'Error when asking for AUTH LOGIN');
633 $_retVal = $this->
socket_send_str(base64_encode($this->_smtpsPW),
'235');
638 $this->
_setErr(130,
'Invalid Authentication Credentials.');
641 $this->
_setErr(126,
'"'.$host.
'" does not support authenticated connections or temporary error. Error after sending EHLO '.$hosth.
' : '.$this->lastretval);
656 require_once DOL_DOCUMENT_ROOT.
'/core/lib/geturl.lib.php';
664 if (!empty($this->_smtpsID) && (!empty($this->_smtpsPW) || !empty($this->_smtpsToken))) {
671 $usetls = preg_match(
'@tls://@i', $host);
673 $host = preg_replace(
'@tcp://@i',
'', $host);
674 $host = preg_replace(
'@ssl://@i',
'', $host);
675 $host = preg_replace(
'@tls://@i',
'', $host);
678 $host =
'tls://'.$host;
684 if (!is_numeric($conf->global->MAIL_SMTP_USE_FROM_FOR_HELO)) {
686 $hosth = $conf->global->MAIL_SMTP_USE_FROM_FOR_HELO;
690 $hosth = $this->
getFrom(
'addr');
691 $hosth = preg_replace(
'/^.*</',
'', $hosth);
692 $hosth = preg_replace(
'/>.*$/',
'', $hosth);
693 $hosth = preg_replace(
'/.*@/',
'', $hosth);
696 global $dolibarr_main_url_root;
711 if (!$resultmailfrom) {
712 fclose($this->socket);
747 fputs($this->socket,
'QUIT');
752 fclose($this->socket);
797 if (!empty($_strConfigPath)) {
800 if (!@include $_strConfigPath) {
801 $this->
_setErr(110,
'"'.$_strConfigPath.
'" is not a valid path.');
808 if ($_host = ini_get(
'SMTPs')) {
812 if ($_port = ini_get(
'smtp_port')) {
816 if ($_from = ini_get(
'sendmail_from')) {
836 if ((is_numeric($_type)) && (($_type >= 0) && ($_type <= 3))) {
837 $this->_transportType = $_type;
880 $this->_smtpsHost = $_strHost;
905 if ((is_numeric($_intPort)) &&
906 (($_intPort >= 1) && ($_intPort <= 65536))) {
907 $this->_smtpsPort = $_intPort;
930 $this->_smtpsID = $_strID;
951 $this->_smtpsPW = $_strPW;
972 $this->_smtpsToken = $_strToken;
995 $this->_smtpsCharSet = $_strCharSet;
1026 if (array_search($_strTransEncode, $this->_smtpsTransEncodeTypes)) {
1027 $this->_smtpsTransEncode = $_strTransEncode;
1059 if (array_search($_strTransEncodeType, $this->_smtpsTransEncodeTypes)) {
1060 $this->_smtpsTransEncodeType = $_strTransEncodeType;
1100 if ($_part ===
true) {
1103 $_retValue = $this->_msgFrom[$_part];
1118 $this->_msgReplyTo = $this->
_strip_email($_strReplyTo);
1132 if ($_part ===
true) {
1135 $_retValue = $this->_msgReplyTo[$_part];
1157 if (!empty($_addrList)) {
1159 if (is_string($_addrList)) {
1161 if (strstr($_addrList,
',')) {
1163 $_addrList = explode(
',', $_addrList);
1166 $_addrList = array($_addrList);
1171 foreach ($_addrList as $_strAddr) {
1173 $_strAddr = str_replace(
'>',
'', $_strAddr);
1177 $_tmpaddr = explode(
'<', $_strAddr);
1180 if (count($_tmpaddr) == 2) {
1181 $_tmpHost = explode(
'@', $_tmpaddr[1]);
1182 $_tmpaddr[0] = trim($_tmpaddr[0],
' ">');
1183 $aryHost[$_tmpHost[1]][$_type][$_tmpHost[0]] = $_tmpaddr[0];
1187 $_strAddr = str_replace(
'<',
'', $_strAddr);
1189 $_tmpHost = explode(
'@', $_strAddr);
1190 $_tmpHost[0] = trim($_tmpHost[0]);
1191 $_tmpHost[1] = trim($_tmpHost[1]);
1193 $aryHost[$_tmpHost[1]][$_type][$_tmpHost[0]] =
'';
1198 $this->_msgRecipients = $aryHost;
1222 $_aryEmail[
'org'] = $_strAddr;
1225 $_strAddr = strtolower($_strAddr);
1228 $_strAddr = trim($_strAddr,
' ">');
1231 $_tmpAry = explode(
'<', $_strAddr);
1234 if (count($_tmpAry) == 2) {
1237 $_aryEmail[
'real'] = trim($_tmpAry[0],
' ">');
1240 $_aryEmail[
'addr'] = $_tmpAry[1];
1242 $_aryEmail[
'addr'] = $_tmpAry[0];
1246 $_tmpHost = explode(
'@', $_aryEmail[
'addr']);
1247 $_aryEmail[
'user'] = $_tmpHost[0];
1248 $_aryEmail[
'host'] = $_tmpHost[1];
1251 $_aryEmail[
'addr'] =
'<'.$_aryEmail[
'addr'].
'>';
1270 $_RCPT_list = array();
1273 foreach ($this->_msgRecipients as $_host => $_list) {
1274 foreach ($_list as $_subList) {
1275 foreach ($_subList as $_name => $_addr) {
1277 $_RCPT_list[] = $_name.
'@'.$_host;
1298 if ($this->_msgRecipients) {
1299 $_RCPT_list = array();
1301 foreach ($this->_msgRecipients as $_host => $_list) {
1302 if (!empty($this->_msgRecipients[$_host][$_which])) {
1303 foreach ($this->_msgRecipients[$_host][$_which] as $_addr => $_realName) {
1305 $_realName =
'"'.$_realName.
'"';
1306 $_RCPT_list[] = $_realName.
' <'.$_addr.
'@'.$_host.
'>';
1308 $_RCPT_list[] = $_addr.
'@'.$_host;
1314 return implode(
', ', $_RCPT_list);
1316 $this->
_setErr(101,
'No eMail Address for message to be sent to.');
1320 $this->
_setErr(102,
'eMail type not defined.');
1403 $this->_msgSubject = $_strSubject;
1426 $_header =
'From: '.$this->getFrom(
'org').
"\r\n"
1427 .
'To: '.$this->getTO().
"\r\n";
1429 if ($this->
getCC()) {
1430 $_header .=
'Cc: '.$this->getCC().
"\r\n";
1444 $host = dol_getprefix(
'email');
1447 $_header .=
'Subject: '.$this->getSubject().
"\r\n";
1448 $_header .=
'Date: '.date(
"r").
"\r\n";
1452 $_header .=
'Message-ID: <'.time().
'.SMTPs-dolibarr-'.$trackid.
'@'.$host.
">\r\n";
1453 $_header .=
'X-Dolibarr-TRACKID: '.$trackid.
'@'.$host.
"\r\n";
1457 $_header .=
'Message-ID: <'.time().
'.SMTPs@'.$host.
">\r\n";
1459 if (!empty($_SERVER[
'REMOTE_ADDR'])) {
1460 $_header .=
"X-RemoteAddr: ".$_SERVER[
'REMOTE_ADDR'].
"\r\n";
1467 $_header .=
'Sensitivity: '.$this->getSensitivity().
"\r\n";
1470 if ($this->_msgPriority != 3) {
1477 $_header .=
'Disposition-Notification-To: '.$this->getFrom(
'addr').
"\r\n";
1480 $_header .=
'Errors-To: '.$this->getErrorsTo(
'addr').
"\r\n";
1483 $_header .=
"Reply-To: ".$this->getReplyTo(
'addr').
"\r\n";
1486 $_header .=
'X-Mailer: Dolibarr version '.DOL_VERSION.
' (using SMTPs Mailer)'.
"\r\n";
1487 $_header .=
'X-Dolibarr-Option: '.($conf->global->MAIN_MAIL_USE_MULTI_PART ?
'MAIN_MAIL_USE_MULTI_PART' :
'No MAIN_MAIL_USE_MULTI_PART').
"\r\n";
1488 $_header .=
'Mime-Version: 1.0'.
"\r\n";
1506 if ($strType ==
'html') {
1507 $strMimeType =
'text/html';
1509 $strMimeType =
'text/plain';
1513 $strContent = preg_replace(
"/(?<!\r)\n/si",
"\r\n", $strContent);
1515 $strContentAltText =
'';
1516 if ($strType ==
'html') {
1518 $strContentAltText = preg_replace(
'/<head><title>.*<\/style><\/head>/',
'', $strContent);
1519 $strContentAltText = preg_replace(
"/<br\s*[^>]*>/",
" ", $strContentAltText);
1520 $strContentAltText = html_entity_decode(strip_tags($strContentAltText));
1521 $strContentAltText = trim(wordwrap($strContentAltText, 75,
"\r\n"));
1526 $strContent = rtrim(wordwrap($strContent, 75,
"\r\n"));
1528 $this->_msgContent[$strType] = array();
1530 $this->_msgContent[$strType][
'mimeType'] = $strMimeType;
1531 $this->_msgContent[$strType][
'data'] = $strContent;
1532 $this->_msgContent[$strType][
'dataText'] = $strContentAltText;
1535 $this->_msgContent[$strType][
'md5'] =
dol_hash($strContent, 3);
1553 $_types = array_keys($this->_msgContent);
1556 $keyCount = count($_types);
1559 if ($keyCount === 0) {
1560 die(
"Sorry, no content");
1563 $_msgData = $this->_msgContent;
1564 $_msgData = $_msgData[$_types[0]];
1566 $content =
'Content-Type: '.$_msgData[
'mimeType'].
'; charset="'.$this->
getCharSet().
'"'.
"\r\n"
1567 .
'Content-Transfer-Encoding: '.$this->getTransEncodeType().
"\r\n"
1568 .
'Content-Disposition: inline'.
"\r\n"
1569 .
'Content-Description: Message'.
"\r\n";
1572 $content .=
'Content-MD5: '.$_msgData[
'md5'].
"\r\n";
1576 . $_msgData[
'data'].
"\r\n";
1584 $content =
'Content-Type: multipart/mixed; boundary="'.$this->_getBoundary(
'mixed').
'"'.
"\r\n";
1588 $content .=
"Content-Transfer-Encoding: 8bit\r\n";
1591 $content .=
"--".$this->_getBoundary(
'mixed').
"\r\n";
1593 if (key_exists(
'image', $this->_msgContent)) {
1594 $content .=
'Content-Type: multipart/alternative; boundary="'.$this->_getBoundary(
'alternative').
'"'.
"\r\n";
1596 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1604 foreach ($this->_msgContent as $type => $_content) {
1605 if ($type ==
'attachment') {
1607 foreach ($_content as $_file => $_data) {
1608 $content .=
"--".$this->_getBoundary(
'mixed').
"\r\n"
1609 .
'Content-Disposition: attachment; filename="'.$_data[
'fileName'].
'"'.
"\r\n"
1610 .
'Content-Type: '.$_data[
'mimeType'].
'; name="'.$_data[
'fileName'].
'"'.
"\r\n"
1611 .
'Content-Transfer-Encoding: base64'.
"\r\n"
1612 .
'Content-Description: '.$_data[
'fileName'].
"\r\n";
1613 if (!empty($_data[
'cid'])) {
1614 $content .=
"X-Attachment-Id: ".$_data[
'cid'].
"\r\n";
1615 $content .=
"Content-ID: <".$_data[
'cid'].
">\r\n";
1618 $content .=
'Content-MD5: '.$_data[
'md5'].
"\r\n";
1621 $content .=
"\r\n".$_data[
'data'].
"\r\n\r\n";
1623 } elseif ($type ==
'image') {
1626 foreach ($_content as $_image => $_data) {
1627 $content .=
"--".$this->_getBoundary(
'related').
"\r\n";
1629 $content .=
'Content-Type: '.$_data[
'mimeType'].
'; name="'.$_data[
'imageName'].
'"'.
"\r\n"
1630 .
'Content-Transfer-Encoding: base64'.
"\r\n"
1631 .
'Content-Disposition: inline; filename="'.$_data[
'imageName'].
'"'.
"\r\n"
1632 .
'Content-ID: <'.$_data[
'cid'].
'> '.
"\r\n";
1635 $content .=
'Content-MD5: '.$_data[
'md5'].
"\r\n";
1639 . $_data[
'data'].
"\r\n";
1643 $content .=
"--".$this->_getBoundary(
'related').
"--\r\n";
1644 $content .=
"\r\n--".$this->_getBoundary(
'alternative').
"--\r\n";
1647 if (key_exists(
'image', $this->_msgContent)) {
1648 $content .=
"Content-Type: text/plain; charset=".$this->getCharSet().
"\r\n";
1649 $content .=
"\r\n".($_content[
'dataText'] ? $_content[
'dataText'] : strip_tags($_content[
'data'])).
"\r\n";
1650 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1651 $content .=
'Content-Type: multipart/related; boundary="'.$this->_getBoundary(
'related').
'"'.
"\r\n";
1653 $content .=
"--".$this->_getBoundary(
'related').
"\r\n";
1656 if (!key_exists(
'image', $this->_msgContent) && $_content[
'dataText'] &&
getDolGlobalString(
'MAIN_MAIL_USE_MULTI_PART')) {
1658 $content .=
'Content-Type: multipart/alternative; boundary="'.$this->_getBoundary(
'alternative').
'"'.
"\r\n";
1660 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1662 $content .=
"Content-Type: text/plain; charset=".$this->getCharSet().
"\r\n";
1663 $content .=
"\r\n".$_content[
'dataText'].
"\r\n";
1664 $content .=
"--".$this->_getBoundary(
'alternative').
"\r\n";
1667 $content .=
'Content-Type: '.$_content[
'mimeType'].
'; charset='.$this->
getCharSet();
1672 $content .=
'Content-MD5: '.$_content[
'md5'].
"\r\n";
1675 $content .=
"\r\n".$_content[
'data'].
"\r\n";
1677 if (!key_exists(
'image', $this->_msgContent) && $_content[
'dataText'] &&
getDolGlobalString(
'MAIN_MAIL_USE_MULTI_PART')) {
1679 $content .=
"--".$this->_getBoundary(
'alternative').
"--\r\n";
1686 $content .=
"--".$this->_getBoundary(
'mixed').
'--'.
"\r\n";
1702 public function setAttachment($strContent, $strFileName =
'unknown', $strMimeType =
'unknown', $strCid =
'')
1705 $strContent = rtrim(chunk_split(base64_encode($strContent), 76,
"\r\n"));
1707 $this->_msgContent[
'attachment'][$strFileName][
'mimeType'] = $strMimeType;
1708 $this->_msgContent[
'attachment'][$strFileName][
'fileName'] = $strFileName;
1709 $this->_msgContent[
'attachment'][$strFileName][
'data'] = $strContent;
1710 $this->_msgContent[
'attachment'][$strFileName][
'cid'] = $strCid;
1713 $this->_msgContent[
'attachment'][$strFileName][
'md5'] =
dol_hash($strContent, 3);
1731 public function setImageInline($strContent, $strImageName =
'unknown', $strMimeType =
'unknown', $strImageCid =
'unknown')
1734 $this->_msgContent[
'image'][$strImageName][
'mimeType'] = $strMimeType;
1735 $this->_msgContent[
'image'][$strImageName][
'imageName'] = $strImageName;
1736 $this->_msgContent[
'image'][$strImageName][
'cid'] = $strImageCid;
1737 $this->_msgContent[
'image'][$strImageName][
'data'] = $strContent;
1740 $this->_msgContent[
'image'][$strImageName][
'md5'] =
dol_hash($strContent, 3);
1760 if ((is_numeric($_value)) &&
1761 (($_value >= 0) && ($_value <= 3))) {
1762 $this->_msgSensitivity = $_value;
1796 if ((is_numeric($_value)) &&
1797 (($_value >= 0) && ($_value <= 5))) {
1798 $this->_msgPriority = $_value;
1818 .
'X-Priority: '.$this->_msgPriority.
' ('.$this->_aryPriority[
$this->_msgPriority].
')'.
"\r\n";
1829 $this->_smtpMD5 = $_flag;
1853 $this->_msgXheader[] = $strXdata;
1874 $this->_smtpsBoundary =
"multipart_x.".time().
".x_boundary";
1875 $this->_smtpsRelatedBoundary =
'mul_'.dol_hash(uniqid(
"dolibarr2"), 3);
1876 $this->_smtpsAlternativeBoundary =
'mul_'.dol_hash(uniqid(
"dolibarr3"), 3);
1887 if ($type ==
'mixed') {
1889 } elseif ($type ==
'related') {
1891 } elseif ($type ==
'alternative') {
1917 $server_response =
'';
1922 while (substr($server_response, 3, 1) !=
' ' && $limit < 100) {
1923 if (!($server_response = fgets($socket, 256))) {
1924 $this->
_setErr(121,
"Couldn't get mail server response codes");
1928 $this->log .= $server_response;
1932 $this->lastretval = substr($server_response, 0, 3);
1934 if (!(substr($server_response, 0, 3) == $response)) {
1935 $this->
_setErr(120,
"Ran into problems sending Mail.\r\nResponse: ".$server_response);
1954 if ($this->_debug) {
1955 $this->log .= $_strSend;
1957 fputs($this->socket, $_strSend.$CRLF);
1958 if ($this->_debug) {
1959 $this->log .=
' ('.$_returnCode.
')'.$CRLF;
1963 return $this->
server_parse($this->socket, $_returnCode);
1981 $this->_smtpsErrors[] = array(
1996 if (is_array($this->_smtpsErrors)) {
1997 foreach ($this->_smtpsErrors as $_err => $_info) {
1998 $_errMsg[] =
'Error ['.$_info[
'num'].
']: '.$_info[
'msg'];
2002 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 applicative errors codes and messages for Class (not the SMTP error code)
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.
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....
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
getDomainFromURL($url, $mode=0)
Function get second level domain name.
dol_hash($chain, $type='0', $nosalt=0)
Returns a hash (non reversible encryption) of a string.