OpenCATS 0.9.4-3

Free, Open-Source Applicant Tracking System including job-board. Entirely customisable!

Please describe the issue you're having
If you accept the answer, please mark the topic as [SOLVED] by clicking the tick.

Moderators: RussH, cptr13

Forum rules: Just please remember to play nicely once you walk through the door. You can disagree with us, or any other commenters in this forum, but respect our space and keep your comments directed to the topic at hand.
I have installed OpenCATS V0.9.4-2 on a Windows10 Laptop, using XAMPP with PHP 5.2.0 and opted to include emails during setup, using an Outlook email address.

Logging on as Administrator and entering the Administration area I have tried to send a test email. This fails with a message "SMTP Connect() Failed".

Is there a simple solution for this as my IT knowledge is limited?

Any help gratefully received and thank you in advance.
As an addendum to my question above:

I find that I can manually send emails from the Candidate and Contact areas of Opencats which successfully arrive at the recipient's inbox as having come from Mail for Windows10. Can I therefore assume that these are going via Opencats and that Outlook is not blocking them?

However, when making an Activity Entry, an Activity is logged and an Activity email created and while the system indicates that this has been sent, no actual email is received by the recipient (and perhaps is never sent).

Does this additional information give anyone a clue as to why this is happening?
I have now tried editing:

the XAMPP "php.ini" file sendmail_path

and also the XAMPP "sendmail.ini (to include the Outlook port 587 and leaving smtp_ssl=auto)

Unfortunately, this still does not enable emails to be sent automatically when an Activity Entry is made within OpenCATS

Any ideas very welcome.
User avatar
By RussH
Hi Christopher

If you're logging an activity against a candidate, and you choose an activity type of 'email' is just you recording that you've emailed them. It doesn't actually generate an email. It just updates the activity log with an activity type of 'email' and whatever description you put against it.
Thank you Russ for your help with this. As my tweaking of php.ini and sendmail.ini is not resulting in being able to send quality emails from within the system, I will follow your advice and use Outlook independently from Opencats.

I assume that the email templates do not have a use currently but are there for possible integration in a future release.

Best wishes.
User avatar
By RussH
Hi Christopher,

The email templates are sent automatically when a candidate status is changed, i.e. when a candidate is no longer in consideration. The 'use this template' checkbox has to be selected for that template of course.

There is a pending feature to have email templates that can be sent to candidates "User is able to use them for direct emailing to candidates e.g. from main candidate datagrid under Action ->Send Email."

This PR is pending manual testing before being added to Opencats as a feature.. but it can be added manually to your instance if you want to be an early adopter;
Dear Russ

Thank you very much for this. That is very useful to know.

As I am not an IT expert, I think I should remain as close as possible to the standard version of Opencats and only use new features as they are integrated into enhanced base product.

All I need to do now is try and figure out why the php.ini and sendmail.ini are stopping me from sending emails (if indeed these are the files causing the problem).

Best wishes

User avatar
By RussH
Hi. If your test email isn't working then it's unlikely to be sendmail.ini and/or php.ini. Can you check your basic settings for mail gateway, port, username & password to ensure they're correct?

the config should be stored in your config.php file in the directory you installed opencats to. Feel free to post it here if you want, but replace your username and password first!
Thank you and please see below file with my password replaced with MYPASSWORD

