function SaveDeployment($data, $form)
 {
     $id = convert::raw2sql($data['DeploymentID']);
     // Only loaded if it belongs to current user
     $Deployment = $form->controller->LoadDeployment($id);
     // If a deployment wasn't returned, we'll create a new one
     if (!$Deployment) {
         $Deployment = new Deployment();
         $Deployment->OrgID = Member::currentUser()->getCurrentOrganization()->ID;
         $newDeploy = true;
     }
     $form->saveInto($Deployment);
     $survey = $form->controller->GetCurrentSurvey();
     $Deployment->DeploymentSurveyID = $survey->ID;
     $Deployment->UpdateDate = SS_Datetime::now()->Rfc2822();
     $Deployment->OrgID = $survey->OrgID;
     $Deployment->write();
     /**/
     $survey->CurrentStep = 'MoreDeploymentDetails';
     $survey->HighestStepAllowed = 'MoreDeploymentDetails';
     $survey->UpdateDate = SS_Datetime::now()->Rfc2822();
     $survey->write();
     // If it is a new deployment and it is public, we send an email...
     if (isset($newDeploy) && $Deployment->IsPublic === 1) {
         global $email_new_deployment;
         global $email_from;
         $email = EmailFactory::getInstance()->buildEmail($email_from, $email_new_deployment, 'New Deployment');
         $email->setTemplate('NewDeploymentEmail');
         $email->populateTemplate(array('Deployment' => $Deployment));
         $email->send();
     }
     Session::set('CurrentDeploymentID', $Deployment->ID);
     Controller::curr()->redirect($form->controller->Link() . 'MoreDeploymentDetails');
 }
 /**
  * @param mixed $subject
  * @throws Exception
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Summit']) || !isset($subject['Name']) || !isset($subject['Email']) || !isset($subject['PromoCode'])) {
         return;
     }
     $summit = $subject['Summit'];
     $name = $subject['Name'];
     $email_address = $subject['Email'];
     $promo_code = $subject['PromoCode'];
     if (!$summit instanceof ISummit) {
         return;
     }
     if (!$promo_code instanceof SummitRegistrationPromoCode) {
         return;
     }
     $email = PermamailTemplate::get()->filter('Identifier', MEMBER_PROMO_CODE_EMAIL)->first();
     if (is_null($email)) {
         throw new Exception(sprintf('Email Template %s does not exists on DB!', MEMBER_PROMO_CODE_EMAIL));
     }
     $email = EmailFactory::getInstance()->buildEmail(MEMBER_NOTIFICATION_PROMO_CODE_EMAIL_FROM, $email_address);
     $schedule_page = SummitAppSchedPage::get()->filter('SummitID', $summit->ID)->first();
     if (is_null($schedule_page)) {
         throw new Exception('Summit Schedule page does not exists!');
     }
     $email->setUserTemplate(MEMBER_PROMO_CODE_EMAIL)->populateTemplate(array('Name' => $name, 'PromoCode' => $promo_code->getCode(), 'Summit' => $summit, 'ScheduleMainPageLink' => $schedule_page->getAbsoluteLiveLink(false)))->send();
 }
 function save($data, $form)
 {
     $response = new OSLogoProgramResponse();
     $form->saveInto($response);
     // Combine these two fields so we just store a manually typed name in
     // $data[OtherCompany]
     if ($data['NonSponsorCompany']) {
         $response->OtherCompany = $data['NonSponsorCompany'];
     }
     $response->write();
     // Now set the official company name for the email
     $data['CompanyName'] = 'Not Provided';
     if ($response->OtherCompany) {
         $response->CompanyName = $response->OtherCompany;
     } elseif ($response->CompanyID != 0) {
         $company = Company::get()->byID($response->CompanyID);
         if ($company) {
             $response->CompanyName = $company->Name;
         }
     }
     // Email the logo email list
     $Subject = "Contact Form for Commercial Logo Inquiries";
     $email = EmailFactory::getInstance()->buildEmail($data['Email'], OS_LOGO_PROGRAM_FORM_TO_EMAIL, $Subject);
     $email->setTemplate('OSLogoProgramResponseEmail');
     $email->populateTemplate($response);
     $email->send();
     if ($response->Program === 'Powered') {
         Controller::curr()->setMessage('success', 'Thanks for your interest in licensing the OpenStack Powered logo. Please review the interoperability standards at  <a href="http://www.openstack.org/interop" class="alert-link">openstack.org/interop</a> page and submit test results according to the instructions.');
     }
     return Controller::curr()->redirect(Controller::curr()->Link("thanks"));
 }
 /**
  * @param array $data
  * @return INews
  */
 public function postNews(array $data)
 {
     $validator_factory = $this->validator_factory;
     $factory = $this->factory;
     $repository = $this->news_repository;
     $submitter_repository = $this->submitter_repository;
     $upload_service = $this->upload_service;
     return $this->tx_manager->transaction(function () use($data, $repository, $submitter_repository, $factory, $validator_factory, $upload_service) {
         $validator = $validator_factory->buildValidatorForNews($data);
         if ($validator->fails()) {
             throw new EntityValidationException($validator->messages());
         }
         $submitter = $submitter_repository->getSubmitterByEmail($data['submitter_email']);
         if (!$submitter) {
             $submitter = $factory->buildNewsSubmitter($data);
         }
         $news = $factory->buildNews($factory->buildNewsMainInfo($data), $data['tags'], $submitter, $upload_service);
         $repository->add($news);
         //send email
         $email = EmailFactory::getInstance()->buildEmail(NEWS_SUBMISSION_EMAIL_FROM, NEWS_SUBMISSION_EMAIL_ALERT_TO, NEWS_SUBMISSION_EMAIL_SUBJECT);
         $email->setTemplate('NewsSubmissionEmail');
         $email->populateTemplate(array('ArticleHeadline' => $news->Headline, 'ArticleSummary' => $news->Summary));
         $email->send();
     });
 }
 /**
  * @param mixed $subject
  * @throws Exception
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Summit']) || !isset($subject['Speaker'])) {
         return;
     }
     $summit = $subject['Summit'];
     $speaker = $subject['Speaker'];
     $role = $subject['Role'];
     if (!$speaker instanceof IPresentationSpeaker) {
         return;
     }
     if (!$summit instanceof ISummit) {
         return;
     }
     $email = PermamailTemplate::get()->filter('Identifier', PRESENTATION_SPEAKER_REJECTED_EMAIL)->first();
     if (is_null($email)) {
         throw new Exception(sprintf('Email Template %s does not exists on DB!', PRESENTATION_SPEAKER_REJECTED_EMAIL));
     }
     $speaker->registerAnnouncementEmailTypeSent(IPresentationSpeaker::AnnouncementEmailRejected, $summit->ID);
     $email = EmailFactory::getInstance()->buildEmail(PRESENTATION_SPEAKER_NOTIFICATION_ACCEPTANCE_SUMMIT_SUPPORT, $speaker->getEmail());
     $email->setUserTemplate(PRESENTATION_SPEAKER_REJECTED_EMAIL)->populateTemplate(array('Speaker' => $speaker, 'Role' => $role, 'Summit' => $summit))->send();
 }
 /**
  * @return EmailFactory
  */
 public static function getInstance()
 {
     if (!is_object(self::$instance)) {
         self::$instance = new EmailFactory();
     }
     return self::$instance;
 }
 /**
  * @param mixed $subject
  * @throws Exception
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Summit']) || !isset($subject['Speaker']) || !isset($subject['PromoCode'])) {
         return;
     }
     $summit = $subject['Summit'];
     $speaker = $subject['Speaker'];
     $role = $subject['Role'];
     $promo_code = $subject['PromoCode'];
     if (!$speaker instanceof IPresentationSpeaker) {
         return;
     }
     if (!$summit instanceof ISummit) {
         return;
     }
     if (!$promo_code instanceof SpeakerSummitRegistrationPromoCode) {
         return;
     }
     $email = PermamailTemplate::get()->filter('Identifier', PRESENTATION_SPEAKER_ALTERNATE_ONLY_EMAIL)->first();
     if (is_null($email)) {
         throw new Exception(sprintf('Email Template %s does not exists on DB!', PRESENTATION_SPEAKER_ALTERNATE_ONLY_EMAIL));
     }
     $speaker->registerAnnouncementEmailTypeSent(IPresentationSpeaker::AnnouncementEmailAlternate, $summit->ID);
     $email = EmailFactory::getInstance()->buildEmail(PRESENTATION_SPEAKER_NOTIFICATION_ACCEPTANCE_EMAIL_FROM, $speaker->getEmail());
     $schedule_page = SummitAppSchedPage::getBy($summit);
     if (is_null($schedule_page)) {
         throw new Exception('Summit Schedule page does not exists!');
     }
     $email->setUserTemplate(PRESENTATION_SPEAKER_ALTERNATE_ONLY_EMAIL)->populateTemplate(array('Speaker' => $speaker, 'Role' => $role, 'ConfirmationLink' => $speaker->getSpeakerConfirmationLink($summit->ID), 'PromoCode' => $promo_code->getCode(), 'Summit' => $summit, 'ScheduleMainPageLink' => $schedule_page->getAbsoluteLiveLink(false)))->send();
 }
 /**
  * @param mixed $subject
  * @throws EntityValidationException
  * @throws NotFoundEntityException
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Summit']) || !isset($subject['Speaker'])) {
         return;
     }
     $summit = $subject['Summit'];
     $speaker = $subject['Speaker'];
     if (!$speaker instanceof IPresentationSpeaker) {
         return;
     }
     if (!$summit instanceof ISummit) {
         return;
     }
     if ($speaker->breakoutEmailAlreadySent($summit->getIdentifier())) {
         throw new EntityValidationException('Speaker Email already Sent!');
     }
     $email = PermamailTemplate::get()->filter('Identifier', PRESENTATION_SPEAKER_SUMMIT_REMINDER_EMAIL)->first();
     if (is_null($email)) {
         throw new NotFoundEntityException(sprintf('Email Template %s does not exists on DB!', PRESENTATION_SPEAKER_SUMMIT_REMINDER_EMAIL));
     }
     $schedule_page = SummitAppSchedPage::get()->filter('SummitID', $summit->getIdentifier())->first();
     if (is_null($schedule_page)) {
         throw new NotFoundEntityException('Summit Schedule page does not exists!');
     }
     $speaker->registerBreakOutSent($summit->getIdentifier(), 'SECOND_BREAKOUT_REMAINDER');
     $email = EmailFactory::getInstance()->buildEmail(null, $speaker->getEmail());
     $email->setUserTemplate(PRESENTATION_SPEAKER_SUMMIT_REMINDER_EMAIL)->populateTemplate(array('Speaker' => $speaker, 'Summit' => $summit, 'ScheduleMainPageLink' => $schedule_page->getAbsoluteLiveLink(false)))->send();
 }
 /**
  * @param int $batch_size
  * @param string $email_alert_to
  * @param string $details_url
  */
 public function makeDigest($batch_size = 15, $email_alert_to, $details_url)
 {
     $email_repository = $this->email_repository;
     $repository = $this->repository;
     $factory = $this->factory;
     $this->tx_manager->transaction(function () use($batch_size, $email_alert_to, $details_url, $repository, $email_repository, $factory) {
         $last_email = $email_repository->getLastOne();
         $query = new QueryObject();
         $query->addAndCondition(QueryCriteria::equal('isPosted', 0));
         $query->addAndCondition(QueryCriteria::equal('isRejected', 0));
         if ($last_email) {
             $query->addAndCondition(QueryCriteria::greater('ID', $last_email->getLastEventRegistrationRequest()->getIdentifier()));
         }
         $query->addOrder(QueryOrder::asc('PostDate'));
         list($list, $size) = $repository->getAll($query, 0, $batch_size);
         if ($list && count($list) > 0) {
             $last_one = end($list);
             reset($list);
             $email = EmailFactory::getInstance()->buildEmail(EVENT_REGISTRATION_REQUEST_EMAIL_FROM, $email_alert_to, "New Event Registration Requests");
             $email->setTemplate('EventAlertEmail');
             $email->populateTemplate(array('RegistrationRequests' => new ArrayList($list), 'Details' => $details_url));
             $email->send();
             $email_repository->add($factory->buildEventAlertEmail($last_one));
         }
     });
 }
 function submitFeedback(array $data, Form $form)
 {
     // TRUE if the submission contains a link. Crude spam mitigation.
     $ContainsLink = strpos($data['Content'], "http://") !== false;
     if ($data['Content'] != NULL && !$ContainsLink) {
         $FeedbackSubmission = new FeedbackSubmission();
         $form->saveInto($FeedbackSubmission);
         // Tie the URL of the current page to the feedback submission
         $page = Director::get_current_page();
         $FeedbackSubmission->Page = $page->Link();
         //$FeedbackSubmission->write();
         //Send email alert about submission
         $Subject = "New Website Feedback Submission";
         $email = EmailFactory::getInstance()->buildEmail(FEEDBACK_FORM_FROM_EMAIL, FEEDBACK_FORM_TO_EMAIL, $Subject);
         $email->setTemplate("FeedbackSubmissionEmail");
         $email->populateTemplate($FeedbackSubmission);
         $email->send();
         // Redirect back to the page with a success message
         $form->controller->setMessage('Success', 'Thanks for providing feedback to improve the OpenStack website!');
         $form->controller->redirectBack();
     } else {
         $form->controller->setMessage('Error', "Oops! It doesn't look like you provided any feedback. Please check the form and try again.");
         $form->controller->redirectBack();
     }
 }
