vendor/swiftmailer/doc/messages.rst
author ymh <ymh.work@gmail.com>
Sat, 24 Sep 2011 15:40:41 +0200
changeset 0 7f95f8617b0b
permissions -rwxr-xr-x
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
Creating Messages
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
=================
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
Creating messages in Swift Mailer is done by making use of the various MIME
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
entities provided with the library.  Complex messages can be quickly created
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
with very little effort.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
Quick Reference for Creating a Message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
---------------------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
You can think of creating a Message as being similar to the steps you perform
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
when you click the Compose button in your mail client.  You give it a subject,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
specify some recipients, add any attachments and write your message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
To create a Message:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
* Call the ``newInstance()`` method of ``Swift_Message``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
* Set your sender address (``From:``) with ``setFrom()`` or ``setSender()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
* Set a subject line with ``setSubject()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
* Set recipients with ``setTo()``, ``setCc()`` and/or ``setBcc()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
* Set a body with ``setBody()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
* Add attachments with ``attach()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    require_once 'lib/swift_required.php';
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    //Create the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    $message = Swift_Message::newInstance()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
      //Give the message a subject
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
      ->setSubject('Your subject')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
      //Set the From address with an associative array
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
      ->setFrom(array('john@doe.com' => 'John Doe'))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
      //Set the To addresses with an associative array
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
      ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
      //Give it a body
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
      ->setBody('Here is the message itself')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
      //And optionally an alternative body
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
      ->addPart('<q>Here is the message itself</q>', 'text/html')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
      //Optionally add any attachments
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
      ->attach(Swift_Attachment::fromPath('my-document.pdf'))
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
      ;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
Message Basics
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
--------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
A message is a container for anything you want to send to somebody else. There
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
are several basic aspects of a message that you should know.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
An e-mail message is made up of several relatively simple entities that are
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
combined in different ways to achieve different results. All of these entities
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
have the same fundamental outline but serve a different purpose. The Message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
itself can be defined as a MIME entity, an Attachment is a MIME entity, all
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
MIME parts are MIME entities -- and so on!
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
The basic units of each MIME entity -- be it the Message itself, or an
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
Attachment -- are its Headers and its body:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
.. code-block:: text
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
    Header-Name: A header value
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    Other-Header: Another value
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    The body content itself
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
The Headers of a MIME entity, and its body must conform to some strict
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
standards defined by various RFC documents. Swift Mailer ensures that these
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
specifications are followed by using various types of object, including
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
Encoders and different Header types to generate the entity.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
The Structure of a Message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
Of all of the MIME entities, a message -- ``Swift_Message``
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
is the largest and most complex. It has many properties that can be updated
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
and it can contain other MIME entities -- attachments for example --
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
nested inside it.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
A Message has a lot of different Headers which are there to present
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
information about the message to the recipients' mail client. Most of these
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
headers will be familiar to the majority of users, but we'll list the basic
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
ones. Although it's possible to work directly with the Headers of a Message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
(or other MIME entity), the standard Headers have accessor methods provided to
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
abstract away the complex details for you. For example, although the Date on a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
message is written with a strict format, you only need to pass a UNIX
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
timestamp to ``setDate()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
| Header                        | Description                                                                                                                        | Accessors                                   |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
+===============================+====================================================================================================================================+=============================================+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
| ``Message-ID``                | Identifies this message with a unique ID, usually containing the domain name and time generated                                    | ``getId()`` / ``setId()``                   |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
| ``Return-Path``               | Specifies where bounces should go (Swift Mailer reads this for other uses)                                                         | ``getReturnPath()`` / ``setReturnPath()``   |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
| ``From``                      | Specifies the address of the person who the message is from. This can be multiple addresses if multiple people wrote the message.  | ``getFrom()`` / ``setFrom()``               |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
| ``Sender``                    | Specifies the address of the person who physically sent the message (higher precedence than ``From:``)                             | ``getSender()`` / ``setSender()``           |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
| ``To``                        | Specifies the addresses of the intended recipients                                                                                 | ``getTo()`` / ``setTo()``                   |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
| ``Cc``                        | Specifies the addresses of recipients who will be copied in on the message                                                         | ``getCc()`` / ``setCc()``                   |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
| ``Bcc``                       | Specifies the addresses of recipients who the message will be blind-copied to. Other recipients will not be aware of these copies. | ``getBcc()`` / ``setBcc()``                 |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
| ``Reply-To``                  | Specifies the address where replies are sent to                                                                                    | ``getReplyTo()`` / ``setReplyTo()``         |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
| ``Subject``                   | Specifies the subject line that is displayed in the recipients' mail client                                                        | ``getSubject()`` / ``setSubject()``         |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
| ``Date``                      | Specifies the date at which the message was sent                                                                                   | ``getDate()`` / ``setDate()``               |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
| ``Content-Type``              | Specifies the format of the message (usually text/plain or text/html)                                                              | ``getContentType()`` / ``setContentType()`` |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
| ``Content-Transfer-Encoding`` | Specifies the encoding scheme in the message                                                                                       | ``getEncoder()`` / ``setEncoder()``         |
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
+-------------------------------+------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------+
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
Working with a Message Object
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
Although there are a lot of available methods on a message object, you only
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
need to make use of a small subset of them. Usually you'll use
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
``setSubject()``, ``setTo()`` and
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
``setFrom()`` before setting the body of your message with
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
``setBody()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
Calling methods is simple. You just call them like functions, but using the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
object operator "``<![CDATA[->]]>``" to do so. If you've created
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
a message object and called it ``$message`` then you'd set a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
subject on it like so:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
    require_once 'lib/swift_required.php';  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
    $message = Swift_Message::newInstance();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
    $message->setSubject('My subject');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