* Configuration File
* Copyright (C) 2005 - 2007 Cognizo Technologies, Inc.
* The contents of this file are subject to the CATS Public License
* Version 1.1a (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
* The Original Code is "CATS Standard Edition".
* The Initial Developer of the Original Code is Cognizo Technologies, Inc.
* Portions created by the Initial Developer are Copyright (C) 2005 - 2007
* (or from the year in which this file was created to the year 2007) by
* Cognizo Technologies, Inc. All Rights Reserved.
* $Id: config.php 3826 2007-12-10 06:03:18Z will $

/* License key. */

/* Database configuration. */
define('DATABASE_USER', 'Opencats');
define('DATABASE_PASS', 'Opencats');
define('DATABASE_HOST', 'localhost');
define('DATABASE_NAME', 'Opencats');

/* Authentication Configuration
* Options are sql, ldap, sql+ldap
define ('AUTH_MODE', 'sql');

/* Resume Import Services Enabled */
define('PARSING_ENABLED', false);

/* If you have an SSL compatible server, you can enable SSL for all of CATS. */
define('SSL_ENABLED', false);

/* Text parser settings. Remember to use double backslashes (\) to represent
* one backslash (\). On Windows, installing in C:\antiword\ is
* recomended, in which case you should set ANTIWORD_PATH (below) to
* 'C:\\antiword\\antiword.exe'. Windows Antiword will have problems locating
* mapping files if you install it anywhere but C:\antiword\.
define('ANTIWORD_PATH', "\\path\\to\\antiword");
define('ANTIWORD_MAP', '8859-1.txt');

/* XPDF / pdftotext settings. Remember to use double backslashes (\) to represent
* one backslash (\).
define('PDFTOTEXT_PATH', "\\path\\to\\pdftotext");

/* html2text settings. Remember to use double backslashes (\) to represent
* one backslash (\). 'html2text' can be found at:
define('HTML2TEXT_PATH', "\\path\\to\\html2text");

/* UnRTF settings. Remember to use double backslashes (\) to represent
* one backslash (\). 'unrtf' can be found at:
define('UNRTF_PATH', "\\path\\to\unrtf");

/* Temporary directory. Set this to a directory that is writable by the
* web server. The default should be fine for most systems. Remember to
* use double backslashes (\) to represent one backslash (\) on Windows.
define('CATS_TEMP_DIR', './temp');

/* If User Details and Login Activity pages in the settings module are
* unbearably slow, set this to false.
define('ENABLE_HOSTNAME_LOOKUP', false);

/* CATS can optionally use Sphinx to speed up document searching.
* Install Sphinx and set ENABLE_SPHINX (below) to true to enable Sphinx.
define('ENABLE_SPHINX', false);
define('SPHINX_API', './lib/sphinx/sphinxapi.php');
define('SPHINX_HOST', 'localhost');
define('SPHINX_PORT', 3312);
define('SPHINX_INDEX', 'cats catsdelta');

/* Probably no need to edit anything below this line. */

/* Pager settings. These are the number of results per page. */
define('CONTACTS_PER_PAGE', 15);
define('CANDIDATES_PER_PAGE', 15);
define('CLIENTS_PER_PAGE', 15);

/* Maximum number of characters of the owner/recruiter users' last names
* to show before truncating.
define('LAST_NAME_MAXLEN', 6);

/* Length of resume excerpts displayed in Search Candidates results. */

/* Number of MRU list items. */
define('MRU_MAX_ITEMS', 5);

/* MRU item length. Truncate the rest */
define('MRU_ITEM_LENGTH', 20);

/* Number of recent search items. */

/* HTML Encoding. */
define('HTML_ENCODING', 'UTF-8');

/* AJAX Encoding. */
define('AJAX_ENCODING', 'UTF-8');

/* SQL Character Set. */
define('SQL_CHARACTER_SET', 'utf8');

/* Insert BOM in the beginning of CSV file */
/* This is UTF-8 BOM, EF BB BF for UTF-8 */
define('INSERT_BOM_CSV_LENGTH', '3');
define('INSERT_BOM_CSV_1', '239');
define('INSERT_BOM_CSV_2', '187');
define('INSERT_BOM_CSV_3', '191');
define('INSERT_BOM_CSV_4', '');

/* Path to modules. */
define('MODULES_PATH', './modules/');

/* Unique session name. The only reason you might want to modify this is
* for multiple CATS installations on one server. A-Z, 0-9 only! */

/* Subject line of e-mails sent to candidates via the career portal when they
* apply for a job order.
define('CAREERS_CANDIDATEAPPLY_SUBJECT', 'Thank You for Your Application');

/* Subject line of e-mails sent to job order owners via the career portal when
* they apply for a job order.
define('CAREERS_OWNERAPPLY_SUBJECT', 'CATS - A Candidate Has Applied to Your Job Order');

/* Subject line of e-mails sent to candidates when their status changes for a
* job order.
define('CANDIDATE_STATUSCHANGE_SUBJECT', 'Job Application Status Change');

/* Password request settings.
* In FORGOT_PASSWORD_FROM, %s is the placeholder for the password.
define('FORGOT_PASSWORD_SUBJECT', 'CATS - Password Retrieval Request');
define('FORGOT_PASSWORD_BODY', 'You recently requested that your OpenCATS: Applicant Tracking System password be sent to you. Your current password is %s.');

/* Is this a demo site? */
define('ENABLE_DEMO_MODE', false);

/* Offset to GMT Time. */
define('OFFSET_GMT', 0);

/* Should we enforce only one session per user (excluding demo)? */
define('ENABLE_SINGLE_SESSION', false);

/* Automated testing. This is only useful for the CATS core team at the moment;
* don't worry about this yet.
define('TESTER_LOGIN', '');
define('TESTER_PASSWORD', 'john99');
define('TESTER_FIRSTNAME', 'John');
define('TESTER_LASTNAME', 'Anderson');
define('TESTER_FULLNAME', 'John Anderson');
define('TESTER_USER_ID', 4);

/* Demo login. */
define('DEMO_LOGIN', '');
define('DEMO_PASSWORD', 'john99');

/* This setting configures the method used to send e-mail from CATS. CATS
* can send e-mail via SMTP, PHP's built-in mail support, or via Sendmail.
* 0 is recomended for Windows.
* 0: Disabled
* 1: PHP Built-In Mail Support
* 2: Sendmail
* 3: SMTP
define('MAIL_MAILER', 1);

/* Sendmail Settings. You don't need to worry about this unless MAIL_MAILER
* is set to 2.
define('MAIL_SENDMAIL_PATH', "/usr/sbin/sendmail");

/* SMTP Settings. You don't need to worry about this unless MAIL_MAILER is
* set to 3. If your server requires authentication, set MAIL_SMTP_AUTH to
* true and configure MAIL_SMTP_USER and MAIL_SMTP_PASS.
define('MAIL_SMTP_HOST', "localhost");
define('MAIL_SMTP_PORT', 587);
define('MAIL_SMTP_AUTH', false);
define('MAIL_SMTP_USER', "");
//Options: '', 'ssl' or 'tls'
define('MAIL_SMTP_SECURE', "ssl");

/* Event reminder E-Mail Template. */
$GLOBALS['eventReminderEmail'] = <<<EOF

This is a reminder from the OpenCATS Applicant Tracking System about an
upcoming event.

Is scheduled to occur %DUETIME%.


OPENCATS Applicant Tracking System

/* Enable replication slave mode? This is probably only useful for the CATS
* core team. If this setting is enabled, no writing to the database will
* occur, and only ROOT users can login.
define('CATS_SLAVE', false);

/* If enabled, CATS only scans the modules folder once and stores the results
* in modules.cache. When enabled, a performance boost is obtained, but
* any changes to hooks, schemas, or what modules are installed will require
* modules.cache to be deleted before they take effect.

define('CACHE_MODULES', false);

/* If enabled, the US zipcode database is installed and the user can filter
* by distance from a zipcode.

define('US_ZIPS_ENABLED', false);

/* LDAP Configuration
define ('LDAP_HOST', '');
define ('LDAP_PORT', '389');

define ('LDAP_BASEDN', 'dc=example,dc=com');

define ('LDAP_BIND_DN', 'cn=read-only-admin,dc=example,dc=com');
define ('LDAP_BIND_PASSWORD', 'password');

define ('LDAP_ACCOUNT', '{$username}'); // '{$username}' cannot be changed, else can

define ('LDAP_ATTRIBUTE_UID', 'uid');
define ('LDAP_ATTRIBUTE_DN', 'dn');
define ('LDAP_ATTRIBUTE_FIRSTNAME', 'givenname');
define ('LDAP_ATTRIBUTE_EMAIL', 'mail');

define ('LDAP_SITEID', 1);

/* Job Types mapping
/* Uncomment bellow if you want custom mapping */
class JOB_TYPES {
public static $LIST = array(
'PT' => 'Part-Time',
'FT' => 'Full-Time',
'ST' => 'Student',
'FL' => 'Freelance'


class ACL_SETUP {

// defining user roles
public static $USER_ROLES = array(
'candidate' => array('Candidate', 'candidate', 'This is a candidate.', ACCESS_LEVEL_SA, ACCESS_LEVEL_READ),
'demo' => array('Demo', 'demo', 'This is a demo user.', ACCESS_LEVEL_SA, ACCESS_LEVEL_READ)

// defining access levels different from the default access level
public static $ACCESS_LEVEL_MAP = array(
'candidate' => array(
'demo' => array(
'candidates' => ACCESS_LEVEL_DELETE,
'candidates.emailCandidates' => ACCESS_LEVEL_DISABLED,
'candidates.history' => ACCESS_LEVEL_DEMO,
'joborders' => ACCESS_LEVEL_DELETE,

/* All possible secure object names

By dveos
Try SMTP email option

ALso change host (local host) to the server address you have in the user field then enter your email address into the user field.

Is there a way to add a "Custom Field" t[…]

Unable to add attachment in OpenCATS User Login

Hi Team, Our OpenCATS Create Candidate Attachment […]

I've now implemented an iCal feed for the calendar[…]

Get your hands on the best solo microwave oven, be[…]

Hi, this is an activity update against a candida[…]

Hosting / Development

Yws. I am intrested. Because I want o change my we[…]

Clearly, this could just as easily be used to gen[…]

Security issues

it's dependant on me getting my lazy/busy arse int[…]