136 lines
5.5 KiB
ReStructuredText
136 lines
5.5 KiB
ReStructuredText
Introduction
|
|
============
|
|
|
|
Swift Mailer is a component-based library for sending e-mails from PHP
|
|
applications.
|
|
|
|
Organization of this Book
|
|
-------------------------
|
|
|
|
This book has been written so that those who need information quickly are able
|
|
to find what they need, and those who wish to learn more advanced topics can
|
|
read deeper into each chapter.
|
|
|
|
The book begins with an overview of Swift Mailer, discussing what's included
|
|
in the package and preparing you for the remainder of the book.
|
|
|
|
It is possible to read this user guide just like any other book (from
|
|
beginning to end). Each chapter begins with a discussion of the contents it
|
|
contains, followed by a short code sample designed to give you a head start.
|
|
As you get further into a chapter you will learn more about Swift Mailer's
|
|
capabilities, but often you will be able to head directly to the topic you
|
|
wish to learn about.
|
|
|
|
Throughout this book you will be presented with code samples, which most
|
|
people should find ample to implement Swift Mailer appropriately in their own
|
|
projects. We will also use diagrams where appropriate, and where we believe
|
|
readers may find it helpful we will discuss some related theory, including
|
|
reference to certain documents you are able to find online.
|
|
|
|
Code Samples
|
|
------------
|
|
|
|
Code samples presented in this book will be displayed on a different colored
|
|
background in a monospaced font. Samples are not to be taken as copy & paste
|
|
code snippets.
|
|
|
|
Code examples are used through the book to clarify what is written in text.
|
|
They will sometimes be usable as-is, but they should always be taken as
|
|
outline/pseudo code only.
|
|
|
|
A code sample will look like this::
|
|
|
|
class AClass
|
|
{
|
|
...
|
|
}
|
|
|
|
// A Comment
|
|
$obj = new AClass($arg1, $arg2, ... );
|
|
|
|
/* A note about another way of doing something
|
|
$obj = AClass::newInstance($arg1, $arg2, ... );
|
|
|
|
*/
|
|
|
|
The presence of 3 dots ``...`` in a code sample indicates that we have left
|
|
out a chunk of the code for brevity, they are not actually part of the code.
|
|
|
|
We will often place multi-line comments ``/* ... */`` in the code so that we
|
|
can show alternative ways of achieving the same result.
|
|
|
|
You should read the code examples given and try to understand them. They are
|
|
kept concise so that you are not overwhelmed with information.
|
|
|
|
History of Swift Mailer
|
|
-----------------------
|
|
|
|
Swift Mailer began back in 2005 as a one-class project for sending mail over
|
|
SMTP. It has since grown into the flexible component-based library that is in
|
|
development today.
|
|
|
|
Chris Corbyn first posted Swift Mailer on a web forum asking for comments from
|
|
other developers. It was never intended as a fully supported open source
|
|
project, but members of the forum began to adopt it and make use of it.
|
|
|
|
Very quickly feature requests were coming for the ability to add attachments
|
|
and use SMTP authentication, along with a number of other "obvious" missing
|
|
features. Considering the only alternative was PHPMailer it seemed like a good
|
|
time to bring some fresh tools to the table. Chris began working towards a
|
|
more component based, PHP5-like approach unlike the existing single-class,
|
|
legacy PHP4 approach taken by PHPMailer.
|
|
|
|
Members of the forum offered a lot of advice and critique on the code as he
|
|
worked through this project and released versions 2 and 3 of the library in
|
|
2005 and 2006, which by then had been broken down into smaller classes
|
|
offering more flexibility and supporting plugins. To this day the Swift Mailer
|
|
team still receive a lot of feature requests from users both on the forum and
|
|
in by email.
|
|
|
|
Until 2008 Chris was the sole developer of Swift Mailer, but entering 2009 he
|
|
gained the support of two experienced developers well-known to him: Paul
|
|
Annesley and Christopher Thompson. This has been an extremely welcome change.
|
|
|
|
As of September 2009, Chris handed over the maintenance of Swift Mailer to
|
|
Fabien Potencier.
|
|
|
|
Now 2009 and in its fourth major version Swift Mailer is more object-oriented
|
|
and flexible than ever, both from a usability standpoint and from a
|
|
development standpoint.
|
|
|
|
By no means is Swift Mailer ready to call "finished". There are still many
|
|
features that can be added to the library along with the constant refactoring
|
|
that happens behind the scenes.
|
|
|
|
It's a Library!
|
|
---------------
|
|
|
|
Swift Mailer is not an application - it's a library.
|
|
|
|
To most experienced developers this is probably an obvious point to make, but
|
|
it's certainly worth mentioning. Many people often contact us having gotten
|
|
the completely wrong end of the stick in terms of what Swift Mailer is
|
|
actually for.
|
|
|
|
It's not an application. It does not have a graphical user interface. It
|
|
cannot be opened in your web browser directly.
|
|
|
|
It's a library (or a framework if you like). It provides a whole lot of
|
|
classes that do some very complicated things, so that you don't have to. You
|
|
"use" Swift Mailer within an application so that your application can have the
|
|
ability to send emails.
|
|
|
|
The component-based structure of the library means that you are free to
|
|
implement it in a number of different ways and that you can pick and choose
|
|
what you want to use.
|
|
|
|
An application on the other hand (such as a blog or a forum) is already "put
|
|
together" in a particular way, (usually) provides a graphical user interface
|
|
and most likely doesn't offer a great deal of integration with your own
|
|
application.
|
|
|
|
Embrace the structure of the library and use the components it offers to your
|
|
advantage. Learning what the components do, rather than blindly copying and
|
|
pasting existing code will put you in a great position to build a powerful
|
|
application!
|