嗨,我正在使用我的应用程序中的SwiftMailer组件,并正在寻找一种使用SwiftMailer的单独配置(也许在配置文件夹中?)的方法,以检查我正在使用哪种调试模式并因此使用不同的设置?

案例1:在生产模式下,请使用无验证的简单SMTP服务器。案例2:在调试模式下使用Gmail设置或其他设置,因为我正在本地开发

这可能吗?

设置代码案例1:

$this->SwiftMailer->smtpHost = ''; 

设置代码案例2:

        $this->SwiftMailer->smtpType = ''; 
        $this->SwiftMailer->smtpHost = ''; 
        $this->SwiftMailer->smtpPort =; 
        $this->SwiftMailer->smtpUsername = ''; 
        $this->SwiftMailer->smtpPassword = ''; 
有帮助吗?

解决方案

我认为最快的方法是:

<?php
    Configure::load('swiftmailer');
    $this->SwiftMailer->smtpType =
      Configure::read('SwiftMailer.'.Configure::read().'.smtpType');
    $this->SwiftMailer->smtpHost = 
      Configure::read('SwiftMailer.'.Configure::read().'.smtpHost');
    $this->SwiftMailer->smtpPort = 
      Configure::read('SwiftMailer.'.Configure::read().'.smtpPort');
    $this->SwiftMailer->smtpUsername = 
      Configure::read('SwiftMailer.'.Configure::read().'.smtpUsername');
    $this->SwiftMailer->smtpPassword = 
      Configure::read('SwiftMailer.'.Configure::read().'.smtpPassword');
?>

现在可以戴上它。我建议控制器构造函数,这样它就不错又整洁。对于这些值,您可以始终使用私有配置文件:

// /app/config/swiftmailer.php:
<?php
  $config['SwiftMailer'][0]['smtpType'] = 'value';
  $config['SwiftMailer'][0]['smtpHost'] = 'value';
  $config['SwiftMailer'][0]['smtpPort'] = 'value';
  $config['SwiftMailer'][0]['smtpUsername'] = 'value';
  $config['SwiftMailer'][0]['smtpPassword'] = 'value';

  $config['SwiftMailer'][1]['smtpType'] = 'value';
  $config['SwiftMailer'][1]['smtpHost'] = 'value';
  $config['SwiftMailer'][1]['smtpPort'] = 'value';
  $config['SwiftMailer'][1]['smtpUsername'] = 'value';
  $config['SwiftMailer'][1]['smtpPassword'] = 'value';

  $config['SwiftMailer'][2]['smtpType'] = 'value';
  $config['SwiftMailer'][2]['smtpHost'] = 'value';
  $config['SwiftMailer'][2]['smtpPort'] = 'value';
  $config['SwiftMailer'][2]['smtpUsername'] = 'value';
  $config['SwiftMailer'][2]['smtpPassword'] = 'value';
?>

您可以在 配置类V 1.2配置类V 1.3.

他们似乎具有相同的内容,因此似乎没有从1.2更改为1.3。

希望能帮助到你。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top