Как использовать Gmail для отправки электронных писем

Как использовать Gmail для отправки электронных писем

Во время разработки, вместо того, чтобы использовать обычный SMTP-сервер для отправки писем, вы можете решить, что использование Gmail более лёгкое и практичное. SwiftmailerBundle делает его использование крайне лёгким.

В файле конфигурации разработки, измените установку transport на gmail и установите username и password как аттестаты Google:

  • YAML
    1
    2
    3
    4
    5
    # app/config/config_dev.yml
    swiftmailer:
        transport: gmail
        username:  your_gmail_username
        password:  your_gmail_password
    
  • XML
     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
            http://symfony.com/schema/dic/services/services-1.0.xsd
            http://symfony.com/schema/dic/swiftmailer
            http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
    
        <!-- ... -->
        <swiftmailer:config
            transport="gmail"
            username="your_gmail_username"
            password="your_gmail_password"
        />
    </container>
    
  • PHP
    1
    2
    3
    4
    5
    6
    // app/config/config_dev.php
    $container->loadFromExtension('swiftmailer', array(
        'transport' => 'gmail',
        'username'  => 'your_gmail_username',
        'password'  => 'your_gmail_password',
    ));
    

Tip

Более удобно конфигурировать эти опции в файле parameters.yml:

1
2
3
4
5
# app/config/parameters.yml
parameters:
    # ...
    mailer_user:     your_gmail_username
    mailer_password: your_gmail_password
  • YAML
    1
    2
    3
    4
    5
    # app/config/config_dev.yml
    swiftmailer:
        transport: gmail
        username:  '%mailer_user%'
        password:  '%mailer_password%'
    
  • XML
     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
            http://symfony.com/schema/dic/services/services-1.0.xsd
            http://symfony.com/schema/dic/swiftmailer
            http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
    
        <!-- ... -->
        <swiftmailer:config
            transport="gmail"
            username="%mailer_user%"
            password="%mailer_password%"
        />
    </container>
    
  • PHP
    1
    2
    3
    4
    5
    6
    // app/config/config_dev.php
    $container->loadFromExtension('swiftmailer', array(
        'transport' => 'gmail',
        'username'  => '%mailer_user%',
        'password'  => '%mailer_password%',
    ));
    

Переопределение параметров конфигурации по умолчанию

Транспорт gmail это просто короткий путь, который использует транспорт smtp и устанавливает следующие опции:

Опция Значение
encryption ssl
auth_mode login
host smtp.gmail.com

Если ваше приложение использует шифрование tls или аутентификацию oauth, вы должны переопределить опции по умолчанию, защитив параметры encryption и auth_mode.

Если ваш аккаунт Gmail использует двухуровневую верификацию, вы должна сгенерировать пароль приложения и испольозовать его в качестве значения параметра mailer_password. Вы также должны убедиться в том, что вы предоставляете менее безопасным приложениям доступ к вашему Gmail-аккаунту.

See the Swiftmailer configuration reference for more details.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.