2011-11-25 7 views
3

私はZend Frameworkを使用しています。application.iniの複数のZend_Mail設定

(Zend_Application_Resource_Mailを使用して)Zend_Mailのapplication.iniに複数のメール設定を入れる必要があります。 Zend Frameworkの標準クラスを使用してこれを行うことは可能ですか、自分のクラスを作成する必要はありますか?

私は最新の安定版のZend Frameworkを使用しています。

答えてくれてありがとう

答えて

3

Zend_Application_Resource_MailとZend_Mailを使用するために複数の構成を設定することが可能であることが表示されません。

application.iniにさまざまな設定を追加できますが、目的の設定をアクティブにするために独自のクラス/関数を作成する必要があります。

あなたが上書きしなければならないZend_Application_Resource_Mailによって設定されるものは、Zend_Mail::setDefaultTransport($newTransport);,Zend_Mail::setDefaultReplyTo($email);、およびZend_Mail::setDefaultFrom($email);です。

私は何かを試して、簡単にできることを見つけました。我々はmail_config下のオプションを設定する方法を

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 = [email protected] 
mail_config.mail_test.defaultFrom.name = "John Doe" 
mail_config.mail_test.defaultReplyTo.email = [email protected] 
mail_config.mail_test.defaultReplyTo.name = "Jane Doe" 

注:

はのapplication.iniで、このようなあなたの異なる構成を設定します。これが適用される一連のオプションになります。 mail_testが構成例です。あなたがmail_config.mail_test2mail_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'); 

この例では、コントローラである前提としています。

関連する問題