All MIME entities (including a message) have a ``toString()``
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
method that you can call if you want to take a look at what is going to be
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
sent. For example, if you ``<![CDATA[echo
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
$message->toString();]]>`` you would see something like this:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
.. code-block:: bash
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
    Message-ID: <1230173678.4952f5eeb1432@swift.generated>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
    Date: Thu, 25 Dec 2008 13:54:38 +1100
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    Subject: Example subject
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
    From: Chris Corbyn <chris@w3style.co.uk>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
    To: Receiver Name <recipient@example.org>
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
    MIME-Version: 1.0
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
    Content-Type: text/plain; charset=utf-8
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
    Content-Transfer-Encoding: quoted-printable
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
    Here is the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
We'll take a closer look at the methods you use to create your message in the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
following sections.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
Adding Content to Your Message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
------------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
Rich content can be added to messages in Swift Mailer with relative ease by
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
calling methods such as setSubject(), setBody(), addPart() and attach().
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
Setting the Subject Line
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
The subject line, displayed in the recipients' mail client can be set with the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
setSubject() method, or as a parameter to Swift_Message::newInstance().
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
To set the subject of your Message:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
* Call the ``setSubject()`` method of the Message, or specify it at the time
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
  you create the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
  .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
    // Pass it as a parameter when you create the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
    $message = Swift_Message::newInstance('My amazing subject');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
    // Or set it after like this
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
    $message->setSubject('My amazing subject');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
Setting the Body Content
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
The body of the message -- seen when the user opens the message --
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
is specified by calling the setBody() method. If an alternative body is to be
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
included addPart() can be used.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
The body of a message is the main part that is read by the user. Often people
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
want to send a message in HTML format (``text/html``), other
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
times people want to send in plain text (``text/plain``), or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
sometimes people want to send both versions and allow the recipient to chose
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
how they view the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
As a rule of thumb, if you're going to send a HTML email, always include a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
plain-text equivalent of the same content so that users who prefer to read
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
plain text can do so.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
To set the body of your Message:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
* Call the ``setBody()`` method of the Message, or specify it at the time you
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
  create the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
* Add any alternative bodies with ``addPart()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
If the recipient's mail client offers preferences for displaying text vs. HTML then
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
the mail client will present that part to the user where available.  In other cases
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
the mail client will display the "best" part it can - usually HTML if you've included
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
HTML.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
    //Pass it as a parameter when you create the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
    $message = Swift_Message::newInstance('Subject here', 'My amazing body');  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
    //Or set it after like this
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
    $message->setBody('My <em>amazing</em> body', 'text/html');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
    //Add alternative parts with addPart()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
    $message->addPart('My amazing body in plain text', 'text/plain');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
