El proveedor SwiftmailerServiceProvider ofrece un servicio para enviar correo electrónico a través de la biblioteca de correo Swift Mailer.
Puedes utilizar el servicio mailer (cliente de correo) para enviar mensajes fácilmente. Por omisión, este tratará de enviar el correo electrónico a través de SMTP.
swiftmailer.options: Un arreglo de opciones para la configuración predeterminada basada en SMTP.
Puedes ajustar las siguientes opciones:
Ejemplo de uso:
$app['swiftmailer.options'] = array(
'host' => 'host',
'port' => '25',
'username' => 'username',
'password' => 'password',
'encryption' => null,
'auth_mode' => null
);
mailer: La instancia del cliente de correo.
Ejemplo de uso:
$message = \Swift_Message::newInstance();
// ...
$app['mailer']->send($message);
swiftmailer.transport: El transporte usado para entregar el correo electrónico. Predeterminado a Swift_Transport_EsmtpTransport.
swiftmailer.transport.buffer: El StreamBuffer usado por el transporte.
swiftmailer.transport.authhandler: Controlador de autenticación usado por el transporte. De manera predeterminada intentará con los siguientes: CRAM-MD5, login, plaintext.
swiftmailer.transport.eventdispatcher: Despachador de eventos interno usado por Swiftmailer.
$app->register(new Silex\Provider\SwiftmailerServiceProvider());
Nota
SwiftMailer viene con el archivo “gordo” de Silex pero no en el normal. Si estás usando Composer, añádelo como dependencia en tu archivo composer.json:
"require": {
"swiftmailer/swiftmailer": ">=4.1.2,<4.2-dev"
}
El proveedor Swiftmailer proporciona un servicio mailer o cliente de correo:
$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 añade los siguientes atajos:
$app->mail(\Swift_Message::newInstance()
->setSubject('[TuSitio] Realimentación')
->setFrom(array('sinrespuesta@tusitio.com'))
->setTo(array('reacciones@tusitio.com'))
->setBody($request->get('message')));
Para más información, consulta la Documentación de Swift Mailer.