How to Use Gmail to Send Emails
Warning: You are browsing the documentation for Symfony 3.x, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
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:
1 2 3 4 5
# app/config/config_dev.yml
swiftmailer:
transport: gmail
username: your_gmail_username
password: your_gmail_password
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<!-- 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>
1 2 3 4 5 6
// 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:
1 2 3 4 5
# app/config/parameters.yml
parameters:
# ...
mailer_user: your_gmail_username
mailer_password: your_gmail_password
1 2 3 4 5
# app/config/config_dev.yml
swiftmailer:
transport: gmail
username: '%mailer_user%'
password: '%mailer_password%'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<!-- 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>
1 2 3 4 5 6
// 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.
See also
See the Swiftmailer configuration reference for more details.