Attaching Files
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
---------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
Attachments are downloadable parts of a message and can be added by calling
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
the attach() method on the message. You can add attachments that exist on
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
disk, or you can create attachments on-the-fly.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
Attachments are actually an interesting area of Swift Mailer and something
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
that could put a lot of power at your fingertips if you grasp the concept
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
behind the way a message is held together.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
Although we refer to files sent over e-mails as "attachments" -- because
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
they're attached to the message -- lots of other parts of the message are
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
actually "attached" even if we don't refer to these parts as attachments.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
File attachments are created by the ``Swift_Attachment`` class
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
and then attached to the message via the ``attach()`` method on
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
it. For all of the "every day" MIME types such as all image formats, word
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
documents, PDFs and spreadsheets you don't need to explicitly set the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
content-type of the attachment, though it would do no harm to do so. For less
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
common formats you should set the content-type -- which we'll cover in a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
moment.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
Attaching Existing Files
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
Files that already exist, either on disk or at a URL can be attached to a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
message with just one line of code, using Swift_Attachment::fromPath().
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
You can attach files that exist locally, or if your PHP installation has
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
``allow_url_fopen`` turned on you can attach files from other
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
websites.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
To attach an existing file:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
* Create an attachment with ``Swift_Attachment::fromPath()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
* Add the attachment to the message with ``attach()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
The attachment will be presented to the recipient as a downloadable file with
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
the same filename as the one you attached.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
    //Create the attachment
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
    // * Note that you can technically leave the content-type parameter out
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
    $attachment = Swift_Attachment::fromPath('/path/to/image.jpg', 'image/jpeg');  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
    //Attach it to the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
    $message->attach($attachment);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
    //The two statements above could be written in one line instead
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
    $message->attach(Swift_Attachment::fromPath('/path/to/image.jpg'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
    //You can attach files from a URL if allow_url_fopen is on in php.ini
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
    $message->attach(Swift_Attachment::fromPath('http://site.tld/logo.png'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
Setting the Filename
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
Usually you don't need to explicitly set the filename of an attachment because
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
the name of the attached file will be used by default, but if you want to set
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
the filename you use the setFilename() method of the Attachment.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
To change the filename of an attachment:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
* Call its ``setFilename()`` method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
The attachment will be attached in the normal way, but meta-data sent inside
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
the email will rename the file to something else.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
    //Create the attachment and call its setFilename() method
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
    $attachment = Swift_Attachment::fromPath('/path/to/image.jpg')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
      ->setFilename('cool.jpg');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
    //Because there's a fluid interface, you can do this in one statement
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
    $message->attach(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
      Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('cool.jpg')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
    );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
Attaching Dynamic Content
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
Files that are generated at runtime, such as PDF documents or images created
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
via GD can be attached directly to a message without writing them out to disk.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
Use the standard Swift_Attachment::newInstance() method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
To attach dynamically created content:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
* Create your content as you normally would.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
* Create an attachment with ``Swift_Attachment::newInstance()``, specifying
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
  the source data of your content along with a name and the content-type.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
* Add the attachment to the message with ``attach()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
The attachment will be presented to the recipient as a downloadable file
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
with the filename and content-type you specify.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
    If you would usually write the file to disk anyway you should just attach
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
    it with ``Swift_Attachment::fromPath()`` since this will use less memory:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
    .. code-block: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
        //Create your file contents in the normal way, but don't write them to disk
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
        $data = create_my_pdf_data();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
        //Create the attachment with your data
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
        $attachment = Swift_Attachment::newInstance($data, 'my-file.pdf', 'application/pdf');  
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
        //Attach it to the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
        $message->attach($attachment);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
        //You can alternatively use method chaining to build the attachment
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
        $attachment = Swift_Attachment::newInstance()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
          ->setFilename('my-file.pdf')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
          ->setContentType('application/pdf')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
          ->setBody($data)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
          ;
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
Changing the Disposition
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
Attachments just appear as files that can be saved to the Desktop if desired.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
You can make attachment appear inline where possible by using the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
setDisposition() method of an attachment.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
To make an attachment appear inline:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
* Call its ``setDisposition()`` method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
The attachment will be displayed within the email viewing window if the mail
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
client knows how to display it.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
    If you try to create an inline attachment for a non-displayable file type
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
    such as a ZIP file, the mail client should just present the attachment as
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
    normal:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
        //Create the attachment and call its setDisposition() method
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
        $attachment = Swift_Attachment::fromPath('/path/to/image.jpg')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
          ->setDisposition('inline');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
        //Because there's a fluid interface, you can do this in one statement
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
        $message->attach(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
          Swift_Attachment::fromPath('/path/to/image.jpg')->setDisposition('inline')
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
Embedding Inline Media Files
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
Often people want to include an image or other content inline with a HTML
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
message. It's easy to do this with HTML linking to remote resources, but this
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
approach is usually blocked by mail clients. Swift Mailer allows you to embed
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
your media directly into the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
Mail clients usually block downloads from remote resources because this
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
technique was often abused as a mean of tracking who opened an email. If
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
you're sending a HTML email and you want to include an image in the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
another approach you can take is to embed the image directly.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
Swift Mailer makes embedding files into messages extremely streamlined. You
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
embed a file by calling the ``embed()`` method of the message,
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
which returns a value you can use in a ``src`` or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
``href`` attribute in your HTML.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
Just like with attachments, it's possible to embed dynamically generated
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
content without having an existing file available.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
The embedded files are sent in the email as a special type of attachment that
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
has a unique ID used to reference them within your HTML attributes. On mail
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
clients that do not support embedded files they may appear as attachments.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
Although this is commonly done for images, in theory it will work for any
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
displayable (or playable) media type. Support for other media types (such as
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
video) is dependent on the mail client however.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
Embedding Existing Files
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
........................
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
Files that already exist, either on disk or at a URL can be embedded in a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
message with just one line of code, using Swift_EmbeddedFile::fromPath().
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
You can embed files that exist locally, or if your PHP installation has
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
``allow_url_fopen`` turned on you can embed files from other
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
websites.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
To embed an existing file:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
* Create a message object with ``Swift_Message::newInstance()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
* Set the body as HTML, and embed a file at the correct point in the message with ``embed()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
The file will be displayed with the message inline with the HTML wherever its ID
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
is used as a ``src`` attribute.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
    ``Swift_Image`` and ``Swift_EmbeddedFile`` are just aliases of one
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
    another. ``Swift_Image`` exists for semantic purposes.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
    You can embed files in two stages if you prefer. Just capture the return
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
    value of ``embed()`` in a variable and use that as the ``src`` attribute.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
    .. code-block: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
        //Create the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
        $message = Swift_Message::newInstance('My subject');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
        //Set the body
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
        $message->setBody(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
        '<html>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
        ' <head></head>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
        ' <body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
        '  Here is an image <img src="' . //Embed the file
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
             $message->embed(Swift_Image::fromPath('image.png')) .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
           '" alt="Image" />' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
        '  Rest of message' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
        ' </body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
        '</html>',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
          'text/html' //Mark the content-type as HTML
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
        //You can embed files from a URL if allow_url_fopen is on in php.ini
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
        $message->setBody(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
        '<html>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
        ' <head></head>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
        ' <body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
        '  Here is an image <img src="' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
             $message->embed(Swift_Image::fromPath('http://site.tld/logo.png')) .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
           '" alt="Image" />' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
        '  Rest of message' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
        ' </body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
        '</html>',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
          'text/html'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
        // If placing the embed() code inline becomes cumbersome
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
        // it's easy to do this in two steps
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
        $cid = $message->embed(Swift_Image::fromPath('image.png'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
        $message->setBody(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
        '<html>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
        ' <head></head>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
        ' <body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
        '  Here is an image <img src="' . $cid . '" alt="Image" />' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
        '  Rest of message' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
        ' </body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
        '</html>',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
          'text/html' //Mark the content-type as HTML
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
Embedding Dynamic Content
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
.........................
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
Images that are generated at runtime, such as images created via GD can be
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
embedded directly to a message without writing them out to disk. Use the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
standard Swift_Image::newInstance() method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
To embed dynamically created content:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
* Create a message object with ``Swift_Message::newInstance()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
* Set the body as HTML, and embed a file at the correct point in the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
  with ``embed()``. You will need to specify a filename and a content-type.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
The file will be displayed with the message inline with the HTML wherever its ID
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
is used as a ``src`` attribute.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
    ``Swift_Image`` and ``Swift_EmbeddedFile`` are just aliases of one
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
    another. ``Swift_Image`` exists for semantic purposes.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
    You can embed files in two stages if you prefer. Just capture the return
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
    value of ``embed()`` in a variable and use that as the ``src`` attribute.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
        //Create your file contents in the normal way, but don't write them to disk
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
        $img_data = create_my_image_data();
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
        //Create the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
        $message = Swift_Message::newInstance('My subject');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
        //Set the body
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
        $message->setBody(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
        '<html>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
        ' <head></head>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
        ' <body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
        '  Here is an image <img src="' . //Embed the file
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
             $message->embed(Swift_Image::newInstance($img_data, 'image.jpg', 'image/jpeg')) .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
           '" alt="Image" />' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
        '  Rest of message' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
        ' </body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
        '</html>',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
          'text/html' //Mark the content-type as HTML
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
        // If placing the embed() code inline becomes cumbersome
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
        // it's easy to do this in two steps
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
        $cid = $message->embed(Swift_Image::newInstance($img_data, 'image.jpg', 'image/jpeg'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
        $message->setBody(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
        '<html>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
        ' <head></head>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
        ' <body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
        '  Here is an image <img src="' . $cid . '" alt="Image" />' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
        '  Rest of message' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
        ' </body>' .
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
        '</html>',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
          'text/html' //Mark the content-type as HTML
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
        );
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
Adding Recipients to Your Message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
---------------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
Recipients are specified within the message itself via setTo(), setCc() and
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
setBcc(). Swift Mailer reads these recipients from the message when it gets
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
sent so that it knows where to send the message to.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
Message recipients are one of three types:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
* ``To:`` recipients -- the primary recipients (required)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
* ``Cc:`` recipients -- receive a copy of the message (optional)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
* ``Bcc:`` recipients -- hidden from other recipients (optional)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
Each type can contain one, or several addresses. It's possible to list only
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
the addresses of the recipients, or you can personalize the address by
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
providing the real name of the recipient.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
.. sidebar:: Syntax for Addresses
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
    If you only wish to refer to a single email address (for example your ``From:``
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
    address) then you can just use a string.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
          $message->setFrom('some@address.tld');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
    If you want to include a name then you must use an associative array.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
         $message->setFrom(array('some@address.tld' => 'The Name'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
    If you want to include multiple addresses then you must use an array.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
         $message->setTo(array('some@address.tld', 'other@address.tld'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
    You can mix personalized (addresses with a name) and non-personalized
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
    addresses in the same list by mixing the use of associative and non-associative
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
    array syntax.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
         $message->setTo(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
           'recipient-with-name@example.org' => 'Recipient Name One',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
           'no-name@example.org', //Note that this is not a key-value pair
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
           'named-recipient@example.org' => 'Recipient Name Two'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
         ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
Setting ``To:`` Recipients
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
``To:`` recipients are required in a message and are set with the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
``setTo()`` or ``addTo()`` methods of the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
To set ``To:`` recipients, create the message object using either
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
``new Swift_Message( ... )`` or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
``Swift_Message::newInstance( ... )``, then call the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
``setTo()`` method with a complete array of addresses, or use the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
``addTo()`` method to iteratively add recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
The ``setTo()`` method accepts input in various formats as described earlier in
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
this chapter. The ``addTo()`` method takes either one or two parameters. The
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
first being the email address and the second optional parameter being the name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
of the recipient.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
``To:`` recipients are visible in the message headers and will be
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
seen by the other recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
    Multiple calls to ``setTo()`` will not add new recipients -- each
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
    call overrides the previous calls. If you want to iteratively add
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
    recipients, use the ``addTo()`` method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
        //Using setTo() to set all recipients in one go
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
        $message->setTo(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
          'person1@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
          'person2@otherdomain.org' => 'Person 2 Name',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
          'person3@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
          'person4@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
          'person5@example.org' => 'Person 5 Name'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
        //Using addTo() to add recipients iteratively
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
        $message->addTo('person1@example.org');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
        $message->addTo('person2@example.org', 'Person 2 Name');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
Setting ``Cc:`` Recipients
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
``Cc:`` recipients are set with the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
``setCc()`` or ``addCc()`` methods of the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
To set ``Cc:`` recipients, create the message object using either
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
``new Swift_Message( ... )`` or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
``Swift_Message::newInstance( ... )``, then call the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
``setCc()`` method with a complete array of addresses, or use the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
``addCc()`` method to iteratively add recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
The ``setCc()`` method accepts input in various formats as described earlier in
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
this chapter. The ``addCc()`` method takes either one or two parameters. The
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
first being the email address and the second optional parameter being the name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
of the recipient.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
``Cc:`` recipients are visible in the message headers and will be
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
seen by the other recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
    Multiple calls to ``setCc()`` will not add new recipients -- each
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
    call overrides the previous calls. If you want to iteratively add Cc:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
    recipients, use the ``addCc()`` method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
        //Using setCc() to set all recipients in one go
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
        $message->setCc(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
          'person1@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
          'person2@otherdomain.org' => 'Person 2 Name',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
          'person3@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
          'person4@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
          'person5@example.org' => 'Person 5 Name'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
        //Using addCc() to add recipients iteratively
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
        $message->addCc('person1@example.org');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
        $message->addCc('person2@example.org', 'Person 2 Name');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
Setting ``Bcc:`` Recipients
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
~~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
``Bcc:`` recipients receive a copy of the message without anybody
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
else knowing it, and are set with the ``setBcc()`` or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
``addBcc`` methods of the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
To set ``Bcc:`` recipients, create the message object using
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
either ``new Swift_Message( ... )`` or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
``Swift_Message::newInstance( ... )``, then call the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
``setBcc()`` method with a complete array of addresses, or use
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
the ``addBcc()`` method to iteratively add recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
The ``setBcc()`` method accepts input in various formats as described earlier in
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
this chapter. The ``addBcc()`` method takes either one or two parameters. The
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
first being the email address and the second optional parameter being the name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
of the recipient.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
Only the individual ``Bcc:`` recipient will see their address in
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
the message headers. Other recipients (including other ``Bcc:``
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
recipients) will not see the address.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
    Multiple calls to ``setBcc()`` will not add new recipients -- each
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
    call overrides the previous calls. If you want to iteratively add Bcc:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
    recipients, use the ``addBcc()`` method.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
        //Using setBcc() to set all recipients in one go
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
        $message->setBcc(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
          'person1@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
          'person2@otherdomain.org' => 'Person 2 Name',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
          'person3@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
          'person4@example.org',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
          'person5@example.org' => 'Person 5 Name'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
        //Using addBcc() to add recipients iteratively
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
        $message->addBcc('person1@example.org');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
        $message->addBcc('person2@example.org', 'Person 2 Name');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
Specifying Sender Details
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
-------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
An email must include information about who sent it. Usually this is managed
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
by the ``From:`` address, however there are other options.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
The sender information is contained in three possible places:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
* ``From:`` -- the address(es) of who wrote the message (required)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
* ``Sender:`` -- the address of the single person who sent the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
  (optional)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
* ``Return-Path:`` -- the address where bounces should go to (optional)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
You must always include a ``From:`` address by using
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
``setFrom()`` on the message. Swift Mailer will use this as the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
default ``Return-Path:`` unless otherwise specified.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
The ``Sender:`` address exists because the person who actually
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
sent the email may not be the person who wrote the email. It has a higher
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
precedence than the ``From:`` address and will be used as the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
``Return-Path:`` unless otherwise specified.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
Setting the ``From:`` Address
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
A ``From:`` address is required and is set with the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
``setFrom()`` method of the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
``From:`` addresses specify who actually wrote the email, and
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
usually who sent it.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
What most people probably don't realise is that you can have more than one
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
``From:`` address if more than one person wrote the email --
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
for example if an email was put together by a committee.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
To set the ``From:`` address(es):
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
* Call the ``setFrom()`` method on the Message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
The ``From:`` address(es) are visible in the message headers and
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
will be seen by the recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
    If you set multiple ``From:`` addresses then you absolutely must set a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
    ``Sender:`` address to indicate who physically sent the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
        //Set a single From: address
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
        $message->setFrom('your@address.tld');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
        //Set a From: address including a name
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
        $message->setFrom(array('your@address.tld' => 'Your Name'));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
        //Set multiple From: addresses if multiple people wrote the email
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
        $message->setFrom(array(
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
          'person1@example.org' => 'Sender One',
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
          'person2@example.org' => 'Sender Two'
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
        ));
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
Setting the ``Sender:`` Address
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
A ``Sender:`` address specifies who sent the message and is set
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
with the ``setSender()`` method of the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
To set the ``Sender:`` address:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
* Call the ``setSender()`` method on the Message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
The ``Sender:`` address is visible in the message headers and
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
will be seen by the recipients.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
This address will be used as the ``Return-Path:`` unless
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
otherwise specified.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
    If you set multiple ``From:`` addresses then you absolutely must set a
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
    ``Sender:`` address to indicate who physically sent the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
You must not set more than one sender address on a message because it's not
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
possible for more than one person to send a single message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
    $message->setSender('your@address.tld');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
Setting the ``Return-Path:`` (Bounce) Address
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
The ``Return-Path:`` address specifies where bounce notifications should
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
be sent and is set with the ``setReturnPath()`` method of the message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
You can only have one ``Return-Path:`` and it must not include
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
a personal name.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
To set the ``Return-Path:`` address:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
* Call the ``setReturnPath()`` method on the Message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
Bouce notifications will be sent to this address.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
    $message->setReturnPath('bounces@address.tld');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
Requesting a Read Receipt
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
-------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
It is possible to request a read-receipt to be sent to an address when the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
email is opened. To request a read receipt set the address with
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
``setReadReceiptTo()``.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
To request a read receipt:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
* Set the address you want the receipt to be sent to with the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
  ``setReadReceiptTo()`` method on the Message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
When the email is opened, if the mail client supports it a notification will be sent to this address.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
    Read receipts won't work for the majority of recipients since many mail
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
    clients auto-disable them. Those clients that will send a read receipt
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
    will make the user aware that one has been requested.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
        $message->setReadReceiptTo('your@address.tld');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
Setting the Character Set
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
-------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
The character set of the message (and it's MIME parts) is set with the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
setCharset() method. You can also change the global default of UTF-8 by
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
working with the Swift_Preferences class.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
Swift Mailer will default to the UTF-8 character set unless otherwise
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
overridden. UTF-8 will work in most instances since it includes all of the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
standard US keyboard characters in addition to most international characters.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
It is absolutely vital however that you know what character set your message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
(or it's MIME parts) are written in otherwise your message may be received
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
completely garbled.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
There are two places in Swift Mailer where you can change the character set:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
* In the Swift_Preferences class
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
* On each individual message and/or MIME part
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
To set the character set of your Message:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
* Change the global UTF-8 setting by calling
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
  ``Swift_Preferences::setCharset()``; or
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
* Call the ``setCharset()`` method on the message or the MIME part.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
   .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
    //Approach 1: Change the global setting (suggested)
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
    Swift_Preferences::getInstance()->setCharset('iso-8859-2');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
    //Approach 2: Call the setCharset() method of the message
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
    $message = Swift_Message::newInstance()
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
      ->setCharset('iso-8859-2');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
    //Apprach 3: Specify the charset when setting the body
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
    $message->setBody('My body', 'text/html', 'iso-8859-2');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
    //Approach 4: Specify the charset for each part added
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
    $message->addPart('My part', 'text/plain', 'iso-8859-2');
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
Setting the Line Length
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
-----------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
The length of lines in a message can be changed by using the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
``setMaxLineLength()`` method on the message. It should be kept
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
to less than 1000 characters.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
Swift Mailer defaults to using 78 characters per line in a message. This is
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
done for historical reasons and so that the message can be easily viewed in
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
plain-text terminals.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
To change the maximum length of lines in your Message:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
* Call the ``setMaxLineLength()`` method on the Message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
Lines that are longer than the line length specified will be wrapped between
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
words.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
.. note::
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
    You should never set a maximum length longer than 1000 characters
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
    according to RFC 2822. Doing so could have unspecified side-effects such
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   942
    as truncating parts of your message when it is transported between SMTP
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   943
    servers.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   945
    .. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   946
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   947
        $message->setMaxLineLength(1000);
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   948
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   949
Setting the Message Priority
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   950
----------------------------
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   951
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   952
You can change the priority of the message with
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   953
``setPriority()``. Setting the priority will not change the way
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   954
your email is sent -- it is purely an indicative setting for the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   955
recipient.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   956
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   957
The priority of a message is an indication to the recipient what significance
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   958
it has. Swift Mailer allows you to set the priority by calling the
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   959
``setPriority`` method. This method takes an integer value
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   960
between 1 and 5:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   961
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   962
* Highest
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   963
* High
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   964
* Normal
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   965
* Low
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
* Lowest
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
To set the message priority:
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
* Set the priority as an integer between 1 and 5 with the ``setPriority()``
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
  method on the Message.
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
.. code-block:: php
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
    //Indicate "High" priority
7f95f8617b0b first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
    $message->setPriority(2);