Skip to content
Derek Jones edited this page Jul 5, 2012 · 32 revisions

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:

[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]

  1. 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]

Category:Libraries::E-mail

Category:Contributions::Libraries::E-Mail

Clone this wiki locally