gpt4 book ai didi

zend-mail - application.ini 中的多个 Zend_Mail 配置

转载 作者:行者123 更新时间:2023-12-03 08:00:41 25 4
gpt4 key购买 nike

我正在使用 Zend Framework。

我需要为 Zend_Mail(使用 Zend_Application_Resource_Mail)在 application.ini 中放置多个邮件配置。是否可以使用 Zend Framework 中的标准类来执行此操作,还是我需要创建自己的类?

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

感谢您的回答

最佳答案

似乎无法使用 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 中像这样设置不同的配置:

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 扩展的空类。最好对其进行命名和放置,以便自动加载。

类(class):

<?php

class Application_Service_MailSettings extends Zend_Application_Resource_Mail { }

现在,这里是如何用其他东西轻松覆盖默认邮件配置。

这个例子假设你在一个 Controller 中:

    // 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');

这应该可以用很少的新代码完成您想要的。

关于zend-mail - application.ini 中的多个 Zend_Mail 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com