/**
  * @covers ICANS\Component\IcansLoggingComponent\Transport\Message::setBody
  * @depends testGetRawData
  */
 public function testSetBody()
 {
     $body = array('Body Item 1', 'Body Item 2');
     $this->object->setBody($body);
     $actual = $this->object->getRawData();
     $this->assertArrayHasKey('event_body', $actual);
     $this->assertSame($actual['event_body'], $body);
 }
Exemplo n.º 2
0
 /**
  * @dataProvider notificationProvider
  * @expectedException \Apple\ApnPush\Notification\SendException
  */
 public function testNotificationException($response, $statusCode)
 {
     $notification = $this->createNotification($response);
     $message = new Message();
     $message->setDeviceToken(str_repeat('af', 32));
     $message->setBody('foo');
     try {
         $notification->send($message);
     } catch (SendException $exception) {
         $this->assertEquals($statusCode, $exception->getStatusCode());
         throw $exception;
     }
 }
 /**
  * Tests the setters and getters.
  */
 public function testSettersAndGetters()
 {
     // create a message with minimum constructor args
     $message = new Message(Message::NORMAL);
     // Set remainder via setters
     $message->setHeader((object) array('testProp' => 'testval'));
     $message->setBody(simplexml_load_string('<testMessage testAtt="Hello" testAtt2="world"/>'));
     $message->setPriority(Message::PRIORITY_LOW);
     // test assertions
     $this->assertTrue($message instanceof Message, "Expecting \$message is Message");
     $this->assertTrue($message->getType() == Message::NORMAL, "Expecting \$message->getType() == Message::NORMAL");
     $this->assertTrue($message->getHeader()->testProp == 'testval', "Expecting \$message->getHeader()->testProp == 'testval'");
     $this->assertTrue($message->getBody()->attributes()->testAtt == 'Hello', "Expecting \$message->getBody()->attributes()->testAtt == 'Hello'");
     $this->assertTrue($message->getPriority() == Message::PRIORITY_LOW, "Expecting \$message->getPriority() == Message::PRIORITY_LOW");
 }
Exemplo n.º 4
0
 /**
  * set the message body (either set to a stream resource or a string)
  * @param  mixed  $body the body to use
  * @return self
  */
 public function setBody($body)
 {
     $this->cachePost = null;
     return parent::setBody($body);
 }
Exemplo n.º 5
0
 public function notify($title)
 {
     global $redcap_version;
     $dark = "#800000";
     //#1a74ba  1a74ba
     $light = "#FFE1E1";
     //#ebf6f3
     $border = "#800000";
     //FF0000";	//#a6d1ed	#3182b9
     // Run notification
     $url = APP_PATH_WEBROOT_FULL . "redcap_v{$redcap_version}/" . "DataEntry/index.php?pid={$this->project_id}&page={$this->instrument}&id={$this->record}&event_id={$this->event_id}";
     // Message (email html painfully copied from box.net notification email)
     $msg = RCView::table(array('cellpadding' => '0', 'cellspacing' => '0', 'border' => '0', 'style' => 'border:1px solid #bbb; font:normal 12px Arial;color:#666'), RCView::tr(array(), RCView::td(array('style' => 'padding:13px'), RCView::table(array('style' => 'font:normal 15px Arial'), RCView::tr(array(), RCView::td(array('style' => 'font-size:18px;color:#000;border-bottom:1px solid #bbb'), RCView::span(array('style' => 'color:black'), RCVieW::a(array('style' => 'color:black'), 'REDCap AutoNotification Alert')) . RCView::br())) . RCView::tr(array(), RCView::td(array('style' => 'padding:10px 0'), RCView::table(array('style' => 'font:normal 12px Arial;color:#666'), RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Title") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), "<b>{$title}</b>")))) . RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Project") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), REDCap::getProjectTitle())))) . ($this->redcap_event_name ? RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Event") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), "{$this->redcap_event_name}")))) : '') . RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Instrument") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), $this->instrument)))) . RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Record") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), $this->record)))) . RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Date/Time") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), date('Y-m-d H:i:s'))))) . RCView::tr(array(), RCView::td(array('style' => 'text-align:right'), "Message") . RCView::td(array('style' => 'padding-left:10px;color:#000'), RCView::span(array('style' => 'color:black'), RCView::a(array('style' => 'color:black'), $this->config['message']))))))) . RCView::tr(array(), RCView::td(array('style' => "border:1px solid {$border};background-color:{$light};padding:20px"), RCView::table(array('style' => 'font:normal 12px Arial', 'cellpadding' => '0', 'cellspacing' => '0'), RCView::tr(array('style' => 'vertical-align:middle'), RCView::td(array(), RCView::table(array('cellpadding' => '0', 'cellspacing' => '0'), RCView::tr(array(), RCView::td(array('style' => "border:1px solid #600000;background-color:{$dark};padding:8px;font:bold 12px Arial"), RCView::a(array('class' => 'hide', 'style' => 'color:#fff;white-space:nowrap;text-decoration:none', 'href' => $url), "View Record"))))) . RCView::td(array('style' => 'padding-left:15px'), "To view this record, visit this link:" . RCView::br() . RCView::a(array('style' => "color:{$dark}", 'href' => $url), $url))))))))));
     $msg = "<HTML><head></head><body>" . $msg . "</body></html>";
     // Determine number of emails to send
     // Prepare message
     $email = new Message();
     $email->setTo($this->config['to']);
     $email->setFrom($this->config['from']);
     $email->setSubject($this->config['subject']);
     $email->setBody($msg);
     // Send Email
     if (!$email->send()) {
         error_log('Error sending mail: ' . $email->getSendError() . ' with ' . json_encode($email));
         exit;
     }
     //		error_log ('Email sent');
     // Add Log Entry
     $data_values = "title,{$title}\nrecord,{$this->record}\nevent,{$this->redcap_event_name}";
     REDCap::logEvent('AutoNotify Alert', $data_values);
 }
Exemplo n.º 6
0
 /**
  * Sign a message (but don't encrypt)
  *
  * @param Message $message
  * @return Message
  * @throws \Exception
  */
 public function sign(Message $message) : Message
 {
     if (!$this->serverKeyFingerprint) {
         throw new \Exception('No signing key provided');
     }
     $gnupg = new \Crypt_GPG($this->options);
     $gnupg->addSignKey($this->serverKeyFingerprint);
     $message->setBody($gnupg->sign($message->getBodyText(), \Crypt_GPG::SIGN_MODE_CLEAR, true));
     return $message;
 }
 /**
  * Tests Message->setBody()
  */
 public function testSetBody()
 {
     $this->Message->setBody('body');
     $this->assertEquals('body', $this->Message->body);
 }
