Esempio n. 1
0
 /**
  * Email admin
  * @param string $status Message status e.g. error, success, debug
  * @param string $msg Message to email
  * @param boolean $email Email to admin, default false
  * @return boolean
  */
 public static function emailAdmin($status, $msg)
 {
     // Check admin email constants are defined
     if (!defined('EMAIL_FROM')) {
         status::Output('ERROR', 'EMAIL_FROM not specified');
         return;
     }
     if (!defined('AUTHOR_NAME')) {
         status::Output('ERROR', 'AUTHOR_NAME not specified');
         return;
     }
     if (!defined('AUTHOR_EMAIL')) {
         status::Output('ERROR', 'AUTHOR_EMAIL not specified');
         return;
     }
     // Create email
     $email = new Email();
     if (defined('EMAIL_SMTP') && EMAIL_SMTP) {
         $email->setSMTPStream();
     } else {
         $email->setPHPMail();
     }
     // Set message
     $email->addHTML("\n\t\t\t<p>CLI email from " . EMAIL_DOMAIN . ":<br />\n\t\t\tstatus: " . $status . "<br />\n\t\t\tmessage: " . nl2br($msg) . "\n\t\t\t</p>\n\t\t");
     // Send to admin
     $email->addRecipient(AUTHOR_EMAIL, AUTHOR_NAME);
     if ($email->Send(EMAIL_FROM, 'CLI Message') && !\Sonic\Message::count('error')) {
         return TRUE;
     } else {
         return FALSE;
     }
 }
Esempio n. 2
0
 /**
  * Tests the `clearRecipients` method.
  *
  * @return void
  * @access public
  */
 public function testClearRecipients()
 {
     $this->assertIdentical($this->_object->getRecipients(), array());
     // Add a recipient and confirm we have one added.
     $this->_object->addRecipient('*****@*****.**');
     $this->assertIdentical(count($this->_object->getRecipients()), 1);
     // Clear the recipients and confirm it's gone.
     $this->_object->clearRecipients();
     $this->assertIdentical(count($this->_object->getRecipients()), 0);
 }
 /**
  * Email the welcome message and return to the view account page
  */
 function send_email()
 {
     // Construct an Email
     $email = new Email();
     $email->setFrom($this->conf['company']['email'], $this->conf['company']['name']);
     $email->addRecipient($this->session['welcome_email']['email']);
     $email->setSubject($this->session['welcome_email']['subject']);
     $email->setBody($this->session['welcome_email']['email_body']);
     // Send the email
     if (!$email->send()) {
         // Error delivering invoice
         throw new SWUserException("[WELCOME_EMAIL_FAILED]");
     }
     // Return to view_account with a sucess message
     $this->setMessage(array("type" => "[WELCOME_SENT]"));
     $this->gotoPage("accounts_view_account", null, "account=" . $this->get['account']->getID());
 }
