Esempio n. 1
0
 /**
  * @param $data
  * @return bool
  * Send email with data user input
  */
 public function sendMail($data)
 {
     $from = $data['Email'];
     $to = self::$email;
     $subject = $data['Subject'];
     $body = "Name: {$data['Name']}\r\nPhone Number: {$data['Phone']}\r\nMessage: {$data['Message']}";
     $email = new Email($from, $to, $subject, $body);
     return $email->sendPlain();
 }
 /**
  * If emailLogFileTo and logFilePathName is set then email the logFilePathName content if not empty
  */
 public function __destruct()
 {
     if ($this->emailLogFileTo && $this->logFilePathName) {
         if ($body = file_get_contents($this->logFilePathName)) {
             $email = new \Email($this->config()->get('send_emails_from'), $this->emailLogFileTo, 'Debug log from: ' . \Director::protocolAndHost(), $body);
             $email->sendPlain();
         }
     }
 }
 public function onSubmit(array $data, FlexiForm $form, SS_HTTPRequest $request, DataObject $flexi)
 {
     if (parent::onSubmit($data, $form, $request, $flexi)) {
         // extraplate emails and send notifications
         $emails = $flexi->FlexiFormSetting('NotificationEmails')->getValue();
         if (!empty($emails)) {
             //$from = $flexi->FlexiFormSetting('NotificationFromAddress')->getValue() ?: null;
             $email = new Email(null, $emails, 'Submission from form: ' . $flexi->FlexiFormID(), $this->getEmailBody());
             $email->sendPlain();
         }
         return true;
     }
     return false;
 }
 /**
  * Internal function designed to allow us to send a verification
  * email from multiple locations
  *
  * @param $member Member object to send email to
  * @return boolean
  */
 protected function send_verification_email(Member $member)
 {
     if ($member) {
         $subject = _t("Users.PleaseVerify", "Please verify your account");
         if (Users::config()->send_email_from) {
             $from = Users::config()->send_email_from;
         } else {
             $from = Email::config()->admin_email;
         }
         $body = $this->renderWith('UsersAccountVerification', array("Link" => Controller::join_links(Director::absoluteBaseURL(), $this->config()->url_segment, "verify", $member->ID, $member->VerificationCode)));
         $email = new Email($from, $member->Email, $subject, $body);
         $email->sendPlain();
         return true;
     }
     return false;
 }
 /**
  *
  * @param Null|String $messageID - ID for the message, you can leave this blank
  * @param Order $order - the order to which the email relates
  * @param Boolean $resend - should the email be resent even if it has been sent already?
  * @return Boolean - TRUE for success and FALSE for failure.
  */
 public function send($messageID = null, $order, $resend = false)
 {
     if (!$this->subject) {
         $this->subject = self::get_subject();
     }
     $this->subject = str_replace("[OrderNumber]", $order->ID, $this->subject);
     if (!$this->hasBeenSent($order) || $resend) {
         if (EcommerceConfig::get("Order_Email", "copy_to_admin_for_all_emails") && $this->to != Email::getAdminEmail()) {
             $this->setBcc(Email::getAdminEmail());
         }
         if (EcommerceConfig::get("Order_Email", "send_all_emails_plain")) {
             $result = parent::sendPlain($messageID);
         } else {
             $result = parent::send($messageID);
         }
         $this->createRecord($result, $order);
         return $result;
     }
 }
 public function testSendPlain()
 {
     // Set custom $project - used in email headers
     global $project;
     $oldProject = $project;
     $project = 'emailtest';
     Email::set_mailer(new EmailTest_Mailer());
     $email = new Email('*****@*****.**', '*****@*****.**', 'Test send plain', 'Testing Email->sendPlain()', null, '*****@*****.**', '*****@*****.**');
     $email->attachFile(__DIR__ . '/fixtures/attachment.txt', null, 'text/plain');
     $email->addCustomHeader('foo', 'bar');
     $sent = $email->sendPlain(123);
     // Restore old project name after sending
     $project = $oldProject;
     $this->assertEquals('*****@*****.**', $sent['to']);
     $this->assertEquals('*****@*****.**', $sent['from']);
     $this->assertEquals('Test send plain', $sent['subject']);
     $this->assertEquals('Testing Email->sendPlain()', $sent['content']);
     $this->assertEquals(array(0 => array('contents' => 'Hello, I\'m a text document.', 'filename' => 'attachment.txt', 'mimetype' => 'text/plain')), $sent['files']);
     $this->assertEquals(array('foo' => 'bar', 'X-SilverStripeMessageID' => 'emailtest.123', 'X-SilverStripeSite' => 'emailtest', 'Cc' => '*****@*****.**', 'Bcc' => '*****@*****.**'), $sent['customheaders']);
 }
