1. Go to this page and download the library: Download arckinteractive/mailgun 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/ */
arckinteractive / mailgun example snippets
elgg_trigger_event('publish', 'object', $blog);
// After subscription notifications are dispatched,
// mailgun token can be accessed via metadata
// as "mg:<action>:<entity_type>:<entity_subtype>"
$mailgun_token = $blog->{"mg:publish:object:blog"};
// or
$mailgun_token = mailgun_get_entity_notification_token($blog, 'publish:object:blog');
function send_new_topic_notification($topic) {
// Notification options
$options = array(
'subject" => $topic->title,
'body" => $topic->description
);
// Get the topic subscribers
$subscribers = $topic->getSubscribers();
// Get the site email address
$site_email = elgg_get_site_entity()->email;
// Add a token to the site email
$token = ArckInteractive\Mailgun\Message::addToken($site_email);
// Store the token on the topic so we can recognize replies
$topic->reply_token = $token['token'];
// Set the From address
$options['from'] = $token['email'];
// In production run this method in a batch and use Vroom
foreach ($subscribers as $user) {
$options['to'] = $user->email;
mailgun_send_email($options);
}
}
// Register for the receive message event
elgg_register_event_handler('receive', 'mg_message', 'handle_topic_replies');
function handle_topic_replies($event, $type, $message) {
// Get the token from the recipient email
$token = $message->getRecipientToken();
// Query to see if this token belongs to this forum plugin.
$results = elgg_get_entities_from_metadata(array(
'type' => 'object',
'subtype' => 'forum_topic',
'limit' => 1,
'metadata_name_value_pairs' => array(
'name' => 'reply_token',
'value' => $token,
'operator' => '='
)
));
// If this is not our token just return
if (empty($results)) {
return;
}
// Set the topic
$topic = $results[0];
// Get the Elgg user from the sender
$user = get_user_by_email($message->getSender());
// We verify the sending user by the senders email address.
if (empty($user)) {
return;
}
$topic->annotate(
'topic_reply',
$message->getStrippedText(),
$topic->access_id,
$user[0]->guid
);
// Stop event propagation
return false;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.