2011-09-12 13 views
0

私はsmtpでメールを送る必要があります。何が最善のアプローチです:hereのようなapplication.iniのすべてを宣言するか、またはモジュールを書きますか?zend framework送信メール

実例はありますか?

よろしく アンドレア

答えて

8
resources.mail.transport.type = smtp 
resources.mail.transport.host = "server.smtp.com" 
resources.mail.transport.auth = login 
resources.mail.transport.username = "[email protected]" 
resources.mail.transport.password = "ultraPass" 
resources.mail.transport.ssl = ssl 
resources.mail.transport.port = 465 
resources.mail.transport.register = true ; True by default 

resources.mail.defaultFrom.email = [email protected] 
resources.mail.defaultFrom.name = "The bank" 
resources.mail.defaultReplyTo.email = [email protected] 
resources.mail.defaultReplyTo.name = "replier" 

上記は私がのapplication.iniファイルの私の生産セクションに持っているものです。私は、次の

$view = $this->getView(); 

    $mail = new Zend_Mail(); 

    $emailText = $view->render('theEmailFileSomewhere.phtml'); 

    $mail->addTo($emailAddress, $usersfirstname) 
      ->setSubject('Hi ' . $usersfirstname . '!') 
      ->setBodyText($emailText, $this->_charset) //charset is utf-8 
      ->send(); 

    return true; 

を行うメールを送信したい場合

その後、私のプロは、後に、iniファイルの開発セクションでは、私は簡単なファイルのメーラーにこれを変更することができるということです。そのため、電子メールは実際に電子メールを送信するのではなく、ローカルシステム上のファイルとして出力されます。

別のプロは、アプリをインストールしている誰かがiniファイルからすべてのことを行うことができるということです。

ただし、これを行うためにリソースを設定することもできます。

これは、あなたのクレデンシャルとすべてが.iniファイルにあるということです。

あなたが行うことができるのは、環境変数から資格情報を引き出すリソースをセットアップすることです。これにより、クレジットが決してアプリケーションの一部である必要はありません。

リソースをこのように設定すると、アプリケーションをインストールする人は、環境変数の設定について知っていなければなりません。また、冗長なエラーを追加しない限り、自分自身を把握するのは難しいでしょう。

あなたが興味があるなら、これは私がiniの開発セクションに置いたものです。

この場合、My_Service_Emailは、ビュースクリプトを使用して電子メールを送信するクラスです。開発時にgenerateEmailFilenameが呼び出され、電子メールファイルの名前が生成されます。電子メールが互いに上書きしないように、ファイル名をタイムスタンプで作成するだけです。これは私のテスト目的には少なくとも十分です。ほとんどの場合、私は、ビュースクリプトのテキストが電子メールに向かっているのを見たいだけです。

+0

これは魅力的です!詳細な回答ありがとうございます;) – cwhisperer

関連する問題