Problem Sending Mail

Ask your questions regarding TimeTrex installation here.
Locked
logicbytes
Posts: 5
Joined: Thu Feb 26, 2009 11:07 am

Problem Sending Mail

Post by logicbytes »

I have setup TimeTrex on a local winxp pro box I have edited the php.ini to the following values

[mail function]
; For Win32 only.
SMTP = 10.10.10.3 (also tried using DNS here mail.domain.com)
smtp_port = 25

; For Win32 only.
sendmail_from = Timeclock@domain.com

I do not receive emails. I put Timetrex in debug mode and tried resetting a password and it gave me the following error.

Warning: mail() [function.mail]: SMTP server response: 553 malformed address: <> in C:\Program Files\TimeTrex\timetrex\classes\modules\users\UserFactory.class.php on line 1918

Line 1918 of UserFactory.class.php has the following

$retval = mail($primary_email, $subject, $body, "MIME-Version: 1.0\nContent-type: text/html; charset=iso-8859-1\nFrom: \"TimeTrex - Password Reset\"<DoNotReply@".Misc::getHostName().">\nCc: ". $secondary_email ."\n");


any help qould be appreciated.
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Post by shaunw »

Its possible that TimeTrex can't determine your domain name on its own, so you could try adding this line to the [other] section of your timetrex.ini.php file:

hostname=domain.com
logicbytes
Posts: 5
Joined: Thu Feb 26, 2009 11:07 am

Post by logicbytes »

Thanks for the prompt response. I get the same message after adding that line.
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Post by shaunw »

Okay, you will need to follow the instructions here:

http://forums.timetrex.com/viewtopic.php?t=89

To enable debugging mode, so errors are logged to the TimeTrex log file.

You will then need to try to reset the password again, and search the log for a line that contains this:
Emailing Report to
If you can copy and paste that line here, and a few lines before and after, that would help.
logicbytes
Posts: 5
Joined: Thu Feb 26, 2009 11:07 am

Post by logicbytes »

Sorry got sidetracked, I had all ready enabled debugging and output to a log file last week, I do not see the line Emailing Report to in my log, This is what outputs into the log

Code: Select all

[26-Feb-2009 15:49:28] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/Program Files/TimeTrex/php/ext\php_mcrypt.dll' - The specified module could not be found.

 in Unknown on line 0

[26-Feb-2009 20:50:10] PHP Warning:  mail() [<a href='function.mail'>function.mail</a>]: SMTP server response: 553 malformed address: <> in C:\Program Files\TimeTrex\timetrex\classes\modules\users\UserFactory.class.php on line 1918
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Post by shaunw »

You need to check the TimeTrex log file, what you showed there was the PHP log file. They are completely different.
logicbytes
Posts: 5
Joined: Thu Feb 26, 2009 11:07 am

Post by logicbytes »

sorry about that

Code: Select all

