Skip to content
World Wide Web Server edited this page Jul 4, 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.

[h2]RESOURCES:[/h2]

=> [url=http://www.codeigniter.com/forums/viewthread/3049/]FORUM[/url]

=> official [url=http://www.swiftmailer.org/]SWIFT MAILER WEBSITE[/url]

=> [url=http://www.4webby.com/freakauth/]4webby.com[/url] for tutorials

[h2]CREDITS:[/h2] [b]Author: Daniel Vecchiato (danfreak) website: [url=http://www.4webby.com/freakauth/tutorials/ci-swift-mailer/]http://www.4webby.com[/url] The original Swift Mailer package has been released by Chris Corbyn [url=http://www.swiftmailer.org/]http://www.swiftmailer.org/[/url][/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 [url=http://www.swiftmailer.org/]SWIFT MAILER website[/url] (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 [b]my_classes[/b] in your [b]system/application[/b] directory [/h3]

[h3] 4) copy the files [b]INSIDE[/b] the folder [b]Swift-X.0.X-phpX/lib/[/b] in your [b]system/application/my_classes/ [/b]directory [/h3]

[h3] 5) enable hooks in your [b]application/config/config.php[/b] file [/h3] [code]

/*
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; [/code]

[h3] 6) add the following lines in [b]application/config/hooks.php[/b] [/h3] [code] $hook['pre_controller'][] = array( 'class' => 'MyClasses', 'function' => 'index', 'filename' => 'MyClasses.php', 'filepath' => 'hooks' ); [/code]

[h3] 7) in your [b]system/application/hooks/[/b] create a new file called [b]MyClasses.php[/b] with the following inside [/h3]

[code] <?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/'); } }

?> [/code]

[h3] 8) build a controller to test that every works fine ([url=http://www.swiftmailer.org/wikidocs/v3/basic]example taken here[/url]) [/h3]

[code] <?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, "[email protected]", "[email protected]")) echo "Sent";
    else echo "Failed";
}

}

?> [/code]

[h3] 9) now build other controllers/methods to suit your needs. Check out the [url=http://www.swiftmailer.org/wikidocs/]SWIFT MAILER DOCUMENTATION[/url] [/h3]

[b]IMPORTANT NOTICE: [/b] use the examples in the documentation, but change [code] //Load in the files we'll need require_once "lib/Swift.php"; require_once "lib/Swift/Connection/SMTP.php"; [/code]

to

[code] //Load in the files we'll need require_once "Swift.php"; require_once "Swift/Connection/SMTP.php"; [/code]

[h3] 10) HAPPY CODING! [/h3]

Category:Libraries::Email

Clone this wiki locally