0

Doctrine 1.2.4 でバージョン 1.10.8 を使用する Zend Framework プロジェクトがあります。アクションがリソースである Zend_Auth と Zend_Acl を使用します。最近、ニュースレターの機能を追加しましたが、一緒にどのようにプレイするかを考えています。実際のニュースレターを作成するのはこれが初めてで、さらに Zend も使用しています。

したがって、私の最初のアプローチは、データベースに接続してテンプレートを取得し、サブスクライバーの名前とメールを取得するためのphpスクリプトを用意することです。ユーザー向けにカスタマイズするためのテンプレートを解析して送信します。私はswiftMailerを使用します。そのため、すべての期間でそのファイルを呼び出す cron ジョブを設定します。

今、私の心配はACLにあります。スクリプトがZendの外にある場合(つまり、私のプロジェクト)、Zendアクション(url)を押してすべてのスタッフを実行します。 ?

ZF を使用するための他のアプローチは何ですか。ありがとう

4

1 に答える 1

2

特定の URL、つまり /newsletter/send にアクセスするために必要なリソースには、すべての人がアクセスできます。そのページのコンテンツはまったく面白くないので、実際の人がその URL にアクセスしても問題ありません =)

スクリプト自体は、送信するメールがあるかどうかを確認し、DB などからすべてのユーザーを取得するだけです。ニュースレターの方法論は、Zend にほとんど依存していません。

ただし、Zend と Zend_Mail でも簡単にテンプレートを作成できます。これは、Zend で電子メールを処理する方法です。

$mail = new Zend_Mail('UTF-8');

$mailView = new Zend_View();
$mailView->setScriptPath(APPLICATION_PATH.'/views/email/');
$mailView->assign('title', $this->_report->getTitle());
$mailView->assign('text', $this->_report->getText());

$mail->addTo($user->getEmail(), $user->getFullnameBySurname());
$mail->setBodyHtml($mailView->render('emailregular.phtml')); // /application/views/email/emailregular.phtml
$mail->setBodyText(strip_tags($mailView->render('emailregular.phtml'))); //might not be the cleanest way...

try {
    $mail->send();
    $mail->clearRecipients(); // This clears the addTo() for Zend_Mail as in my script i only have one instance of zend_mail open while looping through several users
    $this->_log->info('Mail out for user ....');
  } catch (Zend_Mail_Transport_Exception $e) {
    $this->_log->error('Zend_Mail_Transport_Exception for User('.$user->getid().') - Mails were not accepted for sending: '.$e->getMessage());
  } catch (Zend_Mail_Protocol_Exception $e) {
    $this->_log->error('Zend_Mail_Protocol_Exception for User('.$user->getid().') - SMTP Sentmail Error: '.$e->getMessage());
  } catch (Exception $e) {
    $this->_log->error('Unknown Exception for User('.$user->getid().') - SMTP Sentmail Error: '.$e->getMessage());
  }

これがあなたが求めているものであることを願っています=)

于 2012-06-18T05:18:30.160 に答える