DEBUG [53]:	<b>[Function]()</b>: Action: reset_password<br>
DEBUG [110]:	<b>[Function]()</b>: Email: msaraceno@domain.com<br>
DEBUG [320]:	<b>Validator::isEmail()</b>: Raw Email: msaraceno@domain.com<br>
DEBUG [149]:	<b>Validator::isLength()</b>: Value: b2664e9f6da9317c555496415a0e04e5 Length: 32 Min: 1 Max: 255<br>
DEBUG [358]:	<b>Validator::isDate()</b>: Raw Date: 1235670631 Converted Value: 1235670631<br>
DEBUG [726]:	<b>Factory::StartTransaction()</b>: StartTransaction(): Transaction Count: 0 Trans Off: 0<br>
DEBUG [772]:	<b>Factory::Save()</b>: Calling preSave()<br>
DEBUG [993]:	<b>UserFactory::setDefaultDepartment()</b>: Department ID: 0<br>
DEBUG [743]:	<b>Factory::isValid()</b>: Calling Validate()<br>
DEBUG [815]:	<b>Factory::Save()</b>:  Updating...<br>
DEBUG [640]:	<b>Factory::getUpdateQuery()</b>: Update<br>
DEBUG [358]:	<b>Validator::isDate()</b>: Raw Date: 1235670631 Converted Value: 1235670631<br>
DEBUG [671]:	<b>Factory::getUpdateQuery()</b>: Data changed, set updated date: <br>
DEBUG [110]:	<b>Validator::isNumeric()</b>: Value:2<br>
DEBUG [98]:	<b>Validator::inArrayKey()</b>: Key: 20<br>
DEBUG [149]:	<b>Validator::isLength()</b>: Value: users Length: 5 Min: 2 Max: 250<br>
DEBUG [149]:	<b>Validator::isLength()</b>: Value: User Information Length: 16 Min: 2 Max: 2000<br>
DEBUG [726]:	<b>Factory::StartTransaction()</b>: StartTransaction(): Transaction Count: 1 Trans Off: 1<br>
DEBUG [772]:	<b>Factory::Save()</b>: Calling preSave()<br>
DEBUG [358]:	<b>Validator::isDate()</b>: Raw Date: 1235670631 Converted Value: 1235670631<br>
DEBUG [802]:	<b>Factory::Save()</b>: Insert ID: 376<br>
DEBUG [708]:	<b>Factory::getInsertQuery()</b>: Insert<br>
DEBUG [736]:	<b>Factory::CommitTransaction()</b>: CommitTransaction(): Transaction Count: 1 Trans Off: 2<br>
DEBUG [853]:	<b>Factory::Save()</b>: Calling postSave()<br>
DEBUG [69]:	<b>Factory::removeCache()</b>: Attempting to remove cache: 2<br>
DEBUG [75]:	<b>Factory::removeCache()</b>: Removing cache: 2 Group Id: users<br>
DEBUG [736]:	<b>Factory::CommitTransaction()</b>: CommitTransaction(): Transaction Count: 1 Trans Off: 1<br>
DEBUG [1912]:	<b>UserFactory::sendPasswordResetEmail()</b>: Emailing Report to: lmohamoud Email: msaraceno@domain.com<br>
DEBUG [1913] Array: <b>UserFactory::sendPasswordResetEmail()</b>: Email Report
<pre>

			<html><body>
			If you did not request your password to be reset, you may ignore this email.
			<br>
			<br>
			If you did request the password for lmohamoud to be reset,
			please click <a href="http://10.10.100.66/interface/ForgotPassword.php?action:password_reset=null&key=b2664e9f6da9317c555496415a0e04e5">here</a>
			</body></html>
			</pre><br>
DEBUG [110]:	<b>Validator::isNumeric()</b>: Value:2<br>
DEBUG [98]:	<b>Validator::inArrayKey()</b>: Key: 500<br>
DEBUG [149]:	<b>Validator::isLength()</b>: Value: users Length: 5 Min: 2 Max: 250<br>
DEBUG [149]:	<b>Validator::isLength()</b>: Value: User Password Reset By: 10.10.100.82 Key: b2664e9f6da9317c555496415a0e04e5 Length: 74 Min: 2 Max: 2000<br>
DEBUG [726]:	<b>Factory::StartTransaction()</b>: StartTransaction(): Transaction Count: 0 Trans Off: 0<br>
DEBUG [772]:	<b>Factory::Save()</b>: Calling preSave()<br>
DEBUG [358]:	<b>Validator::isDate()</b>: Raw Date: 1235670631 Converted Value: 1235670631<br>
DEBUG [802]:	<b>Factory::Save()</b>: Insert ID: 377<br>
DEBUG [708]:	<b>Factory::getInsertQuery()</b>: Insert<br>
DEBUG [736]:	<b>Factory::CommitTransaction()</b>: CommitTransaction(): Transaction Count: 1 Trans Off: 1<br>
DEBUG [1919]:	<b>UserFactory::sendPasswordResetEmail()</b>: Mail() result: 0<br>
DEBUG [117]:	<b>[Function]()</b>: Found USER! <br>
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Post by shaunw »

Code: Select all

