首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >application.ini中的多个Zend_Mail配置

application.ini中的多个Zend_Mail配置
EN

Stack Overflow用户
提问于 2011-11-26 05:43:13
回答 1查看 1.6K关注 0票数 3

我正在使用Zend框架。

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

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

谢谢你的回答

EN

回答 1

Stack Overflow用户

发布于 2011-11-26 10:31:45

似乎无法使用Zend_Application_Resource_Mail为Zend_Mail设置多个配置。

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

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

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

在application.ini中像这样设置不同的配置:

代码语言:javascript
运行
复制
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_config下设置选项的。这将是要应用的选项集。mail_test是一个配置示例。通过设置mail_config.mail_test2mail_config.corporate_mailmail_config.production等,您可以拥有多个。

接下来,创建一个从Zend_Application_Resource_Mail扩展的空类。最好,它应该被命名和放置,以便可以自动加载。

类:

代码语言:javascript
运行
复制
<?php

class Application_Service_MailSettings extends Zend_Application_Resource_Mail { }

现在,我们来看看如何用其他东西轻松覆盖默认的邮件配置。

此示例假设您在控制器中:

代码语言:javascript
运行
复制
    // 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');

这应该只需要很少的新代码就能完成您想要的功能。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8274476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档