Community Support for OpenDocMan (Deprecated)
Mail sent to reviewers ? - Printable Version

+- Community Support for OpenDocMan (Deprecated) (https://forum.opendocman.com)
+-- Forum: OpenDocMan Community Discussion (https://forum.opendocman.com/forum-5.html)
+--- Forum: OpenDocMan Support - Community Based (https://forum.opendocman.com/forum-6.html)
+--- Thread: Mail sent to reviewers ? (/thread-39.html)



Mail sent to reviewers ? - Stephen - 01-12-2010

jacques2009


2008-07-31 02:28:18 PDT
Hello,

quite newbie question .. I have been installing and setting ODM for a couple of days now, looks fine. However, i would have thought that an email could be sent to reviewers warning them that they have a document to review ...
Is there some parameter to enable somewhere ?

Thanks,
Jacques.
jonathanwminer


2008-07-31 10:15:44 PDT
Please add this as a feature request, under the "Tracker" menu.

Thanks
jacques2009


2008-08-01 05:21:55 PDT
Done !

Jacques.
tommcgee


2008-12-12 12:20:52 PST
Answering two questions at once, I needed to do this AND use an SMTP server. Here's what I did.

I installed the Pear Mail.php module and included this line near the top of the config_local.php file:

require_once '/opt/php/lib/php/Mail.php';

Then I put a custom function called "Smail" into the config_local.php file:

//A replacement mail function that allows use of the SMTP server on campus

function Smail($to,$subject,$body,$header) {
$host = "smtp.yourdomain.com"; //the name of your smtp server
$headers_raw = preg_split('/: */',$header); //since it's always "From: <!-- e --><a href="mailto:[email protected]">[email protected]</a><!-- e -->"
//$fh = fopen('/tmp/mailtest','w');
//fwrite($fh, $header . " " . $headers_raw[1]);
$headers = array( 'From' => $headers_raw[1], 'Subject' => $subject );

$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => false));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
// echo("<p>" . $mail->getMessage() . "</p>");
//$fh = fopen('/tmp/mailtest','w');
fwrite($fh, $mail->getMessage());
} else {
// echo("<p>Message successfully sent!</p>");
}
}


Then everywhere in the package that the mail() command is invoked I just changed it to Smail().

Problem two, sending mail at time of posting. This goes into add.php right above the line that says

//back to main page


//send a message to reviewers -- $result_array[0] should be the user id (refer to user table)
//and $result_array[1] must be greater than 0
$mail_message = "A new document for your comment and approval has been posted at the Document Repository. \n\n";
$mail_message .= $_REQUEST['description'] . "\n\n";
$mail_message .= $_REQUEST['comment'] . "\n\n";
$mail_message .= "Please log in to <!-- m --><a class="postlink" href="http://my.domain.com/opendoc/">http://my.domain.com/opendoc/</a><!-- m --> to review '" . $_FILES['file']['name'] . "' and respond with your comments, approval or rejection.";

for($i = 0; $i<sizeof($result_array); $i++)
{
if ( $result_array[$i][1] > 0 ) {
$this_id = $result_array[$i][0];
$query = "SELECT Email FROM user WHERE id = '$this_id'";
$result = mysql_query($query, $GLOBALS['connection']) or die("Error in query: $query" .mysql_error());
list($mail_to) = mysql_fetch_row($result);
//echo ("$query : --$mail_to-- and $mail_message");
Smail($mail_to,'New Document For Your Review',$mail_message,"From: $message_sender" );
}
}

Notice I'm using that Smail() function; if you don't need SMTP rearrange it to give mail() what it expects.
jonathanwminer


2008-12-15 05:48:30 PST
Tom -

Excellent work; the Peal Mail function could be used even if the mailserver is "localhost" right?

- Jon
tommcgee


2008-12-15 06:21:24 PST
I would assume so, though I have no way to test it. Put in "localhost" instead of "smtp.mydomain.com" instead and see?