send an individual email to each recipient

This commit is contained in:
Thomas Müller 2014-03-10 21:54:23 +01:00
Родитель 1cde17d60b
Коммит f1ecc758f5
2 изменённых файлов: 22 добавлений и 12 удалений

Просмотреть файл

@ -145,10 +145,17 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
}
$result = $mailNotification->sendLinkShareMail($to_address, $file, $link, $expiration);
if($result === true) {
if(empty($result)) {
\OCP\JSON::success();
} else {
\OCP\JSON::error(array('data' => array('message' => OC_Util::sanitizeHTML($result))));
$l = OC_L10N::get('core');
OCP\JSON::error(array(
'data' => array(
'message' => $l->t("Couldn't send mail to following users: %s ",
implode(', ', $result)
)
)
));
}
break;

Просмотреть файл

@ -97,7 +97,7 @@ class MailNotifications {
try {
\OCP\Util::sendMail($to, $recipientDisplayName, $subject, $htmlMail, $this->from, $this->senderDisplayName, 1, $alttextMail);
} catch (\Exception $e) {
\OCP\Util::writeLog('sharing', "Can't send mail to inform the user abaut an internal share: " . $e->getMessage() , \OCP\Util::ERROR);
\OCP\Util::writeLog('sharing', "Can't send mail to inform the user about an internal share: " . $e->getMessage() , \OCP\Util::ERROR);
$noMail[] = $recipientDisplayName;
}
}
@ -109,23 +109,26 @@ class MailNotifications {
/**
* @brief inform recipient about public link share
*
* @param string recipient recipient email address
* @param string $recipient recipient email address
* @param string $filename the shared file
* @param string $link the public link
* @param int $expiration expiration date (timestamp)
* @return mixed $result true or error message
* @return array $result of failed recipients
*/
public function sendLinkShareMail($recipient, $filename, $link, $expiration) {
$subject = (string)$this->l->t('%s shared »%s« with you', array($this->senderDisplayName, $filename));
list($htmlMail, $alttextMail) = $this->createMailBody($filename, $link, $expiration);
try {
\OCP\Util::sendMail($recipient, $recipient, $subject, $htmlMail, $this->from, $this->senderDisplayName, 1, $alttextMail);
} catch (\Exception $e) {
\OCP\Util::writeLog('sharing', "Can't send mail with public link: " . $e->getMessage(), \OCP\Util::ERROR);
return $e->getMessage();
$rs = explode(' ', $recipient);
$failed = array();
foreach ($rs as $r) {
try {
\OCP\Util::sendMail($r, $r, $subject, $htmlMail, $this->from, $this->senderDisplayName, 1, $alttextMail);
} catch (\Exception $e) {
\OCP\Util::writeLog('sharing', "Can't send mail with public link to $r: " . $e->getMessage(), \OCP\Util::ERROR);
$failed[] = $r;
}
}
return true;
return $failed;
}
/**