Esempio n. 7
0
 public function Send($data, Form $form)
 {
     Session::set('ContactData', $data);
     $from = $data['Email'];
     $to = $this->SendEmail;
     $subject = $data['Subject'] . ' - through beardpapa.co.nz contact form';
     $body = $data['Message'];
     $email = new Email($from, $to, $subject, $body);
     $flag = $email->sendPlain();
     if ($flag) {
         $result['Message'] = 'You submission is successful, thank you.';
         $result['Type'] = 'good';
         Session::clear('ContactData');
     } else {
         $result['Message'] = 'Sorry your submission is unsuccessful, please try again or call our branch phone number.';
         $result['Type'] = 'bad';
     }
     $result['Title'] = 'Contact Us';
     $result['BackURL'] = '/contact-us';
     return $this->customise($result)->renderWith(array('ResultPage', 'Page'));
 }
 function index($request)
 {
     if (!Permission::check("ADMIN")) {
         return Security::permissionFailure($this);
     }
     $email = $request->requestVar($name = "email");
     if ($email && Email::validEmailAddress($email)) {
         $number = rand(0, 10000);
         $from = Email::getAdminEmail();
         $to = $email;
         $subject = "test mail ID" . $number;
         $body = "test mail ID" . $number;
         $htmlBody = "<h1>test mail ID" . $number . '</h1>';
         $basicMailOk = @mail($email, $subject, $body);
         if ($basicMailOk) {
             DB::alteration_message("basic mail (using the PHP mail function)  has been sent with ID: " . $number, "created");
         } else {
             DB::alteration_message("basic mail (using the PHP mail function) has * NOT * been sent with ID:" . $number, "deleted");
         }
         $e = new Email($from, $to, $subject, $body);
         if ($e->send()) {
             DB::alteration_message("standard Silverstripe email has been sent with ID: " . $number, "created");
         } else {
             DB::alteration_message("standard Silverstripe email ***NOT*** has been sent with ID: " . $number, "deleted");
         }
         //OR
         $e = new Email($from, $to, $subject, $body);
         if ($e->sendPlain()) {
             DB::alteration_message("plain text Silverstripe  email has been sent with ID: " . $number, "created");
         } else {
             DB::alteration_message("plain text Silverstripe email has ***NOT*** been sent with ID: " . $number, "deleted");
         }
     } else {
         user_error("make sure to add a valid email - current one is '" . $email . "' (you can add the email like this: " . $request->getURL() . "?email=myemail@test.com", E_USER_WARNING);
     }
 }
