-
Notifications
You must be signed in to change notification settings - Fork 7.6k
CI SWIFT MAILER
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.
=> FORUM
=> official SWIFT MAILER WEBSITE
=> 4webby.com for tutorials
[b]Author: Daniel Vecchiato (danfreak) website: http://www.4webby.com The original Swift Mailer package has been released by Chris Corbyn http://www.swiftmailer.org/[/b]
- @license GNU Lesser General Public License
*/
[h2] REQUIREMENTS: [/h2]
- CodeIgniter 1.5.1/1.5.2
[h2]
INSTALLATION:
[/h2]
[h3]
- download SWIFT MAILER from SWIFT MAILER website (choose PHP4 or PHP5 version according to your needs) [/h3]
[h3] 2) unzip Swift-X.0.X-phpX.zip in a local folder [/h3]
[h3] 3) create a folder called my_classes in your system/application directory [/h3]
[h3] 4) copy the files INSIDE the folder Swift-X.0.X-phpX/lib/ in your **system/application/my_classes/ **directory [/h3]
[h3] 5) enable hooks in your application/config/config.php file [/h3]
/*
|--------------------------------------------------------------------------
| 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;
[h3] 6) add the following lines in application/config/hooks.php [/h3]
$hook['pre_controller'][] = array(
'class' => 'MyClasses',
'function' => 'index',
'filename' => 'MyClasses.php',
'filepath' => 'hooks'
);
[h3] 7) in your system/application/hooks/ create a new file called MyClasses.php with the following inside [/h3]
<?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/');
}
}
?>
[h3] 8) build a controller to test that every works fine (example taken here) [/h3]
<?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";
}
}
?>
[h3] 9) now build other controllers/methods to suit your needs. Check out the SWIFT MAILER DOCUMENTATION [/h3]
**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";
[h3] 10) HAPPY CODING! [/h3]