2011-07-09 19 views
7

Estoy usando SwiftMailer para enviar correos electrónicos desde mi aplicación.¿Cómo cambiar el nombre del remitente al enviar correo con Swift_Message?

Todo funciona bien hasta el momento. Ahora necesito poder cambiar el texto del remitente de forma dinámica. El siguiente fragmento de código y el siguiente párrafo deberían aclarar a qué me refiero.

Actualmente, mi código es el siguiente:

try{ 
    $message = Swift_Message::newInstance() 
       ->setFrom($from) 
       ->setTo($to) 
       ->setSubject($subject) 
       ->setBody($content); 

    $mailer->send($message); 
}catch (Exception $e) { 
    // do something ... 
} 

El $ de variable contiene la dirección de correo electrónico del remitente - que es [email protected]

Sin embargo, quiero enviar resumen diario (por ejemplo) para diferentes entidades (por ejemplo, foros, grupos, etc.), por lo que deseo poder configurar el nombre del remitente como 'Miembros del Foro ABC para su digestión diaria', aunque el remitente siga siendo [email protected] Observé que linkedin está haciendo algo similar: envían diferentes resúmenes bajo diferentes nombres de remitentes, aunque el remitente siempre es [email protected]

El nombre predeterminado para [email protected] es 'System Mailer'. A propósito, estoy usando Google Apps como mi proveedor de servicios de correo. No es práctico para mí configurar diferentes cuentas de usuario , ya que los usuarios pueden crear sus propios foros, etc.

¿Hay alguna forma de poder especificar dinámicamente (es decir, mediante código) el nombre del remitente, aunque use el mismo remitente? ¿dirección?

Respuesta

25

Solo tiene que pasar $ from como una matriz.

$from = array($from_email => $from_name); 

try{ 
    $message = Swift_Message::newInstance() 
       ->setFrom($from) 
       ->setTo($to) 
       ->setSubject($subject) 
       ->setBody($content); 

    $mailer->send($message); 
}catch (Exception $e) { 
    // do something ... 
} 

Donde cambia $ from_name para cada uno de sus publicistas.

Espero que ayude!

+0

¿Me puede apuntar a la parte en la documentación de dónde viene ?. Si esto funciona, estaré siempre en deuda con usted: p! – oompahloompah

+0

http://swiftmailer.org/docs/sending.html - Vea el primer fragmento de código. No tienes que estar en deuda conmigo. Solo vota y acepta si te ayudó :) – Sukumar

+0

¡Gracias !. No pude votar, pero acepté tu respuesta. – oompahloompah

1

también se puede utilizar

$message = Swift_Message::newInstance() 
      ->setFrom($email, $sender_name) 
      ->setTo($to) 
      ->setSubject($subject) 
      ->setBody($content); 
+0

¿Cuidar para elaborar? – RamenChef

Cuestiones relacionadas