Friday, September 6, 2013

Issue encounter and simple note on Mantis exploration

System Environment
Mantis Version: 1.2.15
WAMP version 2.4

How to configure email notification on Mantis using Gmail SMTP Server?

Note: Assume Gmail account has been created

Steps to resolve
1. Open config_defaults_inc.php, edit the parameters as described below:
/**
  * Allow email notification.
  * Set to ON to enable email notifications, OFF to disable them. Note that
  * disabling email notifications has no effect on emails generated as part
  * of the user signup process. When set to OFF, the password reset feature
  * is disabled. Additionally, notifications of administrators updating
  * accounts are not sent to users.
  * @global int $g_enable_email_notification
*/
$g_enable_email_notification = ON;

/**
  * select the method to mail by:
  * PHPMAILER_METHOD_MAIL - mail()
  * PHPMAILER_METHOD_SENDMAIL - sendmail
  * PHPMAILER_METHOD_SMTP - SMTP
  * @global int $g_phpMailer_method
*/
$g_phpMailer_method = PHPMAILER_METHOD_SMTP;

/**
  * This option allows you to use a remote SMTP host.  Must use the phpMailer script
  * One or more hosts, separated by a semicolon, can be listed.
  * You can also specify a different port for each host by using this
  * format: [hostname:port] (e.g. "smtp1.example.com:25;smtp2.example.com").
  * Hosts will be tried in order.
  * @global string $g_smtp_host
*/
$g_smtp_host = 'smtp.gmail.com';

/**
  * These options allow you to use SMTP Authentication when you use a remote
  * SMTP host with phpMailer.  If smtp_username is not '' then the username
  * and password will be used when logging in to the SMTP server.
  * @global string $g_smtp_username
*/
$g_smtp_username = '[GMAIL_ACCT_ID]';

/**
  * SMTP Server Authentication password
  * @global string $g_smtp_password
*/
$g_smtp_password = '[GMAIL_ACCT_PASSWD]';

/**
  * This control the connection mode to SMTP server. Can be 'ssl' or 'tls'
  * @global string $g_smtp_connection_mode
*/
$g_smtp_connection_mode = 'ssl';

/**
  * The smtp port to use.  The typical SMTP ports are 25 and 587.  The port to use
  * will depend on the SMTP server configuration and hence others may be used.
  * @global int $g_smtp_port
*/
$g_smtp_port = 465;

How to send email using simple SMTP command through Gmail SMTP Server?

Note: 
- Assume Perl is installed on your machine to encode both user id and password in base64.
- Assume OpenSSL is available on your machine

Steps to resolve

1. Using openssl to direct connect to the Gmail SMTP server, a SSL handshaking will be executed.
openssl s_client -connect smtp.gmail.com:465 -crlf -ign_eof

2. Type in the command below to introduce yourself to the mail server.
ehlo [MY_DOMAIN] //Note: ehlo localhost

3. Before hand, please use Perl on another command prompt to encode both your [GMAIL_USER_ID] and [GMAIL_USER_PASSWORD] into base64. Below are the command helping you to generate encoded user id and password for authentication purpose.
perl -MMIME::Base64 -e "print encode_base64(qq(\000[GMAIL_USER_ID]\@gmail.com\000[GMAIL_USER_PASSWORD]))"
Once the command has been executed, you will get an encoded output, let's assume it as [BASE64_USERID_PASSWORD]

4. Back to your SMTP command prompt, type in the command as shown below to pass the authentication
AUTH PLAIN [BASE64_USERID_PASSWORD]
Response "2.7.0 Accepted" will be prompted

5. Type in the command below to set the sender gmail id
MAIL FROM: <[SENDER_GMAIL_ID]@gmail.com>

6. Type in the command below to set the recipient gmail id
RCPT TO: <[RECIPIENT_GMAIL_ID]@gmail.com>

7. Enter the command "DATA" to proceed with composing the email subject and body.
DATA

8. Enter the email body and subject based on the description and shown below
Subject: Hello Testing

Hello Testing!
.
Note: The '.' is represented the email composing has been completed and trigger sent command

How to resolve Mantis email problem when WAMP 2.4 is used?

