Esempio n. 1
0
 /**
  * @param SS_HTTPRequest $r
  */
 public function emailattendees(SS_HTTPRequest $r)
 {
     $startTime = microtime(true);
     $summit = Summit::get_most_recent();
     $confirm = $r->getVar('confirm');
     $limit = $r->getVar('limit');
     $attendees = $summit->Attendees();
     $totalBeforeLimit = $attendees->count();
     $chunkSize = 100;
     $offset = 0;
     $appliedLimit = $confirm ? $chunkSize : ($limit ?: 50);
     $attendees = $attendees->limit($appliedLimit);
     while ($offset < $totalBeforeLimit) {
         echo "----- new chunk ({$offset}) ----" . $this->br();
         foreach ($attendees->limit($chunkSize, $offset) as $attendee) {
             if (!EmailValidator::validEmail($attendee->Member()->Email)) {
                 echo $attendee->Member()->Email . " is not a valid email. Skipping" . $this->br();
                 continue;
             }
             $to = $attendee->Member()->Email;
             $subject = "Rate OpenStack Summit sessions from {$summit->Title}";
             $email = EmailFactory::getInstance()->buildEmail('*****@*****.**', $to, $subject);
             $email->setUserTemplate("rate-summit-sessions-austin");
             $email->populateTemplate(['Name' => $attendee->Member()->FirstName]);
             if ($confirm) {
                 $email->send();
             } else {
                 //echo $email->debug();
             }
             echo 'Email sent to ' . $to . ' (' . $attendee->Member()->getName() . ')' . $this->br();
         }
         echo "---- end chunk ({$offset}) ----" . $this->br();
         $offset += $chunkSize;
     }
     echo $this->br(3) . "Sent a sample of {$appliedLimit} emails out of {$totalBeforeLimit} total" . $this->br();
     $endTime = microtime(true);
     echo "Elapsed time: " . $endTime - $startTime . $this->br();
 }
 function ThankYou()
 {
     $survey = $this->GetCurrentSurvey();
     Requirements::javascript('surveys/js/deployment_survey_thankyou_form.js');
     if ($survey->BeenEmailed != TRUE && EmailValidator::validEmail($survey->Member()->Email)) {
         //Send email to submitter
         $To = $survey->Member()->Email;
         $Subject = "The OpenStack User Survey: Thank You!";
         $email = EmailFactory::getInstance()->buildEmail(DEPLOYMENT_SURVEY_THANK_U_FROM_EMAIL, $To, $Subject);
         $email->setTemplate('DeploymentSurveyEmail');
         $email->populateTemplate($survey);
         $email->send();
         // Set flag in DB that this user has been emailed
         $survey->BeenEmailed = TRUE;
         $survey->UpdateDate = SS_Datetime::now()->Rfc2822();
         $survey->write();
     }
     return array();
 }