Example #11
0
 /**
  * @param string $token
  * @param string $password
  * @param string $password_confirmation
  * @throws InvalidResetPasswordTokenException
  * @throws EmptyPasswordException
  * @throws InvalidPasswordException
  * @throws PasswordMismatchException
  */
 public function changePassword($token, $password, $password_confirmation)
 {
     $member = Member::currentUser();
     if (!$member) {
         if (empty($token)) {
             throw new InvalidResetPasswordTokenException();
         }
         $member = Member::member_from_autologinhash($token);
     }
     if (!$member) {
         throw new InvalidResetPasswordTokenException();
     }
     if (empty($password)) {
         throw new EmptyPasswordException();
     }
     if ($password !== $password_confirmation) {
         throw new PasswordMismatchException();
     }
     $isValid = $member->changePassword($password);
     if (!$isValid->valid()) {
         throw new InvalidPasswordException($isValid->starredList());
     }
     //invalidate former auto login token
     $member->generateAutologinTokenAndStoreHash();
     //send confirmation email
     $email = EmailFactory::getInstance()->buildEmail(CHANGE_PASSWORD_EMAIL_FROM, $member->Email, CHANGE_PASSWORD_EMAIL_SUBJECT);
     $email->setTemplate('ChangedPasswordEmail');
     $email->populateTemplate(array('MemberName' => $member->getFullName()));
     $email->send();
 }
 function run()
 {
     $batch_size = 15;
     if (isset($_GET['batch_size'])) {
         $batch_size = intval(trim(Convert::raw2sql($_GET['batch_size'])));
     }
     $surveys = DeploymentSurvey::getNotDigestSent($batch_size);
     $deployments = Deployment::getNotDigestSent($batch_size);
     if ($surveys) {
         foreach ($surveys as $survey) {
             $survey->SendDigest = 1;
             $survey->write();
         }
     }
     if ($deployments) {
         foreach ($deployments as $dep) {
             $dep->SendDigest = 1;
             $dep->write();
         }
     }
     if ((!is_null($surveys) && count($surveys)) > 0 || !is_null($deployments) && count($deployments)) {
         global $email_new_deployment;
         $email = EmailFactory::getInstance()->buildEmail($email_new_deployment, $email_new_deployment, $subject = 'New Deployments and Surveys');
         $email->setTemplate('NewDeploymentsSurveysEmail');
         $email->populateTemplate(array('SurveysUrl' => Director::absoluteURL('admin/deployments/DeploymentSurvey/EditForm/field/DeploymentSurvey/item'), 'DeploymentsUrl' => Director::absoluteURL('admin/deployments/Deployment/EditForm/field/Deployment/item'), 'SangriaDeploymentsUrl' => Director::absoluteURL('sangria/ViewDeploymentDetails'), 'Surveys' => $surveys, 'Deployments' => $deployments));
         $email->send();
     }
 }
 /**
  * @param IEntity $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send(IEntity $subject)
 {
     if (!$subject instanceof IPresentationSpeaker) {
         return;
     }
     $subject->registerAnnouncementEmailTypeSent(IPresentationSpeaker::AnnouncementEmailRejected);
     $email = EmailFactory::getInstance()->buildEmail('*****@*****.**', $subject->getEmail());
     $email->setUserTemplate('presentation-speaker-rejected-only')->populateTemplate(array('Speaker' => $subject))->send();
 }
 /**
  * @param $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     $email_template = PermamailTemplate::get_by_identifier('summit-attendee-create-membership-invitation');
     if (is_null($email_template)) {
         return;
     }
     $email = EmailFactory::getInstance()->buildEmail(null, $subject);
     $email->setUserTemplate('summit-attendee-create-membership-invitation')->populateTemplate(array('Email' => $subject))->send();
 }
 /**
  * @param $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     $email_template = PermamailTemplate::get_by_identifier(SUMMIT_ATTENDEE_CREATE_MEMBERSHIP_INVITATION_EMAIL_TEMPLATE);
     if (is_null($email_template)) {
         return;
     }
     $email = EmailFactory::getInstance()->buildEmail(null, $subject);
     $email->setUserTemplate('summit-attendee-create-membership-invitation')->populateTemplate(array('Email' => $subject, 'Summit' => Summit::get_active()))->send();
 }
 /**
  * @param IEntity $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send(IEntity $subject)
 {
     if (!$subject instanceof IPresentationSpeaker) {
         return;
     }
     $subject->registerAnnouncementEmailTypeSent(IPresentationSpeaker::AnnouncementEmailAlternate);
     $email = EmailFactory::getInstance()->buildEmail('*****@*****.**', $subject->getEmail());
     $email->setUserTemplate('presentation-speaker-alternate-only')->populateTemplate(array('Speaker' => $subject, 'ConfirmationLink' => $subject->getSpeakerConfirmationLink(), 'ScheduleMainPageLink' => Summit::get_active()->SchedUrl, 'PromoCode' => $subject->getSummitPromoCode()->getCode()))->send();
 }
 /**
  * @param IEntity $subject
  * @throws InvalidArgumentException
  */
 public function send(IEntity $subject)
 {
     if (is_null($subject)) {
         throw new InvalidArgumentException('$subject cant be null');
     }
     $email = EmailFactory::getInstance()->buildEmail(APPROVED_PURCHASE_ORDER_EMAIL_FROM, $subject->getEmail(), APPROVED_PURCHASE_ORDER_EMAIL_SUBJECT);
     $email->setTemplate('ApprovedSummitSponsorshipPackagePurchaseOrderEmail');
     $email->populateTemplate(array('RecipientFullName' => $subject->getFullName(), 'PackageName' => $subject->package()->getName(), 'SummitName' => $subject->package()->getSummitName()));
     $email->send();
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  */
 public function send($subject)
 {
     if (is_null($subject)) {
         throw new InvalidArgumentException('subject cant be null');
     }
     $email = EmailFactory::getInstance()->buildEmail(NEW_PURCHASE_ORDER_EMAIL_FROM, NEW_PURCHASE_ORDER_EMAIL_TO, NEW_PURCHASE_ORDER_EMAIL_SUBJECT);
     $email->setTemplate('NewSummitSponsorshipPackagePurchaseOrderEmail');
     $email->populateTemplate(array('RecipientFullName' => $subject->getFullName(), 'PackageName' => $subject->package()->getName(), 'SummitName' => $subject->package()->getSummitName(), 'OrgName' => $subject->getOrganization(), 'Created' => $subject->getCreatedDate()));
     $email->send();
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!$subject instanceof Member) {
         return;
     }
     $sender = Member::currentUser();
     $to = $subject->getEmail();
     $from = defined('SURVEY_THANK_U_FROM_EMAIL') ? SURVEY_THANK_U_FROM_EMAIL : Config::inst()->get('Email', 'admin_email');
     $email = EmailFactory::getInstance()->buildEmail($from, $to);
     $email->setUserTemplate('survey-builder-new-team-member')->populateTemplate(array('Sender' => $sender, 'Member' => $subject, 'Link' => Director::absoluteBaseURL() . Director::makeRelative('surveys')))->send();
 }
 /**
  * @param IFoundationMember                                 $foundation_member
  * @param IFoundationMemberRevocationNotification           $notification
  * @param IFoundationMemberRevocationNotificationRepository $notification_repository
  */
 public function send(IFoundationMember $foundation_member, IFoundationMemberRevocationNotification $notification, IFoundationMemberRevocationNotificationRepository $notification_repository)
 {
     $email = EmailFactory::getInstance()->buildEmail(REVOCATION_NOTIFICATION_EMAIL_FROM, $foundation_member->Email, REVOCATION_NOTIFICATION_EMAIL_SUBJECT);
     $email->setTemplate('RevocationNotificationEmail');
     do {
         $hash = $notification->generateHash();
     } while ($notification_repository->existsHash($hash));
     $link = sprintf('%s/revocation-notifications/%s/action', Director::protocolAndHost(), $hash);
     $email->populateTemplate(array('TakeActionLink' => $link, 'EmailFrom' => REVOCATION_NOTIFICATION_EMAIL_FROM, 'ExpirationDate' => $notification->expirationDate()->format('F j')));
     $email->send();
 }
 /**
  * @param $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!$subject instanceof ISummitAttendee) {
         return;
     }
     $email_template = PermamailTemplate::get_by_identifier(SUMMIT_ATTENDEE_CREATED_EMAIL_TEMPLATE);
     if (is_null($email_template)) {
         return;
     }
     $email = EmailFactory::getInstance()->buildEmail(null, $subject->getMember()->getEmail());
     $email->setUserTemplate('summit-attendee-created')->populateTemplate(array('Attendee' => $subject, 'Summit' => Summit::get_active()))->send();
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!$subject instanceof Member) {
         return;
     }
     $email_template = PermamailTemplate::get_by_identifier(MEMBER_REGISTRATION_VERIFIED_EMAIL_TEMPLATE_ID);
     if (is_null($email_template)) {
         return;
     }
     $from = null;
     $email = EmailFactory::getInstance()->buildEmail($from, $subject->Email);
     $email->setUserTemplate(MEMBER_REGISTRATION_VERIFIED_EMAIL_TEMPLATE_ID)->populateTemplate(array('Member' => $subject))->send();
 }
 public function sendDeleteNotification(IDupeMemberDeleteRequest $request)
 {
     $dupe = $request->getDupeAccount();
     $email_to = $dupe->getEmail();
     $email = EmailFactory::getInstance()->buildEmail(DUPE_EMAIL_FROM, $email_to, "You Have Requested to Delete Openstack Duplicated Account");
     $template_data = array('FirstName' => $dupe->getFirstName(), 'LastName' => $dupe->getLastName(), 'DupeAccount' => $email_to);
     $email->setTemplate('DupeMembers_DeleteAccountEmail');
     do {
         $token = $request->generateConfirmationHash();
     } while ($this->delete_request_repository->existsConfirmationToken($token));
     $template_data['ConfirmationLink'] = sprintf('%s/dupes-members/%s/delete', Director::protocolAndHost(), $token);
     $email->populateTemplate($template_data);
     $email->send();
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!$subject instanceof Member) {
         return;
     }
     $email_template = PermamailTemplate::get_by_identifier(MEMBER_REGISTRATION_VERIFICATION_EMAIL_TEMPLATE_ID);
     if (is_null($email_template)) {
         return;
     }
     $from = null;
     $email = EmailFactory::getInstance()->buildEmail($from, $subject->Email);
     $token = $subject->generateEmailVerificationToken();
     $email->setUserTemplate(MEMBER_REGISTRATION_VERIFICATION_EMAIL_TEMPLATE_ID)->populateTemplate(array('Member' => $subject, 'VerificationLink' => sprintf("%smembers/verification/%s", Director::absoluteBaseURL(), $token)))->send();
 }
 /**
  * @param int $speakerID
  * @param array $form_data
  */
 public function sendEmail($speaker_id, $form_data)
 {
     $email_repository = $this->email_repository;
     $speaker_repository = $this->speaker_repository;
     $contact_email_factory = $this->contact_email_factory;
     $this->tx_manager->transaction(function () use($speaker_repository, $email_repository, $contact_email_factory, $speaker_id, $form_data) {
         $speaker = $speaker_repository->getById($speaker_id);
         $contact_email_data = $contact_email_factory->buildSpeakerContactEmail($form_data, $speaker);
         $email = EmailFactory::getInstance()->buildEmail($contact_email_data->OrgEmail, $speaker->Member()->Email, "Openstack Web Contact: " . $contact_email_data->OrgName);
         $email->setTemplate('SpeakerContactEmail');
         $email->populateTemplate(array('EmailData' => $contact_email_data));
         $contact_email_data->EmailSent = $email->send();
         $email_repository->add($contact_email_data);
     });
 }
 /**
  * @param IEntity $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send(IEntity $subject)
 {
     if (!$subject instanceof ISurvey) {
         return;
     }
     $current_step = $subject->currentStep();
     $template = $current_step->template();
     if (!$template instanceof ISurveyThankYouStepTemplate) {
         return;
     }
     $owner = $subject->createdBy();
     $to = $owner->getEmail();
     $from = defined('SURVEY_THANK_U_FROM_EMAIL') ? SURVEY_THANK_U_FROM_EMAIL : Config::inst()->get('Email', 'admin_email');
     $email = EmailFactory::getInstance()->buildEmail($from, $to);
     $email->setUserTemplate('survey-builder-thank-you-step')->populateTemplate(array('Member' => $owner))->send();
 }
 function doLogoPermissions($data, $form)
 {
     $submission = new LogoRightsSubmission();
     $form->saveInto($submission);
     //Giving the submission a page ID establishes the relationship required for it to work in the DOM view in the CMS.
     $submission->LogoRightsPageID = $this->ID;
     $submission->write();
     //Send email alert about submission
     $From = $data['Email'];
     $To = "*****@*****.**";
     $Subject = "New OpenStack Trademark Agreement";
     $email = EmailFactory::getInstance()->buildEmail($From, $To, $Subject);
     $email->setTemplate('Trademark');
     $email->populateTemplate($data);
     $email->send();
     Session::set('LogoSignoffCompleted', true);
     $this->redirect($this->LogoURL);
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Speaker'])) {
         return;
     }
     $speaker = $subject['Speaker'];
     // check if template exists
     $email_template = PermamailTemplate::get_by_identifier('presentation-speaker-creation');
     if (is_null($email_template)) {
         return;
     }
     $from = null;
     $subject = null;
     $email = EmailFactory::getInstance()->buildEmail($from, $speaker->getEmail(), $subject);
     $email->setUserTemplate('presentation-speaker-creation');
     $email->populateTemplate(array('Speaker' => $speaker, 'BioLink' => Director::makeRelative($speaker->BioLink())));
     $email->send();
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Presentation'])) {
         return;
     }
     $presentation = $subject['Presentation'];
     // check if template exists
     $email_template = PermamailTemplate::get_by_identifier('presentation-moderator-notification');
     if (is_null($email_template)) {
         return;
     }
     $from = null;
     $subject = null;
     $email = EmailFactory::getInstance()->buildEmail($from, $presentation->Creator()->Email, $subject);
     $email->setUserTemplate('presentation-moderator-notification');
     $email->populateTemplate(array('Moderator' => $presentation->Moderator(), 'Summit' => $presentation->Summit(), 'Link' => Director::absoluteBaseURL() . Director::makeRelative($presentation->EditLink()), 'PasswordLink' => Director::absoluteBaseURL() . '/lostpassword'));
     $email->send();
 }
 /**
  * @param mixed $subject
  * @throws InvalidArgumentException
  * @return void
  */
 public function send($subject)
 {
     if (!is_array($subject)) {
         return;
     }
     if (!isset($subject['Presentation']) || !isset($subject['Speaker'])) {
         return;
     }
     $presentation = $subject['Presentation'];
     $speaker = $subject['Speaker'];
     // check if template exists
     $email_template = PermamailTemplate::get_by_identifier('presentation-speaker-notification');
     if (is_null($email_template)) {
         return;
     }
     $from = null;
     $subject = null;
     $email = EmailFactory::getInstance()->buildEmail($from, $speaker->getEmail(), $subject);
     $email->setUserTemplate('presentation-speaker-notification');
     $email->populateTemplate(array('RecipientMember' => $speaker->Member(), 'Presentation' => $presentation, 'Speaker' => $speaker, 'Creator' => $presentation->Creator(), 'EditLink' => Director::makeRelative($speaker->EditLink($presentation->ID)), 'ReviewLink' => Director::makeRelative($speaker->ReviewLink($presentation->ID)), 'PasswordLink' => Director::absoluteBaseURL() . '/lostpassword', 'Link' => Director::absoluteBaseURL() . Director::makeRelative($presentation->EditLink())));
     $email->send();
 }