CakePHP メールé€ä¿¡è¨±å¯ãƒ•ラグã«ã‚ˆã£ã¦ãƒ¡ãƒ¼ãƒ«ã‚’一斉é€ä¿¡ã™ã‚‹ãƒ¡ãƒ¼ãƒ«ãƒ“ヘイビア
CakePHP 1 Comment »Acts As Emailable | The Bakery, Everything CakePHP : Articles
メールé€ä¿¡è¨±å¯ãƒ•ラグã«ã‚ˆã£ã¦ãƒ¡ãƒ¼ãƒ«ã‚’一斉é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãるメールビヘイビアãŒä¸Šè¨˜ã‚¨ãƒ³ãƒˆãƒªã§ç´¹ä»‹ã•れã¦ã„ã¾ã™ã€‚
ビヘイビアã¨ã„ã†ã®ã¯ä»Šã¾ã§ä½¿ã£ãŸã“ã¨ãŒãªã‹ã£ãŸã®ã§ã™ãŒã€ãƒ¢ãƒ‡ãƒ«ã«å…±é€šã®æŒ¯ã‚‹èˆžã„ã‚’ã•ã›ã‚‹ã‚ˆã†ãªã¨ãã«ä½¿ã†æ„Ÿã˜ã§ã—ょã†ã‹ã€‚ã“ã®ãƒ¡ãƒ¼ãƒ«ãƒ“ヘイビアã¯ãƒ¢ãƒ‡ãƒ«ã«ãƒ¡ãƒ¼ãƒ«ã®ä¸€æ–‰é€ä¿¡æ©Ÿèƒ½ã‚’ä»˜åŠ ã—ã¾ã™ã€‚
テーブル
CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(255) NOT NULL default '', `emailable` tinyint(4) NOT NULL default '1', `email` text NOT NULL, PRIMARY KEY (`id`) )
emailable カラム㯠0 or 1 ã®å€¤ã§ã€1ã®å ´åˆã¯ãƒ¡ãƒ¼ãƒ«é€ä¿¡è¨±å¯ã§ã™ã€‚
email カラムã¯ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå…¥ã‚Šã¾ã™ã€‚
モデル
app/models/user.php
< ?php
class User extends AppModel {
var $actsAs = array('emailable');
}
?>
モデルã§ãƒ¡ãƒ¼ãƒ«ãƒ“ヘイビアを使ã†ã“ã¨ã‚’定義ã—ã¾ã™ã€‚
ビヘイビア
Acts As Emailable | The Bakery, Everything CakePHP : Articles ã«ãƒ¡ãƒ¼ãƒ«ãƒ“ヘイビアã®ã‚³ãƒ¼ãƒ‰ãŒã‚りã¾ã™ã€‚
ã“れを app/models/behaviors/emailable.php ã¨ã—ã¦ä¿å˜ã—ã¾ã™ã€‚
ãŸã ã—1点修æ£ãŒå¿…è¦ã§ã—ãŸã€‚
322行目ã®
App::import('Component', 'EmailComponent');
ã‚’
App::import('Component', 'Email');
ã¨ã—ã¦ä¿å˜ã—ã¦ãã ã•ã„。
Email コンãƒãƒ¼ãƒãƒ³ãƒˆãŒä¿®æ£å‰ã®ã‚³ãƒ¼ãƒ‰ã§ã¯èªã¿è¾¼ã‚ãšã«ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚
メールテンプレート
< ?php
echo "テストメッセージã§ã™ã€‚åå‰ã¯".$username."ã§ã™";
?>
ä¿å˜å…ˆã§ã™ãŒã€ã©ã“ãŒã„ã„ã®ã‹æ‚©ã¿ã¾ã—ãŸãŒä»Šå›žã¯ app/views/emails/test_template.php ã¨ã—ã¾ã—ãŸã€‚
テンプレート内ã®å¤‰æ•°ã¯ãƒ¢ãƒ‡ãƒ«ã®ã‚«ãƒ©ãƒ åãŒä½¿ç”¨ã§ãã¾ã™ã€‚
メールé€ä¿¡
$email_options = array('from' => 'hoge@example.com', 'subject' => 'テストã§ã™');
$template = "views/emails/test_template.php";
$this->User->send_campaign_to_emailable($template, $email_options);
ã“れã§ãƒ¡ãƒ¼ãƒ«é€ä¿¡è¨±å¯ã—ã¦ã„る(users.emailable=1)ã®ãƒ¦ãƒ¼ã‚¶ã«ãƒ¡ãƒ¼ãƒ«ãŒé€ä¿¡ã•れã¾ã™ã€‚
ãã®ã»ã‹ã«ä»¥ä¸‹ã®ã‚ˆã†ãªãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚りã¾ã™ã€‚
send_campaign_to_all($template, $email_options)
登録ã•れã¦ã„るユーザ全ã¦ã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã™ã€‚
send_campaign_to_non_emailable($template, $email_options)
登録ã•れã¦ã„るユーザã§ãƒ¡ãƒ¼ãƒ«é€ä¿¡è¨±å¯ã—ã¦ã„ãªã„ユーザã«ãƒ¡ãƒ¼ãƒ«ã‚’é€ä¿¡ã—ã¾ã™ã€‚
add_emailable($id)
ID ã§æŒ‡å®šã—ãŸãƒ¦ãƒ¼ã‚¶ã® emailable=1 ã«ã—ã¾ã™ã€‚
remove_emailable($id)
ID ã§æŒ‡å®šã—ãŸãƒ¦ãƒ¼ã‚¶ã® emailable=0 ã«ã—ã¾ã™ã€‚
デフォルト㯠mail 関数ã§ãƒ¡ãƒ¼ãƒ«é€ä¿¡ã—ã¾ã™ãŒã€SMTP を指定ã—ã¦é€ä¿¡ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
ã¾ã¨ã‚
ã“ã®ãƒ¡ãƒ¼ãƒ«ãƒ“ヘイビアを今回試ã™ã“ã¨ã«ã‚ˆã£ã¦ãƒ“ヘイビアã®ä½¿ã„æ–¹ã€ä¾¿åˆ©ã•ãŒå°‘ã—ç†è§£ã§ãã¾ã—ãŸã€‚ã¾ã ビヘイビアを試ã•れã¦ã„ãªã„æ–¹ã¯ä¸€åº¦è©¦ã—ã¦è¦‹ã¦ã¯ã„ã‹ãŒã§ã—ょã†ã‹ï¼Ÿ
Recent Comments