5

当我在 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失败了。你知道我做错了什么吗?

4

2 回答 2

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'
));
于 2013-09-04T23:08:01.780 回答
3

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

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

SwitfMailerBundle ( )的可用配置的快速转储php 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_addresswhich 被传递给ImpersonatePlugin.php.

我不确定,您是否可以设置名称,但标准的方式,原始地,是使用该形式的字符串:

“行政人员 ”

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

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

于 2012-06-21T09:20:20.847 回答