correo - Symfony2 Swiftmailer no está enviando
symfony swiftmailer port (7)
Tengo problemas para enviar correos electrónicos con symfony2 y swiftmailer. También estoy un poco perdido sobre cómo depurar este problema. A continuación se muestra el código. Primero estoy creando un formulario para mostrar. Al enviar (solicitud-> método == publicación) luego trato de enviar el correo electrónico. No recibo ningún error y me está llevando a la página de agradecimiento; sin embargo, no recibo ningún correo electrónico. He probado en prod y dev. En dev he abierto el generador de perfiles después de la presentación y muestra 0 correos electrónicos. Cualquier ayuda es apreciada! ¡Gracias!
public function contactAction(Request $request)
{
$defaultData = array(''name'' => ''Name'', ''email'' => ''Email'', ''subject'' => ''Subject'', ''message'' => ''Message'');
$form = $this->createFormBuilder($defaultData)
->add(''name'', ''text'')
->add(''email'', ''email'')
->add(''subject'', ''text'')
->add(''message'', ''textarea'')
->getForm();
if($request->getMethod() == ''POST'') {
$form->bindRequest($request);
$data = $form->getData();
$message = /Swift_Message::newInstance()
->setSubject($data[''subject''])
->setFrom(''[email protected]'')
->setTo(''[email protected]'')
->setBody($this->renderView(''AdaptiveSiteBundle:Default:email.txt.twig'', array(''name'' => $data[''name''], ''message'' => $data[''message''])))
;
$this->get(''mailer'')->send($message);
return $this->redirect($this->generateUrl(''thankyou''));
}
return array("form" => $form->createView());
}
¿Puedes publicar parameters.yml?
También asegúrese de que la cola de impresión esté deshabilitada para que el correo electrónico pueda enviarse instantáneamente. Si tiene una entrada de spool en la configuración de Swiftmailer, elimínela, por ejemplo:
swiftmailer: transport: %mailer_transport% host: %mailer_host% username: %mailer_user% password: %mailer_password% spool: { type: memory }
Debiera ser:
swiftmailer: transport: %mailer_transport% host: %mailer_host% username: %mailer_user% password: %mailer_password%
A menudo, configuro la siguiente configuración en config_dev.yml a -prevent- los correos que se envían durante las pruebas, tal vez haya hecho lo mismo y se haya olvidado.
Si esto está en config_dev.yml, configúralo en falso:
swiftmailer:
disable_delivery: true
Aparte de la solución anterior, le sugiero que elimine el die
o exit
de la función en la que utiliza el código swiftmailer. Esto solucionará su problema si su código es correcto.
Aquí puedes encontrar el procedimiento completo sobre cómo enviar correos electrónicos con symfony2. Acabo de probarlo, parece que funciona bien.
http://tutorial.symblog.co.uk/docs/validators-and-forms.html#sending-the-email
Es posible que tenga conjunto de cola de correo. Si es un caso necesitas ejecutar:
php app/console swiftmailer:spool:send
para enviar correos en spool.
Consulte http://symfony.com/doc/master/cookbook/email/spool.html para obtener más información.
Si tiene problemas para recibir correo electrónico con ovh, siwftmailer y fosUserBundle,
Por favor considere agregar esto en su config.yml
fos_user:
from_email:
address: [email protected]
sender_name: yourname
Si no lo hace, el paquete de usuarios de fos enviará el correo electrónico con [email protected] y OVH lo marcará como correo no deseado.
fuente: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/emails.md
config.yml
# Swiftmailer Configuration
swiftmailer:
transport: smtp
encryption: ssl
auth_mode: login
host: smtp.xx.eu
username: username
password: password
controlador / acción
$messageObject = /Swift_Message::newInstance()
->setSubject(''Subject'')
->setFrom(''[email protected]'')
->setTo(''[email protected]'')
->setBody(''message'');
$this->get(''mailer'')->send($messageObject);