The SwiftmailerServiceProvider provides a service for sending email through the Swift Mailer library.
You can use the mailer service to send messages easily. By default, it will attempt to send emails through SMTP.
swiftmailer.options: An array of options for the default SMTP-based configuration.
The following options can be set:
Example usage:
$app['swiftmailer.options'] = array(
'host' => 'host',
'port' => '25',
'username' => 'username',
'password' => 'password',
'encryption' => null,
'auth_mode' => null
);
mailer: The mailer instance.
Example usage:
$message = \Swift_Message::newInstance();
// ...
$app['mailer']->send($message);
swiftmailer.transport: The transport used for e-mail delivery. Defaults to a Swift_Transport_EsmtpTransport.
swiftmailer.transport.buffer: StreamBuffer used by the transport.
swiftmailer.transport.authhandler: Authentication handler used by the transport. Will try the following by default: CRAM-MD5, login, plaintext.
swiftmailer.transport.eventdispatcher: Internal event dispatcher used by Swiftmailer.
$app->register(new Silex\Provider\SwiftmailerServiceProvider());
Note
SwiftMailer comes with the “fat” Silex archive but not with the regular one. If you are using Composer, add it as a dependency to your composer.json file:
"require": {
"swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev"
}
The Swiftmailer provider provides a mailer service:
$app->post('/feedback', function () use ($app) {
$request = $app['request'];
$message = \Swift_Message::newInstance()
->setSubject('[YourSite] Feedback')
->setFrom(array('noreply@yoursite.com'))
->setTo(array('feedback@yoursite.com'))
->setBody($request->get('message'));
$app['mailer']->send($message);
return new Response('Thank you for your feedback!', 201);
});
Silex\Application\SwiftmailerTrait adds the following shortcuts:
$app->mail(\Swift_Message::newInstance()
->setSubject('[YourSite] Feedback')
->setFrom(array('noreply@yoursite.com'))
->setTo(array('feedback@yoursite.com'))
->setBody($request->get('message')));
For more information, check out the Swift Mailer documentation.