Improvements in email configuration with sendmail, gmail server and client server
This commit is contained in:
committed by
Erik Amaru Ortiz
parent
c4a0ab336a
commit
82b3a78a0c
@@ -5290,6 +5290,37 @@ class G
|
||||
|
||||
return $arrayData;
|
||||
}
|
||||
|
||||
public static function buildFrom($configuration, $from = '') {
|
||||
if ($from != '') {
|
||||
if (!preg_match('/(.+)@(.+)\.(.+)/', $from, $match)) {
|
||||
if ($configuration['MESS_FROM_MAIL'] != '') {
|
||||
$from .= ' <' . $configuration['MESS_FROM_MAIL'] . '>';
|
||||
} else if ($configuration['MESS_ENGINE'] == 'PHPMAILER' && preg_match('/(.+)@(.+)\.(.+)/', $configuration['MESS_ACCOUNT'], $match)) {
|
||||
$from .= ' <' . $configuration['MESS_ACCOUNT'] . '>';
|
||||
} else {
|
||||
$from .= ' <info@' . ((isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] != '')? $_SERVER['HTTP_HOST'] : 'processmaker.com') . '>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ($configuration['MESS_FROM_NAME'] != '' && $configuration['MESS_FROM_MAIL'] != '') {
|
||||
$from = $configuration['MESS_FROM_NAME'] . ' <' . $configuration['MESS_FROM_MAIL'] . '>';
|
||||
} else if ($configuration['MESS_FROM_NAME'] != '' && $configuration['MESS_ENGINE'] == 'PHPMAILER' && preg_match('/(.+)@(.+)\.(.+)/', $configuration['MESS_ACCOUNT'], $match)) {
|
||||
$from = $configuration['MESS_FROM_NAME'] . ' <' . $configuration['MESS_ACCOUNT'] . '>';
|
||||
} else if ($configuration['MESS_FROM_NAME'] != '') {
|
||||
$from = $configuration['MESS_FROM_NAME'] . ' <info@' . ((isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] != '')? $_SERVER['HTTP_HOST'] : 'processmaker.com') . '>';
|
||||
} else if ($configuration['MESS_FROM_MAIL'] != '') {
|
||||
$from = $configuration['MESS_FROM_MAIL'];
|
||||
} else if ($configuration['MESS_ENGINE'] == 'PHPMAILER' && preg_match('/(.+)@(.+)\.(.+)/', $configuration['MESS_ACCOUNT'], $match)) {
|
||||
$from = $configuration['MESS_ACCOUNT'];
|
||||
} else if ($configuration['MESS_ENGINE'] == 'PHPMAILER' && $configuration['MESS_ACCOUNT'] != '' && !preg_match('/(.+)@(.+)\.(.+)/', $configuration['MESS_ACCOUNT'], $match)) {
|
||||
$from = $configuration['MESS_ACCOUNT'] . ' <info@' . ((isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] != '')? $_SERVER['HTTP_HOST'] : 'processmaker.com') . '>';
|
||||
} else {
|
||||
$from = 'info@' . ((isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] != '')? $_SERVER['HTTP_HOST'] : 'processmaker.com');
|
||||
}
|
||||
}
|
||||
return $from;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4836,28 +4836,8 @@ class Cases
|
||||
if ($aTaskInfo['TAS_SEND_LAST_EMAIL'] != 'TRUE') {
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
if ($sFrom == '') {
|
||||
$sFrom = '"ProcessMaker"';
|
||||
}
|
||||
*/
|
||||
if (isset($aConfiguration['MESS_FROM_NAME']) && $aConfiguration['MESS_FROM_NAME'] != '') {
|
||||
$sFrom = $aConfiguration['MESS_FROM_NAME'];
|
||||
}
|
||||
|
||||
$hasEmailFrom = preg_match('/(.+)@(.+)\.(.+)/', $sFrom, $match);
|
||||
|
||||
if (!$hasEmailFrom || ($aConfiguration["MESS_ACCOUNT"] != '' && strpos($sFrom, $aConfiguration["MESS_ACCOUNT"]) === false)) {
|
||||
if (trim($aConfiguration["MESS_ACCOUNT"]) != "") {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\" <" . $aConfiguration["MESS_ACCOUNT"] . ">";
|
||||
} else {
|
||||
if ($aConfiguration["MESS_ENGINE"] == "MAIL" && $sFrom != '') {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\"";
|
||||
} else {
|
||||
$sFrom = $sFrom . " <info@" . ((isset($_SERVER["HTTP_HOST"]) && $_SERVER["HTTP_HOST"] != "")? $_SERVER["HTTP_HOST"] : "processmaker.com") . ">";
|
||||
}
|
||||
}
|
||||
}
|
||||
$sFrom = G::buildFrom($aConfiguration, $sFrom);
|
||||
|
||||
if (isset($aTaskInfo['TAS_DEF_SUBJECT_MESSAGE']) && $aTaskInfo['TAS_DEF_SUBJECT_MESSAGE'] != '') {
|
||||
$sSubject = G::replaceDataField($aTaskInfo['TAS_DEF_SUBJECT_MESSAGE'], $aFields);
|
||||
|
||||
@@ -193,6 +193,7 @@ class spoolRun
|
||||
} else {
|
||||
$aConfig['MESS_RAUTH'] = 0;
|
||||
}
|
||||
$aConfig['SMTPAuth'] = $aConfig['MESS_RAUTH'];
|
||||
$this->config = $aConfig;
|
||||
}
|
||||
|
||||
@@ -438,20 +439,6 @@ class spoolRun
|
||||
$oPHPMailer->Host = $this->config['MESS_SERVER'];
|
||||
$oPHPMailer->Port = $this->config['MESS_PORT'];
|
||||
$oPHPMailer->Username = $this->config['MESS_ACCOUNT'];
|
||||
$passwd = $this->config['MESS_PASSWORD'];
|
||||
$passwdDec = G::decrypt( $passwd, 'EMAILENCRYPT' );
|
||||
$auxPass = explode( 'hash:', $passwdDec );
|
||||
|
||||
if (count( $auxPass ) > 1) {
|
||||
if (count( $auxPass ) == 2) {
|
||||
$passwd = $auxPass[1];
|
||||
} else {
|
||||
array_shift( $auxPass );
|
||||
$passwd = implode( '', $auxPass );
|
||||
}
|
||||
}
|
||||
|
||||
$this->config['MESS_PASSWORD'] = $passwd;
|
||||
$oPHPMailer->Password = $this->config['MESS_PASSWORD'];
|
||||
$oPHPMailer->From = $this->fileData['from_email'];
|
||||
$oPHPMailer->FromName = utf8_decode( $this->fileData['from_name'] );
|
||||
@@ -618,20 +605,8 @@ class spoolRun
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
try {
|
||||
$sFrom = $row["APP_MSG_FROM"];
|
||||
$hasEmailFrom = preg_match('/(.+)@(.+)\.(.+)/', $sFrom, $match);
|
||||
$sFrom = G::buildFrom($aConfiguration, $row["APP_MSG_FROM"]);
|
||||
|
||||
if (!$hasEmailFrom || ($aConfiguration["MESS_ACCOUNT"] != '' && strpos($sFrom, $aConfiguration["MESS_ACCOUNT"]) === false)) {
|
||||
if (trim($aConfiguration["MESS_ACCOUNT"]) != "") {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\" <" . $aConfiguration["MESS_ACCOUNT"] . ">";
|
||||
} else {
|
||||
if ($aConfiguration["MESS_ENGINE"] == "MAIL" && $sFrom != '') {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\"";
|
||||
} else {
|
||||
$sFrom = $sFrom . " <info@" . ((isset($_SERVER["HTTP_HOST"]) && $_SERVER["HTTP_HOST"] != "")? $_SERVER["HTTP_HOST"] : "processmaker.com") . ">";
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->setData( $row["APP_MSG_UID"], $row["APP_MSG_SUBJECT"], $sFrom, $row["APP_MSG_TO"], $row["APP_MSG_BODY"], date( "Y-m-d H:i:s" ), $row["APP_MSG_CC"], $row["APP_MSG_BCC"], $row["APP_MSG_TEMPLATE"], $row["APP_MSG_ATTACH"] );
|
||||
|
||||
$this->sendMail();
|
||||
|
||||
@@ -946,19 +946,8 @@ class wsBase
|
||||
}
|
||||
|
||||
$sBody = G::replaceDataGridField(file_get_contents($fileTemplate), $Fields, false);
|
||||
$hasEmailFrom = preg_match( '/(.+)@(.+)\.(.+)/', $sFrom, $match );
|
||||
|
||||
if (!$hasEmailFrom || ($aSetup["MESS_ACCOUNT"] != '' && strpos($sFrom, $aSetup["MESS_ACCOUNT"]) === false)) {
|
||||
if (trim($aSetup["MESS_ACCOUNT"]) != "") {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\" <" . $aSetup["MESS_ACCOUNT"] . ">";
|
||||
} else {
|
||||
if ($aSetup["MESS_ENGINE"] == "MAIL" && $sFrom != '') {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\"";
|
||||
} else {
|
||||
$sFrom = $sFrom . " <info@" . ((isset($_SERVER["HTTP_HOST"]) && $_SERVER["HTTP_HOST"] != "")? $_SERVER["HTTP_HOST"] : "processmaker.com") . ">";
|
||||
}
|
||||
}
|
||||
}
|
||||
$sFrom = G::buildFrom($aSetup, $sFrom);
|
||||
|
||||
$showMessage = ($showMessage) ? 1 : 0 ;
|
||||
|
||||
|
||||
@@ -167,28 +167,7 @@ class AppNotes extends BaseAppNotes
|
||||
$configNoteNotification['subject'] = G::LoadTranslation( 'ID_MESSAGE_SUBJECT_NOTE_NOTIFICATION' ) . " @#APP_TITLE ";
|
||||
$configNoteNotification['body'] = G::LoadTranslation( 'ID_CASE' ) . ": @#APP_TITLE<br />" . G::LoadTranslation( 'ID_AUTHOR' ) . ": $authorName<br /><br />$noteContent";
|
||||
|
||||
/*
|
||||
if ($sFrom == '') {
|
||||
$sFrom = '"ProcessMaker"';
|
||||
}
|
||||
*/
|
||||
if (isset($aConfiguration['MESS_FROM_NAME']) && $aConfiguration['MESS_FROM_NAME'] != '') {
|
||||
$sFrom = $aConfiguration['MESS_FROM_NAME'];
|
||||
}
|
||||
|
||||
$hasEmailFrom = preg_match( '/(.+)@(.+)\.(.+)/', $sFrom, $match );
|
||||
|
||||
if (!$hasEmailFrom || ($aConfiguration["MESS_ACCOUNT"] != '' && strpos($sFrom, $aConfiguration["MESS_ACCOUNT"]) === false)) {
|
||||
if (trim($aConfiguration["MESS_ACCOUNT"]) != "") {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\" <" . $aConfiguration["MESS_ACCOUNT"] . ">";
|
||||
} else {
|
||||
if ($aConfiguration["MESS_ENGINE"] == "MAIL" && $sFrom != '') {
|
||||
$sFrom = "\"" . stripslashes($sFrom) . "\"";
|
||||
} else {
|
||||
$sFrom = $sFrom . " <info@" . ((isset($_SERVER["HTTP_HOST"]) && $_SERVER["HTTP_HOST"] != "")? $_SERVER["HTTP_HOST"] : "processmaker.com") . ">";
|
||||
}
|
||||
}
|
||||
}
|
||||
$sFrom = G::buildFrom($aConfiguration, $sFrom);
|
||||
|
||||
$sSubject = G::replaceDataField( $configNoteNotification['subject'], $aFields );
|
||||
|
||||
|
||||
@@ -382,7 +382,7 @@ class adminProxy extends HttpProxyController
|
||||
$_POST['MESS_ACCOUNT'] = $mail_to;
|
||||
$_POST['MESS_PASSWORD'] = '';
|
||||
$_POST['TO'] = $mail_to;
|
||||
$_POST['SMTPAuth'] = true;
|
||||
$_POST['MESS_RAUTH'] = true;
|
||||
|
||||
try {
|
||||
$resp = $this->sendTestMail();
|
||||
@@ -538,9 +538,9 @@ class adminProxy extends HttpProxyController
|
||||
$_POST['TO'] = $Mailto;
|
||||
|
||||
if ($auth_required == 'true') {
|
||||
$_POST['SMTPAuth'] = true;
|
||||
$_POST['MESS_RAUTH'] = true;
|
||||
} else {
|
||||
$_POST['SMTPAuth'] = false;
|
||||
$_POST['MESS_RAUTH'] = false;
|
||||
}
|
||||
if (strtolower($_POST["UseSecureCon"]) != "no") {
|
||||
$_POST["SMTPSecure"] = $_POST["UseSecureCon"];
|
||||
@@ -582,11 +582,19 @@ class adminProxy extends HttpProxyController
|
||||
G::LoadClass("system");
|
||||
G::LoadClass('spool');
|
||||
|
||||
$eregMail = "/^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*@[0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3}$/";
|
||||
$aConfiguration = array(
|
||||
'MESS_ENGINE' => $_POST['MESS_ENGINE'],
|
||||
'MESS_SERVER' => $_POST['MESS_SERVER'],
|
||||
'MESS_PORT' => $_POST['MESS_PORT'],
|
||||
'MESS_ACCOUNT' => $_POST['MESS_ACCOUNT'],
|
||||
'MESS_PASSWORD' => $_POST['MESS_PASSWORD'],
|
||||
'MESS_FROM_NAME' => $_POST["FROM_NAME"],
|
||||
'MESS_FROM_MAIL' => $_POST["FROM_EMAIL"],
|
||||
'MESS_RAUTH' => $_POST['MESS_RAUTH'],
|
||||
'SMTPSecure' => isset($_POST['SMTPSecure'])?$_POST['SMTPSecure']:'none'
|
||||
);
|
||||
|
||||
$fromNameAux = ($_POST["FROM_NAME"] != "")? $_POST["FROM_NAME"] . " " : "";
|
||||
$fromMailAux = (preg_match($eregMail, $_POST["FROM_EMAIL"]))? "<" . $_POST["FROM_EMAIL"] . ">" : "";
|
||||
$sFrom = $fromNameAux . $fromMailAux;
|
||||
$sFrom = G::buildFrom($aConfiguration);
|
||||
|
||||
$sSubject = G::LoadTranslation('ID_MESS_TEST_SUBJECT');
|
||||
$msg = G::LoadTranslation('ID_MESS_TEST_BODY');
|
||||
@@ -613,18 +621,8 @@ class adminProxy extends HttpProxyController
|
||||
$sBody = $sBodyPre->getOutputContent();
|
||||
|
||||
$oSpool = new spoolRun();
|
||||
$oSpool->setConfig(
|
||||
array(
|
||||
'MESS_ENGINE' => $_POST['MESS_ENGINE'],
|
||||
'MESS_SERVER' => $_POST['MESS_SERVER'],
|
||||
'MESS_PORT' => $_POST['MESS_PORT'],
|
||||
'MESS_ACCOUNT' => $_POST['MESS_ACCOUNT'],
|
||||
'MESS_PASSWORD' => $_POST['MESS_PASSWORD'],
|
||||
"FROM_EMAIL" => $_POST["FROM_EMAIL"],
|
||||
'SMTPAuth' => $_POST['SMTPAuth'],
|
||||
'SMTPSecure' => isset($_POST['SMTPSecure'])?$_POST['SMTPSecure']:'none'
|
||||
)
|
||||
);
|
||||
|
||||
$oSpool->setConfig($aConfiguration);
|
||||
|
||||
$oSpool->create(
|
||||
array(
|
||||
@@ -699,7 +697,7 @@ class adminProxy extends HttpProxyController
|
||||
$aFields['MESS_ENGINE'] = $_POST['EmailEngine'];
|
||||
$aFields['MESS_SERVER'] = trim($_POST['server']);
|
||||
$aFields['MESS_RAUTH'] = isset($_POST['req_auth']) ? $_POST['req_auth'] : '';
|
||||
$aFields['MESS_RAUTH'] = ($aFields['MESS_RAUTH'] == 'true') ? '1' : $aFields['MESS_RAUTH'];
|
||||
$aFields['MESS_RAUTH'] = ($aFields['MESS_RAUTH'] == 'true') ? true : $aFields['MESS_RAUTH'];
|
||||
$aFields['MESS_PORT'] = $_POST['port'];
|
||||
$aFields['MESS_ACCOUNT'] = $_POST['from'];
|
||||
$aFields['MESS_BACKGROUND'] = '';//isset($_POST['background']) ? $_POST['background'] : '';
|
||||
|
||||
@@ -117,10 +117,7 @@ try {
|
||||
// Send notifications - Start
|
||||
$oUser = new Users();
|
||||
$aUser = $oUser->load( $_SESSION['USER_LOGGED'] );
|
||||
if (trim( $aUser['USR_EMAIL'] ) == '') {
|
||||
$aUser['USR_EMAIL'] = 'info@' . $_SERVER['HTTP_HOST'];
|
||||
}
|
||||
$sFromName = '"' . $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . '" <' . $aUser['USR_EMAIL'] . '>';
|
||||
$sFromName = $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ($aUser['USR_EMAIL'] != '' ? ' <' . $aUser['USR_EMAIL'] . '>' : '');
|
||||
try {
|
||||
$oCase->sendNotifications( $_SESSION['TASK'], $_POST['form']['TASKS'], $appFields['APP_DATA'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $sFromName );
|
||||
} catch (Exception $e) {
|
||||
|
||||
@@ -11,7 +11,7 @@ $user = new Users();
|
||||
|
||||
$userData = $rbacUser->getByUsername($data['USR_USERNAME']);
|
||||
|
||||
if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL'] && $userData['USR_AUTH_TYPE'] === '' ) {
|
||||
if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL'] && ($userData['USR_AUTH_TYPE'] === '' || $userData['USR_AUTH_TYPE'] == 'MYSQL') ) {
|
||||
$aSetup = System::getEmailConfiguration();
|
||||
if (count($aSetup) == 0 || !isset($aSetup['MESS_ENGINE'])) {
|
||||
G::SendTemporalMessage ('ID_EMAIL_ENGINE_IS_NOT_ENABLED', "warning");
|
||||
@@ -28,18 +28,7 @@ if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL'
|
||||
$user->update($aData);
|
||||
*/
|
||||
|
||||
if (trim($aSetup["MESS_FROM_NAME"]) === '') {
|
||||
$aSetup["MESS_FROM_NAME"] = 'PROCESSMAKER';
|
||||
}
|
||||
if ($aSetup['MESS_ENGINE'] === 'MAIL') {
|
||||
$sFrom = $aSetup["MESS_FROM_NAME"] . " <info@" . ((isset($_SERVER["HTTP_HOST"]) && $_SERVER["HTTP_HOST"] != "") ? $_SERVER["HTTP_HOST"] : "processmaker.com") . ">";
|
||||
} else {
|
||||
if (trim($aSetup["MESS_ACCOUNT"]) === '') {
|
||||
$sFrom = $aSetup["MESS_FROM_NAME"] . " <info@" . ((isset($_SERVER["HTTP_HOST"]) && $_SERVER["HTTP_HOST"] != "") ? $_SERVER["HTTP_HOST"] : "processmaker.com") . ">";
|
||||
} else {
|
||||
$sFrom = $aSetup["MESS_FROM_NAME"] . " <" . $aSetup["MESS_ACCOUNT"] . ">";
|
||||
}
|
||||
}
|
||||
$sFrom = G::buildFrom($aSetup, $sFrom);
|
||||
|
||||
$sSubject = G::LoadTranslation('ID_RESET_PASSWORD').' - ProcessMaker' ;
|
||||
$msg = '<h3>ProcessMaker Forgot password Service</h3>';
|
||||
@@ -92,13 +81,13 @@ if ($userData['USR_EMAIL'] != '' && $userData['USR_EMAIL'] === $data['USR_EMAIL'
|
||||
$oSpool->sendMail();
|
||||
$rbacUser->update($aData);
|
||||
$user->update($aData);
|
||||
G::header ("location: login.html");
|
||||
G::header ("location: login");
|
||||
G::SendTemporalMessage ('ID_NEW_PASSWORD_SENT', "info");
|
||||
} catch (phpmailerException $e) {
|
||||
G::header ("location: login.html");
|
||||
G::header ("location: login");
|
||||
G::SendTemporalMessage (G::LoadTranslation('MISSING_OR_NOT_CONFIGURED_SMTP'), "warning", 'string');
|
||||
} catch (Exception $e) {
|
||||
G::header ("location: login.html");
|
||||
G::header ("location: login");
|
||||
G::SendTemporalMessage ($e->getMessage(), "warning", 'string');
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user