DEBUG [1912]:   <b>UserFactory::sendPasswordResetEmail()</b>: Emailing Report to: lmohamoud Email: msaraceno@domain.com<br>
DEBUG [1913] Array: <b>UserFactory::sendPasswordResetEmail()</b>: Email Report
<pre>

         <html><body>
         If you did not request your password to be reset, you may ignore this email.
         <br>
         <br>
         If you did request the password for lmohamoud to be reset,
         please click <a href="http://10.10.100.66/interface/ForgotPassword.php?action:password_reset=null&key=b2664e9f6da9317c555496415a0e04e5">here</a>
         </body></html>
         </pre><br> 
According to that, TimeTrex sent the email, which is all it can do. If the email isn't getting received its something to with PHP, your mail settings for PHP, your ISP, your email server, or spam filters blocking it that are the issue.

Due to SPAM problems these days many ISPs block outgoing email, so sending email from a non-business internet connection can be a huge hassle, if even possible.
logicbytes
Posts: 5
Joined: Thu Feb 26, 2009 11:07 am

Post by logicbytes »

I can rule out the ISP Spam Filter and Mail Server. I host my own exchange mail server through a T-1, the time trex box is part of the local network of the mail server and is trusted. Where should I look for problems with PHP

My original error was the following.
I do not receive emails. I put Timetrex in debug mode and tried resetting a password and it gave me the following error.

Warning: mail() [function.mail]: SMTP server response: 553 malformed address: <> in C:\Program Files\TimeTrex\timetrex\classes\modules\users\UserFactory.class.php on line 1918
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Post by shaunw »

Does that PHP error appear everytime you try to email a forgotten password? The server response is malformed address, but what address is it referring to? From address, To address, CC address?

Doing a Google search for that error message tells me that Exchange may have issues with certain types of email address that are RFC compliant.

Here is one example:
http://www.activecollab.com/forums/topic/1800/
mountdigit
Posts: 8
Joined: Wed Jul 22, 2009 3:14 am

Post by mountdigit »

In my case when i try to reset the password it says Email address was not found in our database.


System Information
Product Edition: Standard
Version: 2.2.22

---------------------------
ebug Buffer
============================================================================
Memory Usage: 5227864
----------------------------------------------------------------------------
DEBUG [117]: TTDate::setTimeZone(): Setting TimeZone: Asia
DEBUG [58]: [Function](): Bypassing Authentication
DEBUG [404]: TTi18n::chooseBestLocale(): Choosing Best Locale...
DEBUG [412]: TTi18n::chooseBestLocale(): Using Language from cookie: en_US
DEBUG [322]: TTi18n::setLocale(): Generated/Passed In Locale: en_US
DEBUG [256]: TTi18n::generateLocale(): Array of Locales to try in order: en_US,en
DEBUG [207]: TTi18n::tryLocale(): Found valid windows locale: English_United States.1252 Linux locale: en_US
DEBUG [215]: TTi18n::tryLocale(): Found valid locale: en_US
DEBUG [328]: TTi18n::setLocale(): Attempting to set Locale(s) to: en_US Category: 0 Current Locale:
DEBUG [331]: TTi18n::setLocale(): Setting currency/numeric Locale to: en_US
DEBUG [344]: TTi18n::setLocale(): Setting translator locale to: en_US
DEBUG [361]: TTi18n::setLocale(): Set Master Locale To: en_US
DEBUG [467]: TTi18n::chooseBestLocale(): Using Locale: en_US
DEBUG [53]: [Function](): Action: reset_password
DEBUG [110]: [Function](): Email: admin@xxxxx.com
DEBUG [320]: Validator::isEmail(): Raw Email: admin@xxxxx.com
DEBUG [122]: [Function](): DID NOT FIND USER!
DEBUG [507]: Validator::Error(): Validation Error: Label: email Msg: Email address was not found in our database
DEBUG [486] Array: Validator::isValid(): Errors

Array
(
[email] => Array
(
[0] => Email address was not found in our database
)

)


============================================================================

============================================================================
PROFILER OUTPUT
============================================================================
Calls Time Routine
-----------------------------------------------------------------------------
1 0.0000 ms (0.00 %) unprofiled

214.8879 ms (100.00 %) Missed
============================================================================
214.8879 ms (100.00 %) OVERALL TIME
===========================================================================

--------------------------

Can anyone help!
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Post by shaunw »

There isn't much to say, if TimeTrex can't find the specified email address in its database, then it doesn't exist.
Locked