Zend フレームワークを使用しています。
Zend_Mail の application.ini に複数のメール構成を配置する必要があります (Zend_Application_Resource_Mail を使用)。Zend Framework の標準クラスを使用してこれを行うことは可能ですか、それとも独自のクラスを作成する必要がありますか?
Zend Framework の最新の安定版を使用しています。
答えてくれてありがとう
Zend フレームワークを使用しています。
Zend_Mail の application.ini に複数のメール構成を配置する必要があります (Zend_Application_Resource_Mail を使用)。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_test2
、、mail_config.corporate_mail
などを設定することで複数持つことができますmail_config.production
。
次に、から拡張する空のクラスを作成しますZend_Application_Resource_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');
これにより、ごくわずかな新しいコードで目的を達成できるはずです。