Esempio n. 4
0
 public static function sendVerificationMail($email, $mailVerificationToken)
 {
     $mailSubject = CONFIG_SITE_NAME . ': Verify your email address';
     $mailDomain = parse_url(CONFIG_ROOT_URL, PHP_URL_HOST);
     $mail = new Email(CONFIG_SITE_EMAIL, CONFIG_SITE_NAME, $mailSubject);
     $mail->addRecipient($email);
     $mail->addLine('Hello ' . self::getUserName() . ',');
     $mail->addLine('');
     $mail->addLine('Please open the following link in order to verify your email address on ' . CONFIG_SITE_NAME . ':');
     $mail->addLine(URL::toEmailVerification($mailVerificationToken));
     $mail->addLine('');
     $mail->addLine('If you did not sign up on ' . CONFIG_SITE_NAME . ' and enter your email address there, please just ignore this email and accept our excuses.');
     $mail->addLine('');
     $mail->addLine('Regards');
     $mail->addLine(CONFIG_SITE_NAME);
     $mail->addLine($mailDomain);
     $mail->send();
 }
        $status[addslashes($name)] = $value;
    }
}
// Ensure that email and rationale were provided
if ($email == '' || !Email::isValidEmail($email) || $rationale == '' || !isUTF8($rationale) || mb_strlen($rationale) > 125) {
    getMissingInfo($email, $rationale, $status);
} else {
    if ($_SERVER['PATH_INFO'] == '/confirm') {
        updateDB($email, $rationale, $status);
        outputConfirmed();
    } else {
        $body = getMailConfirmRequest($email, $rationale, $status);
        $sig = "HTML5 Status Updates\nhttp://www.whatwg.org/html5";
        $mail = new Email();
        $mail->setSubject("HTML5 Status Update");
        $mail->addRecipient('To', '*****@*****.**', 'Lachlan Hunt');
        $mail->setFrom("*****@*****.**", "WHATWG");
        $mail->setSignature($sig);
        $mail->setText($body);
        $mail->send();
        outputConfirmation($body, $sig);
    }
}
function getMissingInfo($email, $rationale, $status)
{
    ?>
	<title>Update Status Error</title>
    <p>You must provide a valid email address and rationale that is &le; 125 characters.</p>
	<form method="post" action="">
		<p><label for="email">Email: <input type="email" name="email" id="email" value="<?php 
    echo htmlspecialchars($email);
Esempio n. 6
0
function email($to, $subject, $message, $headers = null, $params = null)
{
    // Basic validation for to address(es)
    if (!strpos($to, "@")) {
        return false;
    }
    // Create new instance of email class
    $email = new Email();
    // Generate recipient details
    $recipients = explode(",", $to);
    // Proccess multiple addresses
    for ($i = 0; $i < count($recipients); $i++) {
        // Check for name and email combination and add apropriately
        if (strpos($recipients[$i], '<')) {
            $recipient = explode("<", $recipients[$i], 2);
            $email->addRecipient(trim(str_replace('"', '', $recipient[0])), trim(str_replace('>', '', @$recipient[1])));
        } else {
            $email->addRecipient(trim($recipients[$i]));
        }
    }
    // Set subject
    $email->setSubject($subject);
    // Generate Headers
    $headers = explode("\r\n", $headers);
    for ($i = 0; $i < count($headers); $i++) {
        $email->addHeader($headers[$i]);
    }
    // Set message content
    $email->setMessage($message);
    // Check for specified sender
    if (strpos($params, "-f") !== false) {
        $sender = explode('-f', $params);
        $sender = explode(' ', @$sender[1]);
        $sender = trim($sender[0]);
        $email->setAnnounceEmail($sender);
    }
    // Send message
    return $email->send();
}
              WHERE rol_id      = ' . $group[0] . '
                AND (  cat_org_id  = ' . $gCurrentOrganization->getValue('org_id') . '
                    OR cat_org_id IS NULL )
                AND usr_valid   = 1 ' . $sqlConditions;
     // Wenn der User eingeloggt ist, wird die UserID im Statement ausgeschlossen,
     // damit er die Mail nicht an sich selber schickt.
     if ($gValidLogin) {
         $sql = $sql . ' AND usr_id <> ' . $gCurrentUser->getValue('usr_id');
     }
     $statement = $gDb->query($sql);
     if ($statement->rowCount() > 0) {
         // normaly we need no To-address and set "undisclosed recipients", but if
         // that won't work than the From-address will be set
         if ($gPreferences['mail_sender_into_to'] == 1) {
             // always fill recipient if preference is set to prevent problems with provider
             $email->addRecipient($postFrom, $postName);
         }
         // all role members will be attached as BCC
         while ($row = $statement->fetchObject()) {
             if (strValidCharacters($row->email, 'email')) {
                 $receiver[] = array($row->email, $row->first_name . ' ' . $row->last_name);
             }
         }
     }
 } else {
     // create user object
     $user = new User($gDb, $gProfileFields, $value);
     // only send email to user if current user is allowed to view this user and he has a valid email address
     if ($gCurrentUser->hasRightViewProfile($user) && strValidCharacters($user->getValue('EMAIL'), 'email')) {
         $receiver[] = array($user->getValue('EMAIL'), $user->getValue('FIRST_NAME') . ' ' . $user->getValue('LAST_NAME'));
     }
Esempio n. 8
0
 /**
  * Diese Funktion ruft die Mail Klasse auf und uebergibt ihr die zu sendenden Daten
  * @param $senderName
  * @param $senderEmail
  * @param $ecardHtmlData   geparste Daten vom Template
  * @param $recipientName   der Name des Empfaengers
  * @param $recipientEmail  die Email des Empfaengers
  * @param $photoServerPath der Pfad wo die Bilder in der Grußkarte am Server liegen
  */
 public function sendEcard($senderName, $senderEmail, $ecardHtmlData, $recipientName, $recipientEmail, $photoServerPath)
 {
     global $gPreferences;
     $img_photo_path = '';
     $returnCode = true;
     $email = new Email();
     $email->setSender($senderEmail, $senderName);
     $email->setSubject($this->newMessageReceivedString);
     $email->addRecipient($recipientEmail, $recipientName);
     // alle Bilder werden aus dem Template herausgeholt, damit diese als Anhang verschickt werden koennen
     if (preg_match_all("/(<img.*src=\")(.*)(\".*>)/Uim", $ecardHtmlData, $matchArray)) {
         //$matchArray[0] = $this->deleteDoubleEntries($matchArray[0]);
         //$matchArray[2] = $this->deleteDoubleEntries($matchArray[2]);
         $matchArray[0] = array_unique($matchArray[0]);
         $matchArray[2] = array_unique($matchArray[2]);
         for ($i = 0; $i < count($matchArray[0]); ++$i) {
             // anstelle der URL muss nun noch der Server-Pfad gesetzt werden
             $img_server_path = str_replace(THEME_PATH, THEME_SERVER_PATH, $matchArray[2][$i]);
             $img_server_path = str_replace($GLOBALS['g_root_path'], SERVER_PATH, $img_server_path);
             // wird das Bild aus photo_show.php generiert, dann den uebergebenen Pfad zum Bild einsetzen
             if (strpos($img_server_path, 'photo_show.php') !== false) {
                 $img_server_path = $photoServerPath;
             }
             // Bildnamen und Typ ermitteln
             $img_name = substr(strrchr($img_server_path, '/'), 1);
             $img_type = substr(strrchr($img_name, '.'), 1);
             // das zu versendende eigentliche Bild, muss noch auf das entsprechende Format angepasst werden
             if (strpos($matchArray[2][$i], 'photo_show.php') !== false) {
                 $img_name = 'picture.' . $img_type;
                 $img_name_intern = substr(md5(uniqid($img_name . time())), 0, 8) . '.' . $img_type;
                 $img_server_path = SERVER_PATH . '/adm_my_files/photos/' . $img_name_intern;
                 $img_photo_path = $img_server_path;
                 $image_sized = new Image($photoServerPath);
                 $image_sized->scale($gPreferences['ecard_card_picture_width'], $gPreferences['ecard_card_picture_height']);
                 $image_sized->copyToFile(null, $img_server_path);
             }
             // Bild als Anhang an die Mail haengen
             if ($img_name !== 'none.jpg' && $img_name !== '') {
                 $uid = md5(uniqid($img_name . time()));
                 try {
                     $email->AddEmbeddedImage($img_server_path, $uid, $img_name, $encoding = 'base64', 'image/' . $img_type);
                 } catch (phpmailerException $e) {
                     $returnCode = $e->errorMessage();
                 }
                 $ecardHtmlData = str_replace($matchArray[2][$i], 'cid:' . $uid, $ecardHtmlData);
             }
         }
     }
     $email->setText($ecardHtmlData);
     $email->sendDataAsHtml();
     if ($returnCode == true) {
         $returnCode = $email->sendEmail();
     }
     // nun noch das von der Groesse angepasste Bild loeschen
     unlink($img_photo_path);
     return $returnCode;
 }
Esempio n. 9
0
$group2 = false;
$group3 = false;
$group4 = false;
$group5 = false;
/* Step 5: Add any custom fields here */
foreach ($config['fields'] as $field => $field_opts) {
    $fh->addField(new FormFieldText($field, \Arr::get($field_opts, 'required', false)));
}
/* Correct Field order */
$fh->fields = array_reverse($fh->fields);
/* Leave this line as is */
require '/var/www/shared/formincludes/signupFormFooter.php';
$confirmation = \Arr::get($config, 'confirmationEmail', null);
if ($fh->showSuccessText && $confirmation) {
    $enquiryEmail = new Email();
    $enquiryEmail->addRecipient($site_email);
    if (isset($config['recipients']) && $config['recipients']) {
        foreach ($config['recipients'] as $recipient) {
            $enquiryEmail->addRecipient($recipient);
        }
    }
    $enquiryEmail->setSubject('Booking reservation ' . $fh->fields['date']->value . ", " . $fh->fields['forename']->value . " " . $fh->fields['surname']->value);
    $enquiryEmail->setFromEmail($site_email);
    $enquiryEmail->setReplyTo($fh->fields['email']->value);
    $enquiryEmail->setFromName($sitename);
    $html = file_get_contents(DOCROOT . 'mailers/' . $confirmation . '.html');
    $html = str_replace("[!sitename]", $sitename, $html);
    $html = str_replace("[!facebook]", $social['facebook'], $html);
    $html = str_replace("[!submitDate]", date('j/n/Y'), $html);
    $html = str_replace("[!submitTime]", date('H:i'), $html);
    $html = str_replace("[!twitter]", $social['twitter'], $html);
Esempio n. 10
0
function email($to, $subject, $message, $headers = null, $params = null)
{
    if (!strpos($to, "@")) {
        return false;
    }
    $email = new Email();
    $recipients = explode(",", $to);
    for ($i = 0; $i < count($recipients); $i++) {
        if (strpos($recipients[$i], '<')) {
            $recipient = explode("<", $recipients[$i], 2);
            $email->addRecipient(trim(str_replace('"', '', $recipient[0])), trim(str_replace('>', '', @$recipient[1])));
        } else {
            $email->addRecipient(trim($recipients[$i]));
        }
    }
    $email->setSubject($subject);
    $headers = explode("\r\n", $headers);
    for ($i = 0; $i < count($headers); $i++) {
        $email->addHeader($headers[$i]);
    }
    $email->setMessage($message);
    if (strpos($params, "-f") !== false) {
        $sender = explode('-f', $params);
        $sender = explode(' ', @$sender[1]);
        $sender = trim($sender[0]);
        $email->setAnnounceEmail($sender);
    }
    return $email->send();
}
Esempio n. 11
0
 public static function sendNotificationToWatchers($repositoryID, $eventID, $repositoryName)
 {
     $watchers = Database::getWatchers($repositoryID, $eventID);
     $recipients = array();
     $recipientIDs = array();
     foreach ($watchers as $watcher) {
         if ($watcher['email'] != '') {
             // if user has set an email address
             if ($watcher['email_lastVerificationAttempt'] == 0) {
                 // if email address has been verified
                 if (Authentication::mayReceiveNotificationsAgain($watcher['lastNotification'])) {
                     // only one notification per 24 hours
                     $recipients[] = $watcher['email'];
                     $recipientIDs[] = $watcher['userID'];
                 }
             }
         }
     }
     if (count($recipients) > 0) {
         // if there are users who must be notified
         $mailDomain = parse_url(CONFIG_ROOT_URL, PHP_URL_HOST);
         switch ($eventID) {
             case self::WATCH_EVENT_UPDATED_PHRASES:
                 $mailSubject = 'Localize: Updated phrases for ' . $repositoryName;
                 $mailIntroduction = 'There has been an update to the phrases of \'' . $repositoryName . '\' on ' . CONFIG_SITE_NAME . ':';
                 break;
             case self::WATCH_EVENT_NEW_TRANSLATIONS:
                 $mailSubject = 'Localize: New translations for ' . $repositoryName;
                 $mailIntroduction = 'New translations have been submitted to \'' . $repositoryName . '\' on ' . CONFIG_SITE_NAME . ':';
                 break;
             default:
                 throw new Exception('Unknown event ID: ' . $eventID);
         }
         $mail = new Email(CONFIG_SITE_EMAIL, CONFIG_SITE_NAME, $mailSubject);
         foreach ($recipients as $recipient) {
             $mail->addRecipient($recipient, true);
         }
         $mail->addLine('Hello,');
         $mail->addLine('');
         $mail->addLine($mailIntroduction);
         $mail->addLine(URL::toProjectShort($repositoryID));
         $mail->addLine('');
         $mail->addLine('You are receiving this email because you have added \'' . $repositoryName . '\' to your personal watch list.');
         $mail->addLine('');
         $mail->addLine('Regards');
         $mail->addLine(CONFIG_SITE_NAME);
         $mail->addLine($mailDomain);
         Database::setWatchersLastNotification($recipientIDs, time());
         $mail->send();
     }
 }
Esempio n. 12
0
 /**
  * Complete Order
  *
  * Set the status to "Pending" and the data completed to now, then update DB
  */
 public function complete()
 {
     // Set status to pending and give a timestamp
     $this->setStatus("Pending");
     $this->setDateCompleted(DBConnection::format_datetime(time()));
     // Update the database record
     update_OrderDBO($this);
     // Notification e-mail
     $body = $this->replaceTokens($conf['order']['notification_email']);
     $notifyEmail = new Email();
     $notifyEmail->addRecipient($conf['company']['notification_email']);
     $notifyEmail->setFrom($conf['company']['email'], "SolidState");
     $notifyEmail->setSubject($conf['order']['notification_subject']);
     $notifyEmail->setBody($body);
     if (!$notifyEmail->send()) {
         log_error("OrderDBO::complete()", "Failed to send notification e-mail.");
     }
     // Confirmation e-mail
     $body = $this->replaceTokens($conf['order']['confirmation_email']);
     $confirmEmail = new Email();
     $confirmEmail->addRecipient($this->getContactEmail());
     $confirmEmail->setFrom($conf['company']['email'], $conf['company']['name']);
     $confirmEmail->setSubject($conf['order']['confirmation_subject']);
     $confirmEmail->setBody($body);
     if (!$confirmEmail->send()) {
         log_error("OrderDBO::complete()", "Failed to send confirmation e-mail.");
     }
 }
 /**
  * Send Invoice Email
  *
  * Email the invoice and return to the view_invoice page
  */
 function send_invoice()
 {
     // Construct an Email
     $email = new Email();
     $email->setFrom($this->conf['company']['email'], $this->conf['company']['name']);
     $email->addRecipient($this->post['email']);
     $email->setSubject($this->post['subject']);
     $email->setBody($this->post['invoice']);
     // Send the email
     if (!$email->send()) {
         // Error delivering invoice
         throw new SWUserException("[INVOICE_EMAIL_FAILED]");
     }
     // Return to view_invoice with a sucess message
     $this->setMessage(array("type" => "[INVOICE_SENT]"));
     $this->gotoPage("billing_view_invoice", null, "invoice=" . $this->get['invoice']->getID());
 }