mirror of
https://github.com/Ekokumppanit/ystavakylaecard.git
synced 2026-01-26 03:04:00 +00:00
234 lines
6.0 KiB
PHP
234 lines
6.0 KiB
PHP
<?php
|
|
/**
|
|
* MailDeliverySystem Library
|
|
*
|
|
* @category Libraries
|
|
* @package Ecard
|
|
* @author Ismo Vuorinen <ismo@ivuorinen.net>
|
|
* @license http://choosealicense.com/licenses/agpl/ Affero GPL
|
|
* @link http://ystavakyla.fi
|
|
*/
|
|
|
|
if (! defined('BASEPATH')) {
|
|
exit('No direct script access allowed');
|
|
}
|
|
|
|
/**
|
|
* We need Mandrill API Package to deliver email
|
|
*/
|
|
try {
|
|
include_once APPPATH.'/third_party/Mandrill.php';
|
|
} catch (Exception $e) {
|
|
log_message(
|
|
'error',
|
|
'MailDeliverySystem_Mandrill error: ' . $e->getMessage()
|
|
);
|
|
}
|
|
|
|
|
|
/**
|
|
* MailDeliverySystem library
|
|
*
|
|
* @category Libraries
|
|
* @package Ecard
|
|
* @author Ismo Vuorinen <ismo@ivuorinen.net>
|
|
* @license http://choosealicense.com/licenses/agpl/ Affero GPL
|
|
* @link http://ystavakyla.fi
|
|
* @uses Mandrill Mandrill API Package
|
|
*/
|
|
class MailDeliverySystem
|
|
{
|
|
/**
|
|
* private codeigniter instance
|
|
*
|
|
* @var object
|
|
*/
|
|
private $_ci;
|
|
|
|
/**
|
|
* @var $_receivers Mail receiver list, expects array with email and name
|
|
*/
|
|
private $_receivers = array();
|
|
|
|
/**
|
|
* @var $_headers Mail Header details
|
|
*/
|
|
private $_headers = array();
|
|
|
|
public $sender_name = 'Ystäväkylä';
|
|
public $sender_email = 'noreply@ystavakyla.fi';
|
|
public $bcc_address = 'testaus@ivuorinen.net';
|
|
|
|
/**
|
|
* CONTENT VARIABLES
|
|
*/
|
|
public $subject;
|
|
public $content;
|
|
|
|
/**
|
|
* META VARIABLES
|
|
*/
|
|
|
|
/**
|
|
* $tags Contains tracking tags for mandrillapp.com
|
|
* @var array
|
|
*/
|
|
public $tags = array();
|
|
|
|
/**
|
|
* __construct initializes the library
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->_ci =& get_instance();
|
|
log_message('debug', 'MailDeliverySystem: Loaded');
|
|
|
|
/**
|
|
* Set default reply-to address
|
|
* @var array
|
|
*/
|
|
$this->_headers = array(
|
|
'Reply-To' => $this->sender_email
|
|
);
|
|
|
|
/**
|
|
* Set default email receiver
|
|
* @var array
|
|
*/
|
|
$this->_receivers = array(
|
|
array(
|
|
'email' => 'testaus@ivuorinen.net',
|
|
'name' => 'Ismo Vuorinen'
|
|
)
|
|
);
|
|
|
|
$this->tags = array(
|
|
'ystavakyla'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* sendMail
|
|
* Everything needed to send email to receivers
|
|
*
|
|
* @param array $receivers Receivers array
|
|
* @param string $content Email HTML Content
|
|
* @param string $subject Email subject line
|
|
* @param string $sender_name Email sender name
|
|
* @param string $sender_email Email sender email, doubles as reply to
|
|
* @param array $headers Email headers, sets $this->_headers
|
|
* @param array $tags Email tags for easier searching
|
|
*
|
|
* @return [type] [description]
|
|
*/
|
|
public function sendMail(
|
|
$receivers = null,
|
|
$content = null,
|
|
$subject = null,
|
|
$sender_name = null,
|
|
$sender_email = null,
|
|
$headers = null,
|
|
$tags = null
|
|
) {
|
|
|
|
$this->sender_name = $sender_name;
|
|
$this->sender_email = $sender_email;
|
|
|
|
$this->subject = $subject;
|
|
$this->content = $content;
|
|
|
|
$this->_receivers = $receivers;
|
|
$this->_headers = $headers;
|
|
|
|
if (! empty($tags)) {
|
|
$this->tags = $tags;
|
|
}
|
|
|
|
/**
|
|
* Set up development mail address
|
|
*/
|
|
if (ENVIRONMENT == 'development') {
|
|
$this->sender_name = "Ystäväkylä Dev";
|
|
$this->sender_email = "testaus@ivuorinen.net";
|
|
|
|
$this->_headers = array(
|
|
'Reply-To' => $this->sender_email
|
|
);
|
|
}
|
|
|
|
|
|
/**
|
|
* Try to send the email
|
|
*/
|
|
try {
|
|
$mandrill = new Mandrill(MAILCHIMP_API_KEY);
|
|
$message = $this->buildMessage();
|
|
|
|
$async = false;
|
|
$ip_pool = 'Main Pool';
|
|
$send_at = null;
|
|
|
|
$result = $mandrill->messages->send(
|
|
$message,
|
|
$async,
|
|
$ip_pool,
|
|
$send_at
|
|
);
|
|
|
|
log_message('debug', serialize($result));
|
|
|
|
} catch(Mandrill_Error $e) {
|
|
// Mandrill errors are thrown as exceptions
|
|
$msg = 'A mandrill error occurred: '
|
|
. get_class($e)
|
|
. ' - '
|
|
. $e->getMessage();
|
|
// A mandrill error occurred:
|
|
// Mandrill_Unknown_Subaccount -
|
|
// No subaccount exists with the id 'customer-123'
|
|
log_message('error', $msg);
|
|
// throw $e;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* buildMessage
|
|
* Return message variables for sendMail() method
|
|
*
|
|
* @return array Message variables for sendMail();
|
|
*/
|
|
public function buildMessage()
|
|
{
|
|
$tracking_domain = "ystavakyla.fi";
|
|
|
|
$message = array(
|
|
'html' => $this->content, // ci view
|
|
'subject' => $this->subject,
|
|
'from_email' => $this->sender_email,
|
|
'from_name' => $this->sender_name,
|
|
'to' => $this->_receivers,
|
|
'headers' => $this->_headers,
|
|
'important' => false,
|
|
'track_opens' => true,
|
|
'track_clicks' => true,
|
|
'auto_text' => true,
|
|
'auto_html' => null,
|
|
'inline_css' => null,
|
|
'url_strip_qs' => null,
|
|
'preserve_recipients' => null,
|
|
'view_content_link' => null,
|
|
'bcc_address' => $this->sender_email,
|
|
'tracking_domain' => $tracking_domain,
|
|
'signing_domain' => $tracking_domain,
|
|
'return_path_domain' => $tracking_domain,
|
|
'merge' => false,
|
|
'global_merge_vars' => null,
|
|
'tags' => $this->tags,
|
|
'subaccount' => null
|
|
);
|
|
|
|
return $message;
|
|
}
|
|
|
|
} |