mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-11-26 15:32:13 +00:00
96 lines
3.0 KiB
PHP
96 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Implementation of notifation system using email
|
|
*
|
|
* @category DMS
|
|
* @package SeedDMS
|
|
* @license GPL 2
|
|
* @version @version@
|
|
* @author Uwe Steinmann <uwe@steinmann.cx>
|
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
|
* 2010 Uwe Steinmann
|
|
* @version Release: @package_version@
|
|
*/
|
|
|
|
/**
|
|
* Include parent class
|
|
*/
|
|
require_once("inc.ClassNotify.php");
|
|
|
|
/**
|
|
* Class to send email notifications to individuals or groups
|
|
*
|
|
* @category DMS
|
|
* @package SeedDMS
|
|
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
|
|
* @copyright Copyright (C) 2002-2005 Markus Westphal,
|
|
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
|
|
* 2010 Uwe Steinmann
|
|
* @version Release: @package_version@
|
|
*/
|
|
class SeedDMS_EmailNotify extends SeedDMS_Notify {
|
|
/* User sending the notification
|
|
* Will only be used if the sender of one of the notify methods
|
|
* is not set
|
|
*/
|
|
protected $sender;
|
|
|
|
function setSender($user) {
|
|
$this->sender = $user;
|
|
}
|
|
|
|
function toIndividual($sender, $recipient, $subject, $message, $params=array()) { /* {{{ */
|
|
global $settings;
|
|
if ($recipient->isDisabled() || $recipient->getEmail()=="") return 0;
|
|
|
|
if ((!is_object($sender) && strcasecmp(get_class($sender), "SeedDMS_Core_User")) ||
|
|
(!is_object($recipient) && strcasecmp(get_class($recipient), "SeedDMS_Core_User"))) {
|
|
return -1;
|
|
}
|
|
|
|
$headers = array();
|
|
$headers[] = "MIME-Version: 1.0";
|
|
$headers[] = "Content-type: text/plain; charset=utf-8";
|
|
//$headers[] = "From: ". $sender->getFullName() ." <". $sender->getEmail() .">";
|
|
$headers[] = "From: ". $settings->_smtpSendFrom;
|
|
$headers[] = "Reply-To: ". $sender->getFullName() ." <". $sender->getEmail() .">";
|
|
|
|
$lang = $recipient->getLanguage();
|
|
$message = getMLText("email_header", array(), "", $lang)."\r\n\r\n".getMLText($message, $params, "", $lang);
|
|
$message .= "\r\n\r\n".getMLText("email_footer", array(), "", $lang);
|
|
|
|
$subject = "=?UTF-8?B?".base64_encode(getMLText($subject, $params, "", $lang))."?=";
|
|
mail($recipient->getEmail(), $subject, $message, implode("\r\n", $headers));
|
|
|
|
return true;
|
|
} /* }}} */
|
|
|
|
function toGroup($sender, $groupRecipient, $subject, $message, $params=array()) { /* {{{ */
|
|
if ((!is_object($sender) && strcasecmp(get_class($sender), "SeedDMS_Core_User")) ||
|
|
(!is_object($groupRecipient) && strcasecmp(get_class($groupRecipient), "SeedDMS_Core_Group"))) {
|
|
return -1;
|
|
}
|
|
|
|
foreach ($groupRecipient->getUsers() as $recipient) {
|
|
$this->toIndividual($sender, $recipient, $subject, $message, $params);
|
|
}
|
|
|
|
return true;
|
|
} /* }}} */
|
|
|
|
function toList($sender, $recipients, $subject, $message, $params=array()) { /* {{{ */
|
|
if ((!is_object($sender) && strcasecmp(get_class($sender), "SeedDMS_Core_User")) ||
|
|
(!is_array($recipients) && count($recipients)==0)) {
|
|
return -1;
|
|
}
|
|
|
|
foreach ($recipients as $recipient) {
|
|
$this->toIndividual($sender, $recipient, $subject, $message, $params);
|
|
}
|
|
|
|
return true;
|
|
} /* }}} */
|
|
}
|
|
?>
|