Exemplo n.º 8
0
/**
 * Send a simple mail message using SquirrelMail's API.
 *
 * Until SquirrelMail is sufficiently redesigned, this
 * function is a stand-in for a simple mail delivery
 * call.  Currently, it only sends plaintext messages
 * (unless the caller uses the $message parameter).
 *
 * @param string $to      The destination recipient.
 * @param string $subject The message subject.
 * @param string $body    The message body.
 * @param string $from    The sender.
 * @param string $cc      The destination carbon-copy recipient.
 *                        (OPTIONAL; default no Cc:)
 * @param string $bcc     The destination blind carbon-copy recipient.
 *                        (OPTIONAL; default no Bcc:)
 * @param object $message If the caller wants to construct a more
 *                        complicated message themselves and pass
 *                        it here, this function will take care
 *                        of the rest - handing it over to SMTP
 *                        or Sendmail.  If this parameter is non-
 *                        empty, all other parameters are ignored.
 *                        (OPTIONAL: default is empty)
 *
 * @return array A two-element array, the first element being a
 *               boolean value indicating if the message was successfully
 *               sent or not, and the second element being the message's
 *               assigned Message-ID, if available (only available as of
 *               SquirrelMail 1.4.14 and 1.5.2)
 *
 */
function sq_send_mail($to, $subject, $body, $from, $cc = '', $bcc = '', $message = '')
{
    require_once SM_PATH . 'functions/mime.php';
    require_once SM_PATH . 'class/mime.class.php';
    if (empty($message)) {
        $message = new Message();
        $header = new Rfc822Header();
        $message->setBody($body);
        $content_type = new ContentType('text/plain');
        global $special_encoding, $default_charset;
        if ($special_encoding) {
            $header->encoding = $special_encoding;
        } else {
            $header->encoding = '8bit';
        }
        if ($default_charset) {
            $content_type->properties['charset'] = $default_charset;
        }
        $header->content_type = $content_type;
        $header->parseField('To', $to);
        $header->parseField('Cc', $cc);
        $header->parseField('Bcc', $bcc);
        $header->parseField('From', $from);
        $header->parseField('Subject', $subject);
        $message->rfc822_header = $header;
    }
    //sm_print_r($message);exit;
    global $useSendmail;
    // ripped from src/compose.php - based on both 1.5.2 and 1.4.14
    //
    if (!$useSendmail) {
        require_once SM_PATH . 'class/deliver/Deliver_SMTP.class.php';
        $deliver = new Deliver_SMTP();
        global $smtpServerAddress, $smtpPort, $pop_before_smtp, $domain, $pop_before_smtp_host;
        $authPop = isset($pop_before_smtp) && $pop_before_smtp ? true : false;
        if (empty($pop_before_smtp_host)) {
            $pop_before_smtp_host = $smtpServerAddress;
        }
        $user = '';
        $pass = '';
        get_smtp_user($user, $pass);
        $stream = $deliver->initStream($message, $domain, 0, $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
    } else {
        require_once SM_PATH . 'class/deliver/Deliver_SendMail.class.php';
        global $sendmail_path, $sendmail_args;
        // Check for outdated configuration
        if (!isset($sendmail_args)) {
            if ($sendmail_path == '/var/qmail/bin/qmail-inject') {
                $sendmail_args = '';
            } else {
                $sendmail_args = '-i -t';
            }
        }
        $deliver = new Deliver_SendMail(array('sendmail_args' => $sendmail_args));
        $stream = $deliver->initStream($message, $sendmail_path);
    }
    $success = false;
    $message_id = '';
    if ($stream) {
        $deliver->mail($message, $stream);
        if (!empty($message->rfc822_header->message_id)) {
            $message_id = $message->rfc822_header->message_id;
        }
        $success = $deliver->finalizeStream($stream);
    }
    return array($success, $message_id);
}
Exemplo n.º 9
0
}
$total_messages = imap_num_msg($mbox);
$charset = 'UTF-8';
$structure = imap_fetchstructure($mbox, $msg_number);
foreach ($structure->parameters as $param) {
    if ($param->attribute == 'charset') {
        $charset = $param->value;
        break;
    }
}
$header = imap_headerinfo($mbox, $msg_number);
$message->setFrom($header->fromaddress);
$message->setTo($header->toaddress);
$message->setCc($header->ccaddress);
$message->setSubject($header->subject);
$message->setBody(imap_fetchbody($mbox, $msg_number, '1'));
// '1' is the text/plain version of the body in a multipart message
$message->setDate($header->date);
$_SESSION['currentMessage'] = serialize($message);
if ($msg_number > 1) {
    $prev_message = imap_uid($mbox, $msg_number - 1);
} else {
    $prev_message = null;
}
if ($msg_number < $total_messages) {
    $next_message = imap_uid($mbox, $msg_number + 1);
} else {
    $next_message = null;
}
imap_close($mbox);
header("Content-Type: application/x-blueprint+xml");
Exemplo n.º 10
0
function SendMDN($mailbox, $passed_id, $message, $imapConnection)
{
    global $squirrelmail_language, $default_charset, $default_move_to_sent, $languages, $useSendmail, $domain, $sent_folder, $username, $data_dir;
    sqgetGlobalVar('SERVER_NAME', $SERVER_NAME, SQ_SERVER);
    $header = $message->rfc822_header;
    $rfc822_header = new Rfc822Header();
    $content_type = new ContentType('multipart/report');
    $content_type->properties['report-type'] = 'disposition-notification';
    set_my_charset();
    if ($default_charset) {
        $content_type->properties['charset'] = $default_charset;
    }
    $rfc822_header->content_type = $content_type;
    $rfc822_header->to[] = $header->dnt;
    $rfc822_header->subject = _("Read:") . ' ' . decodeHeader($header->subject, true, false);
    $idents = get_identities();
    $needles = array();
    if ($header->to) {
        foreach ($header->to as $message_to) {
            $needles[] = $message_to->mailbox . '@' . $message_to->host;
        }
    }
    $identity = find_identity($needles);
    $from_addr = build_from_header($identity);
    $reply_to = isset($idents[$identity]['reply_to']) ? $idents[$identity]['reply_to'] : '';
    // FIXME: this must actually be the envelope address of the orginal message,
    // but do we have that information? For now the first identity is our best guess.
    $final_recipient = $idents[0]['email_address'];
    $rfc822_header->from = $rfc822_header->parseAddress($from_addr, true);
    if ($reply_to) {
        $rfc822_header->reply_to = $rfc822_header->parseAddress($reply_to, true);
    }
    // part 1 (RFC2298)
    $senton = getLongDateString($header->date, $header->date_unparsed);
    $to_array = $header->to;
    $to = '';
    foreach ($to_array as $line) {
        $to .= ' ' . $line->getAddress();
    }
    $now = getLongDateString(time());
    set_my_charset();
    $body = _("Your message") . "\r\n\r\n" . "\t" . _("To") . ': ' . decodeHeader($to, false, false) . "\r\n" . "\t" . _("Subject") . ': ' . decodeHeader($header->subject, false, false) . "\r\n" . "\t" . _("Sent") . ': ' . $senton . "\r\n" . "\r\n" . sprintf(_("Was displayed on %s"), $now);
    $special_encoding = '';
    if (isset($languages[$squirrelmail_language]['XTRA_CODE']) && function_exists($languages[$squirrelmail_language]['XTRA_CODE'] . '_encode')) {
        $body = call_user_func($languages[$squirrelmail_language]['XTRA_CODE'] . '_encode', $body);
        if (strtolower($default_charset) == 'iso-2022-jp') {
            if (mb_detect_encoding($body) == 'ASCII') {
                $special_encoding = '8bit';
            } else {
                $body = mb_convert_encoding($body, 'JIS');
                $special_encoding = '7bit';
            }
        }
    } elseif (sq_is8bit($body)) {
        $special_encoding = '8bit';
    }
    $part1 = new Message();
    $part1->setBody($body);
    $mime_header = new MessageHeader();
    $mime_header->type0 = 'text';
    $mime_header->type1 = 'plain';
    if ($special_encoding) {
        $mime_header->encoding = $special_encoding;
    } else {
        $mime_header->encoding = '7bit';
    }
    if ($default_charset) {
        $mime_header->parameters['charset'] = $default_charset;
    }
    $part1->mime_header = $mime_header;
    // part2  (RFC2298)
    $original_recipient = $to;
    $original_message_id = $header->message_id;
    $report = "Reporting-UA : {$SERVER_NAME} ; SquirrelMail (version " . SM_VERSION . ") \r\n";
    if ($original_recipient != '') {
        $report .= "Original-Recipient : {$original_recipient}\r\n";
    }
    $report .= "Final-Recipient: rfc822; {$final_recipient}\r\n" . "Original-Message-ID : {$original_message_id}\r\n" . "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
    $part2 = new Message();
    $part2->setBody($report);
    $mime_header = new MessageHeader();
    $mime_header->type0 = 'message';
    $mime_header->type1 = 'disposition-notification';
    $mime_header->encoding = '7bit';
    $part2->mime_header = $mime_header;
    $composeMessage = new Message();
    $composeMessage->rfc822_header = $rfc822_header;
    $composeMessage->addEntity($part1);
    $composeMessage->addEntity($part2);
    if ($useSendmail) {
        require_once SM_PATH . 'class/deliver/Deliver_SendMail.class.php';
        global $sendmail_path, $sendmail_args;
        // Check for outdated configuration
        if (!isset($sendmail_args)) {
            if ($sendmail_path == '/var/qmail/bin/qmail-inject') {
                $sendmail_args = '';
            } else {
                $sendmail_args = '-i -t';
            }
        }
        $deliver = new Deliver_SendMail(array('sendmail_args' => $sendmail_args));
        $stream = $deliver->initStream($composeMessage, $sendmail_path);
    } else {
        require_once SM_PATH . 'class/deliver/Deliver_SMTP.class.php';
        $deliver = new Deliver_SMTP();
        global $smtpServerAddress, $smtpPort, $pop_before_smtp, $pop_before_smtp_host;
        $authPop = isset($pop_before_smtp) && $pop_before_smtp ? true : false;
        if (empty($pop_before_smtp_host)) {
            $pop_before_smtp_host = $smtpServerAddress;
        }
        get_smtp_user($user, $pass);
        $stream = $deliver->initStream($composeMessage, $domain, 0, $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
    }
    $success = false;
    if ($stream) {
        $deliver->mail($composeMessage, $stream);
        $success = $deliver->finalizeStream($stream);
    }
    if (!$success) {
        $msg = _("Message not sent.") . "\n" . $deliver->dlv_msg;
        if (!empty($deliver->dlv_server_msg)) {
            $msg .= "\n" . _("Server replied:") . ' ' . $deliver->dlv_ret_nr . ' ' . nl2br(sm_encode_html_special_chars($deliver->dlv_server_msg));
        }
        plain_error_message($msg);
    } else {
        unset($deliver);
        // move to sent folder
        //
        $move_to_sent = getPref($data_dir, $username, 'move_to_sent');
        if (isset($default_move_to_sent) && $default_move_to_sent != 0) {
            $svr_allow_sent = true;
        } else {
            $svr_allow_sent = false;
        }
        if (isset($sent_folder) && ($sent_folder != '' || $sent_folder != 'none') && sqimap_mailbox_exists($imapConnection, $sent_folder)) {
            $fld_sent = true;
        } else {
            $fld_sent = false;
        }
        if (isset($move_to_sent) && $move_to_sent != 0 || !isset($move_to_sent)) {
            $lcl_allow_sent = true;
        } else {
            $lcl_allow_sent = false;
        }
        if ($fld_sent && $svr_allow_sent && !$lcl_allow_sent || $fld_sent && $lcl_allow_sent) {
            $save_reply_with_orig = getPref($data_dir, $username, 'save_reply_with_orig');
            if ($save_reply_with_orig) {
                $sent_folder = $mailbox;
            }
            require_once SM_PATH . 'class/deliver/Deliver_IMAP.class.php';
            $imap_deliver = new Deliver_IMAP();
            $imap_deliver->mail($composeMessage, $imapConnection, 0, 0, $imapConnection, $sent_folder);
            unset($imap_deliver);
        }
    }
    return $success;
}
Exemplo n.º 11
0
 public function getMessages($userId, $msgCollId, $fields, $msgIds, $options)
 {
     // TODO: Supports fields and options. Currently deleted messages couldn't be retrieved.
     $this->checkDb();
     $userId = intval($userId);
     $fromQuery = " (messages.from = {$userId} and messages.from_deleted = 'no')";
     $toQuery = " (messages.to = {$userId} and messages.to_deleted = 'no')";
     $basicQuery = '';
     $groupTable = '';
     if ($msgCollId == '@inbox') {
         $basicQuery = $toQuery;
     } else {
         if ($msgCollId == '@outbox') {
             $basicQuery = $fromQuery;
         } else {
             if ($msgCollId == '@all') {
                 $basicQuery = " ( " . $fromQuery . " or " . $toQuery . ")";
             } else {
                 $msgCollId = intval($msgCollId);
                 $groupTable = ', message_groups';
                 $basicQuery = " messages.id = message_groups.message_id and " . " ( " . $fromQuery . " or " . $toQuery . ")" . " and message_groups.message_collection_id = {$msgCollId}";
             }
         }
     }
     $messageIdQuery = '';
     if (isset($msgIds) && is_array($msgIds) && count($msgIds) > 0) {
         $msgIds = array_map('intval', $msgIds);
         $messageIdQuery = " and messages.id in (" . implode(',', $msgIds) . ")";
     }
     $countQuery = "select count(*) from messages {$groupTable} where {$basicQuery} {$messageIdQuery}";
     $res = mysqli_query($this->db, $countQuery);
     if ($res !== false) {
         list($totalResults) = mysqli_fetch_row($res);
     } else {
         $totalResults = '0';
     }
     $startIndex = $options->getStartIndex();
     $count = $options->getCount();
     $messages = array();
     $messages['totalResults'] = $totalResults;
     $messages['startIndex'] = $startIndex;
     $messages['count'] = $count;
     $query = "select messages.from as `from`,\n                     messages.to as `to`,\n                     messages.id as id,\n                     messages.title as title,\n                     messages.body as body,\n                     messages.updated as updated,\n                     messages.collection_ids as collection_ids,\n                     messages.recipients as recipients\n                from messages {$groupTable}\n                where {$basicQuery} {$messageIdQuery}\n                order by messages.created desc\n                limit {$startIndex}, {$count};";
     $res = mysqli_query($this->db, $query);
     if ($res) {
         if (@mysqli_num_rows($res)) {
             while ($row = @mysqli_fetch_array($res, MYSQLI_ASSOC)) {
                 $message = new Message($row['id'], $row['title']);
                 $message->setBody($row['body']);
                 $message->setUpdated($row['updated']);
                 $message->setRecipients(json_decode($row['recipients']));
                 if ($row['collection_ids']) {
                     $message->setCollectionIds(json_decode($row['collection_ids']));
                 }
                 $messages[] = $message;
             }
         } else {
             if ($messageIdQuery) {
                 throw new SocialSpiException("Message not found", ResponseError::$NOT_FOUND);
             }
         }
         return $messages;
     }
 }
Exemplo n.º 12
0
 /**
  * send:
  *
  * @param array|string $pmTo
  *        	- Who will receve the message, array('email', 'name') or
  *        	'email'
  * @param string $psSubject
  *        	messagem subject
  * @param string $psBodyText
  *        	- message in plan text format
  * @param string $psBodyHtml
  *        	- message in html format
  * @param array|string $paFrom
  *        	- Who send the message, array('email', 'name') or 'email'
  *        	
  * @return Zend_Mail
  */
 public function send($pmFrom, $psSubject, $pmBody, $pmTo = null)
 {
     $lsFromEmail = null;
     $lsFromName = null;
     $lsToEmail = null;
     $lsToName = null;
     $loMail = new Message();
     $loMail->setEncoding($this->_aOptions['charset']);
     $loMail->setSender($this->_aOptions["fromEmail"], $this->_aOptions["fromName"]);
     $loMail->addReplyTo($this->_aOptions["replayToEmail"], $this->_aOptions["replayToName"]);
     $loMail->setSubject($psSubject);
     $loMail->setBody($this->setContainer($pmBody));
     if (is_array($pmTo)) {
         if (isset($pmTo[0])) {
             $lsToEmail = $pmTo[0];
         }
         if (isset($pmTo[1])) {
             $lsToName = $pmTo[1];
         }
     } elseif (is_string($pmTo)) {
         $lsToEmail = $pmTo;
     } else {
         $lsToEmail = $this->_aOptions["fromEmail"];
         $lsToName = $this->_aOptions["fromName"];
     }
     $loMail->addTo($lsToEmail, $lsToName);
     if (is_array($pmFrom)) {
         if (isset($pmFrom[0])) {
             $lsFromEmail = $pmFrom[0];
         }
         if (isset($pmFrom[1])) {
             $lsFromName = $pmFrom[1];
         }
     } elseif (is_string($pmFrom)) {
         $lsFromEmail = $pmFrom;
     } else {
         $lsFromEmail = $this->_aOptions["fromEmail"];
         $lsFromName = $this->_aOptions["fromName"];
     }
     $loMail->setFrom($lsFromEmail, $lsFromName);
     if ($this->_aOptions["transporter"] == "SMTP") {
         $loOptionsSMTP = new Transport\SmtpOptions($this->getSMTPOptions());
         $loTransport = new Transport\Smtp($loOptionsSMTP);
         $loTransport->send($loMail);
     } elseif ($this->_aOptions["transporter"] == "sendmail") {
         $loTransport = new Transport\Sendmail();
         $loTransport->send($loMail);
     }
 }
Exemplo n.º 13
0
function SendMDN($mailbox, $passed_id, $sender, $message, $imapConnection)
{
    global $username, $attachment_dir, $version, $attachments, $squirrelmail_language, $default_charset, $languages, $useSendmail, $domain, $sent_folder, $popuser, $data_dir, $username;
    sqgetGlobalVar('SERVER_NAME', $SERVER_NAME, SQ_SERVER);
    $header = $message->rfc822_header;
    $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
    $rfc822_header = new Rfc822Header();
    $content_type = new ContentType('multipart/report');
    $content_type->properties['report-type'] = 'disposition-notification';
    set_my_charset();
    if ($default_charset) {
        $content_type->properties['charset'] = $default_charset;
    }
    $rfc822_header->content_type = $content_type;
    $rfc822_header->to[] = $header->dnt;
    $rfc822_header->subject = _("Read:") . ' ' . encodeHeader($header->subject);
    // Patch #793504 Return Receipt Failing with <@> from Tim Craig (burny_md)
    // This merely comes from compose.php and only happens when there is no
    // email_addr specified in user's identity (which is the startup config)
    if (ereg("^([^@%/]+)[@%/](.+)\$", $username, $usernamedata)) {
        $popuser = $usernamedata[1];
        $domain = $usernamedata[2];
        unset($usernamedata);
    } else {
        $popuser = $username;
    }
    $reply_to = '';
    $ident = get_identities();
    if (!isset($identity)) {
        $identity = 0;
    }
    $full_name = $ident[$identity]['full_name'];
    $from_mail = $ident[$identity]['email_address'];
    $from_addr = '"' . $full_name . '" <' . $from_mail . '>';
    $reply_to = $ident[$identity]['reply_to'];
    if (!$from_mail) {
        $from_mail = "{$popuser}@{$domain}";
        $from_addr = $from_mail;
    }
    $rfc822_header->from = $rfc822_header->parseAddress($from_addr, true);
    if ($reply_to) {
        $rfc822_header->reply_to = $rfc822_header->parseAddress($reply_to, true);
    }
    // part 1 (RFC2298)
    $senton = getLongDateString($header->date);
    $to_array = $header->to;
    $to = '';
    foreach ($to_array as $line) {
        $to .= ' ' . $line->getAddress();
    }
    $now = getLongDateString(time());
    set_my_charset();
    $body = _("Your message") . "\r\n\r\n" . "\t" . _("To") . ': ' . decodeHeader($to, false, false) . "\r\n" . "\t" . _("Subject") . ': ' . decodeHeader($header->subject, false, false) . "\r\n" . "\t" . _("Sent") . ': ' . $senton . "\r\n" . "\r\n" . sprintf(_("Was displayed on %s"), $now);
    $special_encoding = '';
    if (isset($languages[$squirrelmail_language]['XTRA_CODE']) && function_exists($languages[$squirrelmail_language]['XTRA_CODE'] . '_encode')) {
        $body = call_user_func($languages[$squirrelmail_language]['XTRA_CODE'] . '_encode', $body);
        if (strtolower($default_charset) == 'iso-2022-jp') {
            if (mb_detect_encoding($body) == 'ASCII') {
                $special_encoding = '8bit';
            } else {
                $body = mb_convert_encoding($body, 'JIS');
                $special_encoding = '7bit';
            }
        }
    } elseif (sq_is8bit($body)) {
        $special_encoding = '8bit';
    }
    $part1 = new Message();
    $part1->setBody($body);
    $mime_header = new MessageHeader();
    $mime_header->type0 = 'text';
    $mime_header->type1 = 'plain';
    if ($special_encoding) {
        $mime_header->encoding = $special_encoding;
    } else {
        $mime_header->encoding = 'us-ascii';
    }
    if ($default_charset) {
        $mime_header->parameters['charset'] = $default_charset;
    }
    $part1->mime_header = $mime_header;
    // part2  (RFC2298)
    $original_recipient = $to;
    $original_message_id = $header->message_id;
    $report = "Reporting-UA : {$SERVER_NAME} ; SquirrelMail (version {$version}) \r\n";
    if ($original_recipient != '') {
        $report .= "Original-Recipient : {$original_recipient}\r\n";
    }
    $final_recipient = $sender;
    $report .= "Final-Recipient: rfc822; {$final_recipient}\r\n" . "Original-Message-ID : {$original_message_id}\r\n" . "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
    $part2 = new Message();
    $part2->setBody($report);
    $mime_header = new MessageHeader();
    $mime_header->type0 = 'message';
    $mime_header->type1 = 'disposition-notification';
    $mime_header->encoding = 'us-ascii';
    $part2->mime_header = $mime_header;
    $composeMessage = new Message();
    $composeMessage->rfc822_header = $rfc822_header;
    $composeMessage->addEntity($part1);
    $composeMessage->addEntity($part2);
    if ($useSendmail) {
        require_once SM_PATH . 'class/deliver/Deliver_SendMail.class.php';
        global $sendmail_path;
        $deliver = new Deliver_SendMail();
        $stream = $deliver->initStream($composeMessage, $sendmail_path);
    } else {
        require_once SM_PATH . 'class/deliver/Deliver_SMTP.class.php';
        $deliver = new Deliver_SMTP();
        global $smtpServerAddress, $smtpPort, $smtp_auth_mech, $pop_before_smtp;
        $authPop = isset($pop_before_smtp) && $pop_before_smtp ? true : false;
        get_smtp_user($user, $pass);
        $stream = $deliver->initStream($composeMessage, $domain, 0, $smtpServerAddress, $smtpPort, $user, $pass, $authPop);
    }
    $success = false;
    if ($stream) {
        $length = $deliver->mail($composeMessage, $stream);
        $success = $deliver->finalizeStream($stream);
    }
    if (!$success) {
        $msg = $deliver->dlv_msg . '<br />' . _("Server replied: ") . $deliver->dlv_ret_nr . ' ' . $deliver->dlv_server_msg;
        require_once SM_PATH . 'functions/display_messages.php';
        plain_error_message($msg, $color);
    } else {
        unset($deliver);
        if (sqimap_mailbox_exists($imapConnection, $sent_folder)) {
            sqimap_append($imapConnection, $sent_folder, $length);
            require_once SM_PATH . 'class/deliver/Deliver_IMAP.class.php';
            $imap_deliver = new Deliver_IMAP();
            $imap_deliver->mail($composeMessage, $imapConnection);
            sqimap_append_done($imapConnection);
            unset($imap_deliver);
        }
    }
    return $success;
}
Exemplo n.º 14
0
 /**
  * @param string $body
  *
  * @return Message
  */
 public function message($body = '')
 {
     $message = new Message();
     $message->setParent($this);
     $message->setBody($body);
     return $message;
 }
Exemplo n.º 15
0
function SendMDN($mailbox, $passed_id, $sender, $message, $imapConnection)
{
    global $username, $attachment_dir, $color, $default_move_to_sent, $version, $attachments, $squirrelmail_language, $default_charset, $languages, $useSendmail, $domain, $sent_folder, $popuser, $data_dir;
    sqgetGlobalVar('SERVER_NAME', $SERVER_NAME, SQ_SERVER);
    $header = $message->rfc822_header;
    $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
    $rfc822_header = new Rfc822Header();
    $content_type = new ContentType('multipart/report');
    $content_type->properties['report-type'] = 'disposition-notification';
    set_my_charset();
    if ($default_charset) {
        $content_type->properties['charset'] = $default_charset;
    }
    $rfc822_header->content_type = $content_type;
    $rfc822_header->to[] = $header->dnt;
    $rfc822_header->subject = _("Read:") . ' ' . decodeHeader($header->subject, true, false);
    // FIXME: use identity.php from SM 1.5. Change this also in compose.php
    $reply_to = '';
    if (isset($identity) && $identity != 'default') {
        $from_mail = getPref($data_dir, $username, 'email_address' . $identity);
        $full_name = getPref($data_dir, $username, 'full_name' . $identity);
        $from_addr = '"' . $full_name . '" <' . $from_mail . '>';
        $reply_to = getPref($data_dir, $username, 'reply_to' . $identity);
    } else {
        $from_mail = getPref($data_dir, $username, 'email_address');
        $full_name = getPref($data_dir, $username, 'full_name');
        $from_addr = '"' . $full_name . '" <' . $from_mail . '>';
        $reply_to = getPref($data_dir, $username, 'reply_to');
    }
    // Patch #793504 Return Receipt Failing with <@> from Tim Craig (burny_md)
    // This merely comes from compose.php and only happens when there is no
    // email_addr specified in user's identity (which is the startup config)
    if (ereg("^([^@%/]+)[@%/](.+)\$", $username, $usernamedata)) {
        $popuser = $usernamedata[1];
        $domain = $usernamedata[2];
        unset($usernamedata);
    } else {
        $popuser = $username;
    }
    if (!$from_mail) {
        $from_mail = "{$popuser}@{$domain}";
        $from_addr = $from_mail;
    }
    $rfc822_header->from = $rfc822_header->parseAddress($from_addr, true);
    if ($reply_to) {
        $rfc822_header->reply_to = $rfc822_header->parseAddress($reply_to, true);
    }
    // part 1 (RFC2298)
    $senton = getLongDateString($header->date, $header->date_unparsed);
    $to_array = $header->to;
    $to = '';
    foreach ($to_array as $line) {
        $to .= ' ' . $line->getAddress();
    }
    $now = getLongDateString(time());
    set_my_charset();
    $body = _("Your message") . "\r\n\r\n" . "\t" . _("To") . ': ' . decodeHeader($to, false, false, true) . "\r\n" . "\t" . _("Subject") . ': ' . decodeHeader($header->subject, false, false, true) . "\r\n" . "\t" . _("Sent") . ': ' . $senton . "\r\n" . "\r\n" . sprintf(_("Was displayed on %s"), $now);
    $special_encoding = '';
    if (isset($languages[$squirrelmail_language]['XTRA_CODE']) && function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
        $body = $languages[$squirrelmail_language]['XTRA_CODE']('encode', $body);
        if (strtolower($default_charset) == 'iso-2022-jp') {
            if (mb_detect_encoding($body) == 'ASCII') {
                $special_encoding = '8bit';
            } else {
                $body = mb_convert_encoding($body, 'JIS');
                $special_encoding = '7bit';
            }
        }
    } elseif (sq_is8bit($body)) {
        // detect 8bit symbols added by translations
        $special_encoding = '8bit';
    }
    $part1 = new Message();
    $part1->setBody($body);
    $mime_header = new MessageHeader();
    $mime_header->type0 = 'text';
    $mime_header->type1 = 'plain';
    if ($special_encoding) {
        $mime_header->encoding = $special_encoding;
    } else {
        $mime_header->encoding = '7bit';
    }
    if ($default_charset) {
        $mime_header->parameters['charset'] = $default_charset;
    }
    $part1->mime_header = $mime_header;
    // part2  (RFC2298)
    $original_recipient = $to;
    $original_message_id = $header->message_id;
    $report = "Reporting-UA : {$SERVER_NAME} ; SquirrelMail (version {$version}) \r\n";
    if ($original_recipient != '') {
        $report .= "Original-Recipient : {$original_recipient}\r\n";
    }
    $final_recipient = $sender;
    $report .= "Final-Recipient: rfc822; {$final_recipient}\r\n" . "Original-Message-ID : {$original_message_id}\r\n" . "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
    $part2 = new Message();
    $part2->setBody($report);
    $mime_header = new MessageHeader();
    $mime_header->type0 = 'message';
    $mime_header->type1 = 'disposition-notification';
    $mime_header->encoding = '7bit';
    $part2->mime_header = $mime_header;
    $composeMessage = new Message();
    $composeMessage->rfc822_header = $rfc822_header;
    $composeMessage->addEntity($part1);
    $composeMessage->addEntity($part2);
    if ($useSendmail) {
        require_once SM_PATH . 'class/deliver/Deliver_SendMail.class.php';
        global $sendmail_path, $sendmail_args;
        // Check for outdated configuration
        if (!isset($sendmail_args)) {
            if ($sendmail_path == '/var/qmail/bin/qmail-inject') {
                $sendmail_args = '';
            } else {
                $sendmail_args = '-i -t';
            }
        }
        $deliver = new Deliver_SendMail(array('sendmail_args' => $sendmail_args));
        $stream = $deliver->initStream($composeMessage, $sendmail_path);
    } else {
        require_once SM_PATH . 'class/deliver/Deliver_SMTP.class.php';
        $deliver = new Deliver_SMTP();
        global $smtpServerAddress, $smtpPort, $pop_before_smtp, $pop_before_smtp_host;
        $authPop = isset($pop_before_smtp) && $pop_before_smtp ? true : false;
        $user = '';
        $pass = '';
        if (empty($pop_before_smtp_host)) {
            $pop_before_smtp_host = $smtpServerAddress;
        }
        get_smtp_user($user, $pass);
        $stream = $deliver->initStream($composeMessage, $domain, 0, $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
    }
    $success = false;
    if ($stream) {
        $deliver->mail($composeMessage, $stream);
        $success = $deliver->finalizeStream($stream);
    }
    if (!$success) {
        $msg = _("Message not sent.") . ' ' . _("Server replied:") . "\n<blockquote>\n" . $deliver->dlv_msg . '<br />' . $deliver->dlv_ret_nr . ' ' . $deliver->dlv_server_msg . "</blockquote>\n\n";
        require_once SM_PATH . 'functions/display_messages.php';
        plain_error_message($msg, $color);
    } else {
        unset($deliver);
        // copy message to sent folder
        $move_to_sent = getPref($data_dir, $username, 'move_to_sent');
        if (isset($default_move_to_sent) && $default_move_to_sent != 0) {
            $svr_allow_sent = true;
        } else {
            $svr_allow_sent = false;
        }
        if (isset($sent_folder) && ($sent_folder != '' || $sent_folder != 'none') && sqimap_mailbox_exists($imapConnection, $sent_folder)) {
            $fld_sent = true;
        } else {
            $fld_sent = false;
        }
        if (isset($move_to_sent) && $move_to_sent != 0 || !isset($move_to_sent)) {
            $lcl_allow_sent = true;
        } else {
            $lcl_allow_sent = false;
        }
        if ($fld_sent && $svr_allow_sent && !$lcl_allow_sent || $fld_sent && $lcl_allow_sent) {
            require_once SM_PATH . 'class/deliver/Deliver_IMAP.class.php';
            $imap_deliver = new Deliver_IMAP();
            $imap_deliver->mail($composeMessage, $imapConnection, 0, 0, $imapConnection, $sent_folder);
            unset($imap_deliver);
        }
    }
    return $success;
}
Exemplo n.º 16
0
 /**
  * Reads the whole message, applies the header information,
  * sets the body as a plain text (thus does not parse any
  * MIME-Information and returns the created Message object.
  *
  * @param   string filename
  * @return  peer.mail.Message
  * @throws  io.IOException if file cannot be read
  */
 protected function _readMessageRaw($filename)
 {
     $header = '';
     $body = '';
     $f = new File($filename);
     $f->open();
     $d = $f->read($f->size());
     $f->close();
     if (FALSE === ($hdrEnd = strpos($d, "\n\r\n\r"))) {
         $hdrEnd = 0;
     }
     $h = substr($c, 0, $hdrEnd);
     $b = substr($c, $hdrEnd);
     $msg = new Message();
     $msg->setHdrString($h);
     $msg->setBody($b);
     return $msg;
 }
Exemplo n.º 17
0
 /**
  * function sendSimpleMessage
  * primary function for sending messages via array
  *
  * @return void
  * @author Sean Grove
  **/
 public static function sendSimpleMessage($messageArray, $options = null)
 {
     // TODO: allow an email copy of the message to be sent out
     sfContext::getInstance()->getLogger()->log("message:" . print_r($messageArray, true));
     sfContext::getInstance()->getLogger()->log("options:" . print_r($options, true));
     if (!isset($messageArray["message_type"])) {
         $messageArray["message_type"] = 1;
     }
     sfContext::getInstance()->getLogger()->log('sending Message, owner sender');
     $message = new Message();
     $message->setSenderId($messageArray["from"]);
     sfContext::getInstance()->getLogger()->log('set from: ' . $messageArray["from"]);
     $message->setOwnerId($messageArray["owner"]);
     $message->setRecipientId($messageArray["to"]);
     $message->setParentId($messageArray["parent"]);
     $message->setSubject($messageArray["subject"]);
     $message->setBody($messageArray["text"]);
     $message->setHtmlBody('me');
     $message->setFolder($messageArray["folder"]);
     $message->setMessageType($messageArray["message_type"]);
     $message->save();
     if ($message->getMessageType() == 21) {
         EventUserPeer::addUser($message->getUuid(), $options["event_id"], $messageArray["from"], $options["points"], $options["comment"], $options["status"]);
     }
     if (isset($options["copyTo"]) && $options["copyTo"] == "sent") {
         sfContext::getInstance()->getLogger()->log('sending Message, owner recipient');
         $message2 = array();
         $message2["from"] = $messageArray["from"];
         $message2["owner"] = $messageArray["from"];
         $message2["to"] = $messageArray["to"];
         $message2["parent"] = $messageArray["parent"];
         $message2["subject"] = $messageArray["subject"];
         $message2["text"] = $messageArray["text"];
         $message2["folder"] = "sent";
         self::sendSimpleMessage($message2);
     }
     if (!isset($options["notify"]) || $options["notify"] == true) {
         $sender = $message->getsfGuardUserRelatedBySenderId()->getProfile();
         $recipient = $message->getsfGuardUserRelatedByRecipientId()->getProfile();
         $text = '"' . $message->getSubject() . ' :: ' . $message->getBody() . '"';
         $notification = 'New message from ' . $sender->getFullName() . ' on Cothink! ';
         $notification .= $text;
         $recipient->notify($notification);
     }
     sfContext::getInstance()->getLogger()->log('message sent');
 }
Exemplo n.º 18
0
	/**
	 * @param $userid
	 * @param $headers
	 * @param $table_csv
	 * @param array $fields
	 * @param $parent_chkd_flds
	 * @param $export_file_name
	 * @param $debug
	 * @param null $comment
	 * @param array $to
	 */
	public static function do_sendit($userid, $headers, $table_csv, $fields = array(), $parent_chkd_flds, $export_file_name, $comment = null, $to = array(), $debug)
	{
		global $project_id, $user_rights, $app_title, $lang, $redcap_version; // we could use the global $userid, but we need control of it for setting the user as [CRON], so this is passed in args.
		$return_val = false;
		$export_type = 0; // this puts all files generated here in the Data Export category in the File Repository
		$today = date("Y-m-d_Hi"); //get today for filename
		$projTitleShort = substr(str_replace(" ", "", ucwords(preg_replace("/[^a-zA-Z0-9 ]/", "", html_entity_decode($app_title, ENT_QUOTES)))), 0, 20); // shortened project title for filename
		$originalFilename = $projTitleShort . "_" . $export_file_name . "_DATA_" . $today . ".csv"; // name the file for storage
		$today = date("Y-m-d-H-i-s"); // get today for comment, subsequent processing as needed
		$docs_comment_WH = $export_type ? "Data export file created by $userid on $today" : fix_case($export_file_name) . " file created by $userid on $today. $comment"; // unused, but I keep it around just in case
		/**
		 * setup vars for value export logging
		 */
		$chkd_fields = implode(',', $fields);
		/**
		 * turn on/off exporting per user rights
		 */
		if (($user_rights['data_export_tool'] || $userid == '[CRON]') && !$debug) {
			$table_csv = addBOMtoUTF8($headers . $table_csv);
			/**
			 * Store the file in the file system and log the activity, handle if error
			 */
			if (!DataExport::storeExportFile($originalFilename, $table_csv, true)) {
				log_event("", "redcap_data", "data_export", "", str_replace("'", "", $chkd_fields) . (($parent_chkd_flds == "") ? "" : ", " . str_replace("'", "", $parent_chkd_flds)), "Data Export Failed");
			} else {
				log_event("", "redcap_data", "data_export", "", str_replace("'", "", $chkd_fields) . (($parent_chkd_flds == "") ? "" : ", " . str_replace("'", "", $parent_chkd_flds)), "Export data for SendIt");
				/**
				 * email file link and download password in two separate emails via REDCap SendIt
				 */
				$file_info_sql = db_query("SELECT docs_id, docs_size, docs_type FROM redcap_docs WHERE project_id = $project_id ORDER BY docs_id DESC LIMIT 1"); // get required info about the file we just created
				if ($file_info_sql) {
					$docs_id = db_result($file_info_sql, 0, 'docs_id');
					$docs_size = db_result($file_info_sql, 0, 'docs_size');
					$docs_type = db_result($file_info_sql, 0, 'docs_type');
				}
				$yourName = 'PRIORITIZE REDCap';
				$expireDays = 3; // set the SendIt to expire in this many days
				/**
				 * $file_location:
				 * 1 = ephemeral, will be deleted on $expireDate
				 * 2 = export file, visible only to rights in file repository
				 */
				$file_location = 2;
				$send = 1; // always send download confirmation
				$expireDate = date('Y-m-d H:i:s', strtotime("+$expireDays days"));
				$expireYear = substr($expireDate, 0, 4);
				$expireMonth = substr($expireDate, 5, 2);
				$expireDay = substr($expireDate, 8, 2);
				$expireHour = substr($expireDate, 11, 2);
				$expireMin = substr($expireDate, 14, 2);

				// Add entry to sendit_docs table
				$query = "INSERT INTO redcap_sendit_docs (doc_name, doc_orig_name, doc_type, doc_size, send_confirmation, expire_date, username,
					location, docs_id, date_added)
				  VALUES ('$originalFilename', '" . prep($originalFilename) . "', '$docs_type', '$docs_size', $send, '$expireDate', '" . prep($userid) . "',
					$file_location, $docs_id, '" . NOW . "')";
				db_query($query);
				$newId = db_insert_id();

				$logDescrip = "Send file from file repository (Send-It)";
				log_event($query, "redcap_sendit_docs", "MANAGE", $newId, "document_id = $newId", $logDescrip);

				// Set email subject
				$subject = "[PRIORITIZE] " . $comment;
				$subject = html_entity_decode($subject, ENT_QUOTES);

				// Set email From address
				$from = array('Ken Bergquist' => '*****@*****.**');

				// Begin set up of email to send to recipients
				$email = new Message();
				foreach ($from as $name => $address) {
					$email->setFrom($address);
					$email->setFromName($name);
				}
				$email->setSubject($subject);

				// Loop through each recipient and send email
				foreach ($to as $name => $address) {
					// If a non-blank email address
					if (trim($address) != '') {
						// create key for unique url
						$key = strtoupper(substr(uniqid(md5(mt_rand())), 0, 25));

						// create password
						$pwd = generateRandomHash(8, false, true);

						$query = "INSERT INTO redcap_sendit_recipients (email_address, sent_confirmation, download_date, download_count, document_id, guid, pwd)
						  VALUES ('$address', 0, NULL, 0, $newId, '$key', '" . md5($pwd) . "')";
						$q = db_query($query);

						// Download URL
						$url = APP_PATH_WEBROOT_FULL . 'redcap_v' . $redcap_version . '/SendIt/download.php?' . $key;

						// Message from sender
						$note = "$comment for $today";
						// Get YMD timestamp of the file's expiration time
						$expireTimestamp = date('Y-m-d H:i:s', mktime($expireHour, $expireMin, 0, $expireMonth, $expireDay, $expireYear));

						// Email body
						$body = "<html><body style=\"font-family:Arial;font-size:10pt;\">
							$yourName {$lang['sendit_51']} \"$originalFilename\" {$lang['sendit_52']} " .
							date('l', mktime($expireHour, $expireMin, 0, $expireMonth, $expireDay, $expireYear)) . ",
							" . DateTimeRC::format_ts_from_ymd($expireTimestamp) . "{$lang['period']}
							{$lang['sendit_53']}<br><br>
							{$lang['sendit_54']}<br>
							<a href=\"$url\">$url</a><br><br>
							$note
							<br>-----------------------------------------------<br>
							{$lang['sendit_55']} " . CONSORTIUM_WEBSITE_DOMAIN . ".
							</body></html>";

						// Construct email and send
						$email->setTo($address);
						$email->setToName($name);
						$email->setBody($body);
						if ($email->send()) {
							// Now send follow-up email containing password
							$bodypass = "******"font-family:Arial;font-size:10pt;\">
								{$lang['sendit_50']}<br><br>
								$pwd<br><br>
								</body></html>";
							$email->setSubject("Re: $subject");
							$email->setBody($bodypass);
							sleep(2); // Hold for a second so that second email somehow doesn't reach the user first
							$email->send();
						} else {
							error_log("ERROR: pid=$project_id: Email to $name <$address> NOT SENT");
						}

					}
				}
			}
			unset($table_csv);
		}
	}
Exemplo n.º 19
0
 private function sendMessage()
 {
     $this->loadCurrentRoommate();
     if (!$this->roommate->id) {
         $this->message = 'Roommate entry could not be found. <a href="mailto:%s">Please contact us</a>
          if you continue to have difficulties.';
         return;
     }
     $sender_id = \Current_User::getId();
     $message = new Message();
     $message->setToUser($this->roommate->id);
     $message->setFromUser($sender_id);
     $message->setBody($_POST['message']);
     $message->setSenderName(\Current_User::getUsername());
     $result = $message->save();
     if (\PHPWS_Error::isError($result)) {
         \PHPWS_Error::log($result);
         return false;
     } else {
         return true;
     }
 }
		$to = array(
			'Ken Bergquist' => '*****@*****.**',
			'Lasheaka McClellan' => '*****@*****.**',
			'Tyre Johnson' => '*****@*****.**',
			'Dona-Marie Mintz' => '*****@*****.**',
			'Nicholas Slater' => '*****@*****.**'
		);
		//$to = array('Ken Bergquist' => '*****@*****.**');
		$from = array('Ken Bergquist' => '*****@*****.**');
		$subject = "HCV-TARGET 2 Site Source Upload Notification";
		$email = new Message ();
		foreach ($from as $name => $address) {
			$email->setFrom($address);
			$email->setFromName($name);
		}
		$email->setSubject($subject);
		$email->setBody($html);
		foreach ($to as $name => $address) {
			$email->setTo($address);
			$email->setToName($name);
			if (!$debug) {
				if (!$email->send()) {
					error_log("ERROR: Failed to send Site Source Upload digest");
				}
			}
		}
		d($email);
	} else {
		error_log("NOTICE: No site source uploads were available to be digested");
	}
}
Exemplo n.º 21
0
 /**
  * function generateReplyMessage
  * makes a reply message for this message object
  *
  * @return Message
  * @author Sean Grove
  **/
 public function generateReplyMessage()
 {
     $message = new Message();
     $message->setRecipientId($this->getSenderId());
     $message->setSenderId(sfContext::getInstance()->getUser()->getProfile()->getUserId());
     $message->setParentId($this->getUuid());
     $message->setSubject('re: ' . $this->getSubject());
     $message->setBody($this->formatMessageReply());
     sfContext::getInstance()->getLogger()->info('Set Msg parent id to :[' . $message->getParentId() . '], should be [' . $this->getUuid() . ']');
     if ($message->getRecipientId() == sfContext::getInstance()->getUser()->getProfile()->getUserId()) {
         $message->setRecipientId($this->getRecipientId());
     }
     return $message;
 }