seeddms-code/inc/inc.ClassEmailNotify.php

100 lines
3.0 KiB
PHP
Raw Normal View History

2010-11-30 12:23:46 +00:00
<?php
/**
* Implementation of notifation system using email
*
* @category DMS
* @package SeedDMS
2010-11-30 12:23:46 +00:00
* @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");
2010-11-30 12:23:46 +00:00
/**
* Class to send email notifications to individuals or groups
*
* @category DMS
* @package SeedDMS
2010-11-30 12:23:46 +00:00
* @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 {
2015-11-25 16:18:58 +00:00
/* 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;
}
2010-11-30 12:23:46 +00:00
function toIndividual($sender, $recipient, $subject, $message, $params=array()) { /* {{{ */
2014-01-06 21:08:01 +00:00
global $settings;
if ($recipient->isDisabled() || $recipient->getEmail()=="") return 0;
2010-11-30 12:23:46 +00:00
if(!is_object($recipient) && strcasecmp(get_class($recipient), "SeedDMS_Core_User")) {
2010-11-30 12:23:46 +00:00
return -1;
}
if (is_object($sender) && !strcasecmp(get_class($sender), "SeedDMS_Core_User")) {
$from = $sender->getFullName() ." <". $sender->getEmail() .">";
} elseif(is_string($sender) && trim($sender) != "") {
$from = $sender;
} else
return -1;
2010-11-30 12:23:46 +00:00
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: ". $from;
$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);
2013-07-23 05:01:27 +00:00
$subject = "=?UTF-8?B?".base64_encode(getMLText($subject, $params, "", $lang))."?=";
mail($recipient->getEmail(), $subject, $message, implode("\r\n", $headers));
2010-11-30 12:23:46 +00:00
return true;
2011-10-07 16:11:58 +00:00
} /* }}} */
2010-11-30 12:23:46 +00:00
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"))) {
2010-11-30 12:23:46 +00:00
return -1;
}
2010-10-29 13:19:51 +00:00
foreach ($groupRecipient->getUsers() as $recipient) {
$this->toIndividual($sender, $recipient, $subject, $message, $params);
2010-11-30 12:23:46 +00:00
}
return true;
2011-10-07 16:11:58 +00:00
} /* }}} */
2010-11-30 12:23:46 +00:00
function toList($sender, $recipients, $subject, $message, $params=array()) { /* {{{ */
if ((!is_object($sender) && strcasecmp(get_class($sender), "SeedDMS_Core_User")) ||
2010-11-30 12:23:46 +00:00
(!is_array($recipients) && count($recipients)==0)) {
return -1;
}
foreach ($recipients as $recipient) {
$this->toIndividual($sender, $recipient, $subject, $message, $params);
2010-10-29 13:19:51 +00:00
}
2010-11-30 12:23:46 +00:00
return true;
2011-10-07 16:11:58 +00:00
} /* }}} */
2010-11-30 12:23:46 +00:00
}
?>