Pregunta

En mi localhost (Linux Mint OS) SwiftMailer está trabajando muy bien con el siguiente código, pero cuando lo muevo a mi servidor es simplemente se cuelga en la función de envío y luego me da un error interno del servidor.

Actualmente tengo mi configuración de correo electrónico a través de Google Apps, así que tal vez SMTP no funcionará para esta situación? Si ése es el caso, ¿Cómo sugiere que cambie esto desde SMTP.

Además, cada vez que se envía un correo electrónico como este, que está apareciendo con una dirección de origen del uno en el área nombre de usuario. Quiero que aparece con la dirección del remitente en la función "setFrom".

//Include the swiftmailer class
require_once 'comm/swiftmailer/swift_required.php';

//Create a message
//Pass it as a parameter when you create the message
$message = Swift_Message::newInstance();
$message->setSubject('My Subject');
$message->setFrom(array('noreply@domain.com' => 'No Reply'));
$message->setTo(array('me@domain.com' => 'Me'));
$message->setBody($emailContent, 'text/html');

//Create transport class and email the message
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('useracctname')->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);

Muchas gracias por cualquier ayuda!

¿Fue útil?

Solución

Esto podría ser un problema con los puertos en el servidor. El puerto 465 podría ser cerrada para evitar el correo basura. También podría ser que la versión del servidor de PHP no tiene soporte SSL.

Me pregunto, sin embargo, podría ser que no estoy utilizando el servidor de correo local por lo que no permitirá SMTP?

Si la dirección de Gmail tan explícitamente como lo hace, es muy poco probable que estés utilizando otro tipo de transporte o en un servidor diferente.

Además, ¿qué pasa con el uso de uno de los otros tipos de transporte?

creo SMTP es su única opción para ponerlo en marcha con Gmail. Podría, sin embargo, que su servidor está proporcionando un servicio basado mail() (obviamente con una dirección de remitente diferente de Gmail sin embargo). En ese caso, es posible que pueda utilizar de SwiftMailer mail transporte .

Otros consejos

Yo tenía el mismo problema: yo era capaz de enviar correo electrónico Gmail en el local (después de actualizar esa configuración: https://www.google.com/settings/security/lesssecureapps ), pero no en la producción.

Para solucionar mi problema que he conectado a mi cuenta de Gmail con mi producción ip / de mi servidor de producción y responder a la pregunta de seguridad de Gmail.

Una de la solución a conectarse a su cuenta de Gmail con su ip de producción, es

  1. abrir un túnel ssh (ssh -2NfCT -D 5000 yoursshuser@yourdomain.org)
  2. configurar su navegador para usar ese proxy (por ejemplo, Firefox: a Preferencias> Avanzado> Red> Configuración> Configuración manual del proxy> Calcetines anfitriones: localhost / Post: 5000 / CALCETINES v5)
  3. registro para que la cuenta de Gmail como de costumbre

El error outputed por Symfony fue:

app.ERROR: Exception occurred while flushing email queue: Failed to authenticate on SMTP server with username "joe.doe" using 1 possible authenticators [] []

Bueno, aquí está la solución.

si va a enviar correo SMTP debe crear la cuenta de correo electrónico en el servidor a continuación, utilizar esta información de correo electrónico a su código. el servidor no enviará el correo electrónico si usted no tiene cuenta de correo electrónico válida para enviar usarlo cuando se utiliza "de". esto debe ser una verdadera cuenta de correo electrónico correcta uno falso.

la única razón posible para enviar mediante cuenta falsa está usando la función mail ().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top