PHP code example of taitava / silverstripe-emailqueue
1. Go to this page and download the library: Download taitava/silverstripe-emailqueue library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
taitava / silverstripe-emailqueue example snippets
class MyEmailMessage extends EmailTemplate
{
protected $is_internal_message = false; // Set this to true if you want to automatically set the 'To' address to a preconfigured admin receiver address.
protected function init()
{
$this->setSubject('My subject');
}
}
$email = new MyEmailMessage;
$recipient_member = Member::currentUser();
$email->setRenderingVariables([
'YourName' => $recipient_member->getName(),
]);
$email->setTo($recipient_member); // Note that now we can use a Member object as the recipient. See below for more info. Normal email addresses are accepted too!
$email->send();
class MyEmailMessage extends EmailTemplate
{
/*
* @return DateTime|null
*/
protected function getSendingSchedule()
{
$datetime = new DateTime;
$datetime->modify('+3 hours'); // Send after three hours
return $datetime;
// Or send immediately:
// return null;
}
}
// Some data that will be used in the email message body
$some_data_object_id = 123;
$some_other_variable = 'ABC';
// Create a unique "key" that can be used to identify our message
$recipient_member = Member::currentUser();
$unique_string = $recipient_member->ID.'-'.$some_data_object_id.'-'.$some_other_variable;
// Have we already sent a message with the same key?
if (EmailQueue::CheckUniqueString(MyEmailMessage::class, $unique_string))
{
// Already sent!!!
}
else
{
// Not sent yet, so let's send it!
$email = new MyEmailMessage;
$email->setTo($recipient_member);
$email->setRenderingVariables([
'some_data_object_id' => $some_data_object_id,
'some_other_variable' => $some_other_variable,
]);
/** @var EmailQueue $email_queue_record */
$email_queue_record = $email->send();
// Remember to write the key to the database!
$email_queue_record->UniqueString = $unique_string;
$email_queue_record->write();
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.