Zend mail application.ini中的多个Zend_邮件配置

Zend mail application.ini中的多个Zend_邮件配置,zend-mail,zend-framework,Zend Mail,Zend Framework,我正在使用Zend框架 我需要在application.ini中为Zend_mail设置多个邮件配置(使用Zend_application_Resource_mail)。是否可以使用Zend Framework中的标准类来实现这一点,还是需要创建自己的类 我使用的是Zend Framework的最新稳定版本 感谢您的回答似乎无法使用Zend_应用程序资源邮件为Zend_邮件设置多个配置 您可以将各种配置添加到application.ini,但必须编写自己的类/函数,以激活所需的配置 Zend_A

我正在使用Zend框架

我需要在application.ini中为Zend_mail设置多个邮件配置(使用Zend_application_Resource_mail)。是否可以使用Zend Framework中的标准类来实现这一点,还是需要创建自己的类

我使用的是Zend Framework的最新稳定版本


感谢您的回答

似乎无法使用Zend_应用程序资源邮件为Zend_邮件设置多个配置

您可以将各种配置添加到application.ini,但必须编写自己的类/函数,以激活所需的配置

Zend_Application_Resource_Mail设置的您必须覆盖的内容是
Zend_Mail::setDefaultTransport($newTransport)
Zend_Mail::setDefaultReplyTo($email)
和Zend_Mail::setDefaultFrom($email)

我测试了一些东西,发现了一个你可以做的简单的事情

在application.ini中设置不同的配置,如下所示:

mail_config.mail_test.transport.type = smtp
mail_config.mail_test.transport.host = "smtp.example.com"
mail_config.mail_test.transport.auth = login
mail_config.mail_test.transport.username = myUsername
mail_config.mail_test.transport.password = myPassword

mail_config.mail_test.defaultFrom.email = john@example.com
mail_config.mail_test.defaultFrom.name = "John Doe"
mail_config.mail_test.defaultReplyTo.email = Jane@example.com
mail_config.mail_test.defaultReplyTo.name = "Jane Doe"
请注意我们是如何在
mail\u config
下设置选项的。这将是要应用的选项集<代码>邮件测试
是一个示例配置。通过设置
mail\u config.mail\u test2
mail\u config.corporate\u mail
,或
mail\u config.production
等,您可以拥有多个

接下来,创建一个空类,该类从
Zend\u Application\u Resource\u Mail
扩展而来。最好对其进行命名和放置,以便自动加载

班级:

<?php

class Application_Service_MailSettings extends Zend_Application_Resource_Mail { }
这应该可以用很少的新代码实现您想要的

    // get the bootstrap, so we can get mail_config options
    $bootstrap = $this->getInvokeArg('bootstrap');
    $options   = $bootstrap->getOption('mail_config');

    // initialize the resource loader with the options from mail_config.mail_test
    $mailSettings = new Application_Service_MailSettings($options['mail_test']);
    $mailSettings->init();  // call init() so the settings are applied

    // now the default transport, from, and reply to are set using mail_config.mail_test options.

    // to use a different set of options, just do
    // $mailSettings = new Application_Service_MailSettings($options['other_config');