如何在电子邮件发件人上添加姓名?

时间:2012-06-21 08:09:13

标签: symfony swiftmailer

我正在尝试在我的Symfony2应用程序中发送电子邮件时命名发件人

Administrator <no-reply@app.com>

我试过parameters.ini

mailer_from      = {"no-reply@app.com : Administrator"}

似乎可以这样做,因为在SimpleMessage.php中我们有:

  /**
   * Set the sender of this message.
   * This does not override the From field, but it has a higher significance.
   * @param string $sender
   * @param string $name optional
   * @return Swift_Mime_SimpleMessage
   */
  public function setSender($address, $name = null)
  {
    if (!is_array($address) && isset($name))
    {
      $address = array($address => $name);
    }

    if (!$this->_setHeaderFieldModel('Sender', (array) $address))
    {
      $this->getHeaders()->addMailboxHeader('Sender', (array) $address);
    }
    return $this;
  }

我在parameters.ini尝试的所有内容都失败了。你知道我做错了什么吗?

2 个答案:

答案 0 :(得分:17)

// Set a single From: address
$message->setFrom('your@address.tld');

// Set a From: address including a name
$message->setFrom(array('your@address.tld' => 'Your Name'));

// Set multiple From: addresses if multiple people wrote the email
$message->setFrom(array(
  'person1@example.org' => 'Sender One',
  'person2@example.org' => 'Sender Two'
));

答案 1 :(得分:3)

  

似乎可以这样做,因为在SimpleMessage.php中我们确实有

嗯,可以设置名称,但没有任何迹象表明您可以使用配置进行设置。

快速转储SwitfMailerBundlephp app/console config:dump-reference SwiftmailerBundle)的可用配置将返回:

Default configuration for "SwiftmailerBundle"
swiftmailer:          
    transport:            smtp 
    username:             ~ 
    password:             ~ 
    host:                 localhost 
    port:                 false 
    encryption:           ~ 
    auth_mode:            ~ 
    spool:                
        type:                 file 
        path:                 %kernel.cache_dir%/swiftmailer/spool 
    sender_address:       ~ 
    antiflood:            
        threshold:            99 
        sleep:                0 
    delivery_address:     ~ 
    disable_delivery:     ~ 
    logging:              true 

如您所见,有sender_address传递给ImpersonatePlugin.php

我不确定,你能设置一个名字,但标准的方法是使用这种形式的字符串:

“管理员”

如果它不起作用,可能意味着,你会做一些工作,写一个真正的EmailManager。

SwiftMailerBundle实际上只是SwiftMailer库的集成,它是一个库,而不是“管理器”。