Well I wanted to call this library/plugin Freak_Swift_Mailer, but then… somebody killed my creativity…
Anyway, this is my solution for using SWIFT MAILER library with CI.
RESOURCES:
=> FORUM
=> official SWIFT MAILER WEBSITE
=> 4webby.com for tutorials
CREDITS:
Author: Daniel Vecchiato (danfreak)
website: http://www.4webby.com
The original Swift Mailer package has been released by Chris Corbyn http://www.swiftmailer.org/
#
* @license GNU Lesser General Public License
#
*/
REQUIREMENTS:
- CodeIgniter 1.5.1/1.5.2
INSTALLATION:
1) download SWIFT MAILER from SWIFT MAILER website (choose PHP4 or PHP5 version according to your needs)
2) unzip Swift-X.0.X-phpX.zip in a local folder
3) create a folder called my_classes in your system/application directory
4) copy the files INSIDE the folder Swift-X.0.X-phpX/lib/ in your system/application/my_classes/ directory
5) enable hooks in your application/config/config.php file
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the "hooks" feature you must enable it by
| setting this variable to TRUE (boolean). See the user guide for details.
|
*/
$config['enable_hooks'] = TRUE;
6) add the following lines in application/config/hooks.php
$hook['pre_controller'][] = array(
'class' => 'MyClasses',
'function' => 'index',
'filename' => 'MyClasses.php',
'filepath' => 'hooks'
);
7) in your system/application/hooks/ create a new file called MyClasses.php with the following inside
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Myclasses
{
/**
* includes the directory application\my_classes\ in your includes directory
*
*/
function index()
{
//includes the directory application\my_classes\
//for PHP/APACHE on windows platforms change the ':' before BASEPATH to ';'
ini_set('include_path', ini_get('include_path').':'.BASEPATH.'application/my_classes/');
}
}
?>
8) build a controller to test that every works fine (example taken here)
<?php
class Mail extends Controller
{
function Mail()
{
parent::Controller();
}
function index()
{
//Load in the files we'll need
require_once "Swift.php";
require_once "Swift/Connection/SMTP.php";
//Start Swift
$swift =& new Swift(new Swift_Connection_SMTP("your.smtp.com"));
//Create the message
$message =& new Swift_Message("My subject", "My body");
//Now check if Swift actually sends it
if ($swift->send($message, "recipient@email.com", "sender@email.com")) echo "Sent";
else echo "Failed";
}
}
?>
9) now build other controllers/methods to suit your needs. Check out the SWIFT MAILER DOCUMENTATION
IMPORTANT NOTICE:
use the examples in the documentation, but change
//Load in the files we'll need
require_once "lib/Swift.php";
require_once "lib/Swift/Connection/SMTP.php";
to
//Load in the files we'll need
require_once "Swift.php";
require_once "Swift/Connection/SMTP.php";