Esempio n. 9
0
 public function Send($data, Form $form)
 {
     Session::set('FranchiseData', $data);
     $from = $data['Email'];
     $to = $this->SendEmail;
     $subject = 'Franchise Information';
     $body = "First Name: " . $data['FirstName'] . "\r\n" . "Last Name: " . $data['LastName'] . "\r\n" . "Email: " . $data['Email'] . "\r\n" . "Contact: " . $data['Contact'] . "\r\n" . "Best Calling Time: " . $data['CallingTime'] . "\r\n" . "Liquid Capital: " . $data['LiquidCapital'] . "\r\n" . "Time Frame to Start: " . $data['TimeStart'] . "\r\n" . "In what area are you looking to invest in a franchise?: \r\n" . $data['Area'] . "\r\n" . "Business & Relevant Experience: \r\n" . $data['Experience'] . "\r\n" . "How did you hear about the Beard Papa’s franchise: \r\n" . $data['Hear'] . "\r\n";
     if (array_key_exists('Message', $data)) {
         $body .= "Message: " . $data['Message'] . "\r\n";
     }
     $email = new Email($from, $to, $subject, $body);
     $flag = $email->sendPlain();
     if ($flag) {
         $result['Message'] = 'You submission is successful, thank you.';
         $result['Type'] = 'good';
         Session::clear('FranchiseData');
     } else {
         $result['Message'] = 'Sorry your submission is unsuccessful, please try again or contact us.';
         $result['Type'] = 'bad';
     }
     $result['Title'] = 'Franchising';
     $result['BackURL'] = '/franchise';
     return $this->customise($result)->renderWith(array('ResultPage', 'Page'));
 }
 /**
  * Send an email to a single recipient
  *
  * @param PipelineStep $source Client step
  * @param string $from
  * @param string $to
  * @param string $subject
  * @param string $body
  */
 protected function sendViaEmail($source, $from, $to, $subject, $body)
 {
     $email = new Email($from, $to, $subject, $body);
     if ($source->getDryRun()) {
         $source->log("[Skipped] Sent message to {$to} (subject: {$subject})");
     } else {
         $email->sendPlain();
         $source->log("Sent message to {$to} (subject: {$subject})");
     }
 }
 /**
  * Sends the a plain or HTML version of the email
  * @param  int  $messageID 
  * @param  boolean $plain     	 
  */
 protected function doSend($messageID = null, $plain = false)
 {
     if (!$this->Subject() && $this->getUserTemplate()) {
         $this->setSubject($this->getUserTemplate()->Subject);
     }
     $from = $this->From();
     $config = Config::inst()->forClass('Email');
     if (!$from) {
         if ($this->getUserTemplate()) {
             $from = $this->getUserTemplate()->From;
         }
         if (!$from) {
             $from = $config->send_all_emails_from ?: $config->admin_email;
         }
         $this->setFrom($from);
     }
     // Check if a list of Member objects has been given
     if ($this->members) {
         foreach ($this->members as $m) {
             $this->setTo($m->Email);
             $this->populateTemplate(array('RecipientMember' => $m));
         }
     }
     if ($this->config()->test_mode) {
         $this->parseVariables($plain);
     } else {
         if ($plain) {
             parent::sendPlain($messageID);
         } else {
             parent::send($messageID);
         }
     }
     $this->persist();
 }
 /**
  *
  * @param Null|String $messageID - ID for the message, you can leave this blank
  * @param Boolean $returnBodyOnly - rather than sending the email, only return the HTML BODY
  * @return Boolean - TRUE for success and FALSE for failure.
  */
 public function send($messageID = null, $returnBodyOnly = false)
 {
     if (!$this->order) {
         user_error("Must set the order (Order_Email::setOrder()) before the message is sent (Order_Email::send()).", E_USER_NOTICE);
     }
     if (!$this->subject) {
         $this->subject = self::get_subject();
     }
     $this->subject = str_replace("[OrderNumber]", $this->order->ID, $this->subject);
     if (!$this->hasBeenSent() || $this->resend) {
         if (EcommerceConfig::get("Order_Email", "copy_to_admin_for_all_emails") && $this->to != Order_Email::get_from_email()) {
             $this->setBcc(Order_Email::get_from_email());
         }
         //last chance to adjust
         $this->extend("adjustOrderEmailSending", $this, $order);
         if ($returnBodyOnly) {
             return $this->Body();
         }
         if (EcommerceConfig::get("Order_Email", "send_all_emails_plain")) {
             $result = parent::sendPlain($messageID);
         } else {
             $result = parent::send($messageID);
         }
         $this->createRecord($result);
         return $result;
     }
 }
 /**
  * API Callback after this object is written to the DB
  *
  */
 public function onAfterWrite()
 {
     parent::onAfterWrite();
     // Check if an order number has been generated, if not, add it and save again
     if (!$this->OrderNumber) {
         $this->OrderNumber = $this->generate_order_number();
         $this->write();
     }
     // Deal with sending the status email
     if ($this->isChanged('Status') && in_array($this->Status, array('failed', 'paid', 'processing', 'dispatched'))) {
         $siteconfig = SiteConfig::current_site_config();
         $from = $siteconfig->EmailFromAddress;
         $vars = array('Order' => $this, 'SiteConfig' => $siteconfig);
         // Deal with customer email
         if ($siteconfig->sendCommerceEmail('Customer', $this->Status)) {
             // if subsites installed, then get the native language for that site
             $current_i18n = i18n::get_locale();
             if ($this->SubsiteID && class_exists('Subsite') && $this->Subsite()) {
                 i18n::set_locale($this->Subsite()->Language);
             }
             $subject = _t('CommerceEmail.Order', 'Order') . " {$this->OrderNumber} {$this->getTranslatedStatus()}";
             $body = $this->renderWith('OrderEmail_Customer', $vars);
             $email = new Email($from, $this->Email, $subject, $body);
             $email->sendPlain();
             // If subsites enabled, set the language back
             if ($this->SubsiteID && class_exists('Subsite') && $this->Subsite()) {
                 i18n::set_locale($current_i18n);
             }
         }
         // Deal with vendor email
         if ($siteconfig->sendCommerceEmail('Vendor', $this->Status)) {
             $subject = _t('CommerceEmail.Order', 'Order') . " {$this->OrderNumber} {$this->getTranslatedStatus()}";
             switch ($this->Status) {
                 case 'paid':
                     $email_to = $siteconfig->PaidEmailAddress;
                 case 'processing':
                     $email_to = $siteconfig->ProcessingEmailAddress;
                 case 'dispatched':
                     $email_to = $siteconfig->DispatchedEmailAddress;
             }
             if (isset($email_to)) {
                 $body = $this->renderWith('OrderEmail_Vendor', $vars);
                 $email = new Email($from, $email_to, $subject, $body);
                 $email->sendPlain();
             }
         }
     }
 }
 function doSendFriend($data, $form)
 {
     $copyself = false;
     $the_url = $data['sendurl'];
     $yourname = trim($data['YourName']);
     $youremail = trim($data['YourEmail']);
     $toname = trim($data['ToName']);
     $toemail = trim($data['ToEmail']);
     $remarks = trim($data['Remarks']);
     if (isset($data['CopySelf'])) {
         $copyself = $data['CopySelf'];
     }
     // do a check on the sent url and email addresses
     $this->checkSentUrl($the_url);
     $this->spamCheck($toemail);
     $this->spamCheck($youremail);
     $from = $yourname . '<' . $youremail . '>';
     $to = $toname . '<' . $toemail . '>';
     $subject = _t('SendFriend.SUBJECT', 'Interesting article on ') . SiteConfig::current_site_config()->getTitle();
     $body = '';
     $body .= _t('SendFriend.DEAR', 'Dear ') . $toname . ",\n\n";
     $body .= $yourname . _t('SendFriend.TEXT', ' would like to let you know about the following page: ') . "\n\n";
     $body .= $the_url . "\n\n";
     if (trim($remarks) != '') {
         $body .= _t('SendFriend.MESSAGEFROM', 'Message from ') . $yourname . ":\n " . $remarks . "\n\n";
     }
     $email = new Email($from, $to, $subject, $body);
     $email->sendPlain();
     if ($copyself) {
         $body = _t('SendFriend.COPYOFMESSAGE', '--- copy of message to ') . $toname . " ---\n\n" . $body;
         $email = new Email($from, $from, $subject, $body);
         $email->sendPlain();
     }
     return $this->customise($data)->renderWith(array('SendFriendController_sent', 'SendFriendController'));
 }