Skip to content

Latest commit

 

History

History
133 lines (102 loc) · 4.54 KB

gmail.rst

File metadata and controls

133 lines (102 loc) · 4.54 KB
.. index::
   single: Emails; Gmail

How to Use Gmail to Send Emails

During development, instead of using a regular SMTP server to send emails, you might find using Gmail easier and more practical. You can achieve this with the SwiftmailerBundle without much effort.

In the development configuration file, change the transport setting to gmail and set the username and password to the Google credentials:

.. configuration-block::

    .. code-block:: yaml

        # app/config/config_dev.yml
        swiftmailer:
            transport: gmail
            username:  your_gmail_username
            password:  your_gmail_password

    .. code-block:: xml

        <!-- app/config/config_dev.xml -->
        <?xml version="1.0" encoding="UTF-8" ?>
        <container xmlns="http://symfony.com/schema/dic/services"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
            xsi:schemaLocation="http://symfony.com/schema/dic/services
                https://symfony.com/schema/dic/services/services-1.0.xsd
                http://symfony.com/schema/dic/swiftmailer
                https://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">

            <!-- ... -->
            <swiftmailer:config
                transport="gmail"
                username="your_gmail_username"
                password="your_gmail_password"
            />
        </container>

    .. code-block:: php

        // app/config/config_dev.php
        $container->loadFromExtension('swiftmailer', [
            'transport' => 'gmail',
            'username'  => 'your_gmail_username',
            'password'  => 'your_gmail_password',
        ]);

Tip

It's more convenient to configure these options in the parameters.yml file:

# app/config/parameters.yml
parameters:
    # ...
    mailer_user:     your_gmail_username
    mailer_password: your_gmail_password
.. configuration-block::

    .. code-block:: yaml

        # app/config/config_dev.yml
        swiftmailer:
            transport: gmail
            username:  '%mailer_user%'
            password:  '%mailer_password%'

    .. code-block:: xml

        <!-- app/config/config_dev.xml -->
        <?xml version="1.0" encoding="UTF-8" ?>
        <container xmlns="http://symfony.com/schema/dic/services"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
            xsi:schemaLocation="http://symfony.com/schema/dic/services
                https://symfony.com/schema/dic/services/services-1.0.xsd
                http://symfony.com/schema/dic/swiftmailer
                https://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">

            <!-- ... -->
            <swiftmailer:config
                transport="gmail"
                username="%mailer_user%"
                password="%mailer_password%"
            />
        </container>

    .. code-block:: php

        // app/config/config_dev.php
        $container->loadFromExtension('swiftmailer', [
            'transport' => 'gmail',
            'username'  => '%mailer_user%',
            'password'  => '%mailer_password%',
        ]);

Redefining the Default Configuration Parameters

The gmail transport is a shortcut that uses the smtp transport and sets these options:

Option Value
encryption ssl
auth_mode login
host smtp.gmail.com

If your application uses tls encryption or oauth authentication, you must override the default options by defining the encryption and auth_mode parameters.

If your Gmail account uses 2-Step-Verification, you must generate an App password and use it as the value of the mailer_password parameter. You must also ensure that you allow less secure applications to access your Gmail account.

.. seealso::

    See the :doc:`Swiftmailer configuration reference </reference/configuration/swiftmailer>`
    for more details.