Configure email notification on Mantis that run on WAMP 2.4 through Gmail SMTP server, always unable to send email. Have a further investigation, discovered that I need to turn on php_openssl in my WAMP PHP extensions. When turn on the php_openssl extension, encounter the error as shown in the log file.
[Mon Sep 09 14:57:33.670249 2013] [mpm_winnt:notice] [pid 1544:tid 352] AH00418: Parent: Created child process 2280
[Mon Sep 09 14:57:34.174249 2013] [ssl:warn] [pid 2280:tid 244] AH01882: Init: this version of mod_ssl was compiled against a newer library (OpenSSL 1.0.1e 11 Feb 2013, version currently loaded is OpenSSL 1.0.1d 5 Feb 2013) - may result in undefined or erroneous behavior
[Mon Sep 09 14:57:34.909049 2013] [ssl:warn] [pid 2280:tid 244] AH01882: Init: this version of mod_ssl was compiled against a newer library (OpenSSL 1.0.1e 11 Feb 2013, version currently loaded is OpenSSL 1.0.1d 5 Feb 2013) - may result in undefined or erroneous behavior
[Mon Sep 09 14:57:35.824849 2013] [ssl:warn] [pid 2280:tid 244] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
From the error log, seems like OpenSSL version is not correct and I found out the hyperlink as described below to explain steps to upgrade the OpenSSL version.

http://stackoverflow.com/questions/17354788/enabling-openssl-in-wamp

Once the OpenSSL version is upgraded to version OpenSSL 1.0.1e, I am able to turn on php_openssl in my WAMP PHP extensions and finally email notification is working in my Mantis installation.

How to turn on LDAP authentication on Mantis?

To turn on the LDAP authentication on Mantis that normally required by corporate users, below are some tips on how to achieve it.

Steps to resolve

1. Open config_defaults_inc.php, edit the parameters as described below:
/**
* login method
* MD5, LDAP, BASIC_AUTH or HTTP_AUTH.
* Note: you may not be able to easily switch encryption methods, so this
* should be carefully chosen at install time. However, MantisBT will attempt
* to "fall back" to older methods if possible.
* @global int $g_login_method
*/
$g_login_method = LDAP;

//Examples, ldap://ldap.example.com:389
$g_ldap_server = 'ldap://[LDAP_SERVER]:389';


//Examples, dc=employee,dc=it,dc=departmentname,dc=companyname
//Note: Please use the most exact DN instead of global DN. Otherwise,
//Mantis will keep throwing empty response and the application will always 
//show empty page
$g_ldap_root_dn = '[LDAP_DN_PARAMETER]';

//Use sAMAccountName for Active Directory
$g_ldap_uid_field = 'sAMAccountName';

/**
* The distinguished of the user account to use for binding to the LDAP server.
* For example, 'CN=ldap,OU=Administrators,DC=example,DC=com'.
*
* @global string $g_ldap_bind_dn
*/
$g_ldap_bind_dn = '[DOMAIN_NAME]\[USERNAME]';

/**
* The password for the service account to be used for connecting to the LDAP server.
*
* @global string $g_ldap_bind_passwd
*/
$g_ldap_bind_passwd = '[PASSWORD]';

/**
* Should we send to the LDAP email address or what MySql tells us
* @global int $g_use_ldap_email
*/
$g_use_ldap_email = ON;

/**
* The LDAP Protocol Version, if 0, then the protocol version is not set.  For Active Directory use version 3.
*
* @global int $g_ldap_protocol_version
*/
$g_ldap_protocol_version = 3;

How to turn on debug message in Mantis for LDAP troubleshooting?

To turn on the debug message for LDAP troubleshooting, below are the steps and configuration that are required

Steps to resolve
1. Open php.ini which is located at "[WAMP_INSTALL_PATH]\bin\apache\Apache2.4.4\bin".
2. Uncomment 'error_log = "[WAMP_INSTALL_PATH]/logs/php_error.log"'
3. Open config_defaults_inc.php in Mantis, change the value of g_log_level to LOG_LDAP
$g_log_level = LOG_LDAP;
Restart your WAMP server, LDAP log will be available at [WAMP_INSTALL_PATH]\logs\php_error.log.

How to reset your mysql user account password through command line?

Open your mysql browser, type in the command as displayed below

UPDATE mysql.user SET Password=PASSWORD('[MyNewPass]') WHERE User='root';
FLUSH PRIVILEGES;
Relogin again.

No comments: