Personal tools
You are here: Home 清水川記 Ploneのワークフローでメール通知する
Document Actions

Ploneのワークフローでメール通知する

ryouseiさんの資料 を横目で見つつ、 [zope-users:04900] [Q] customize workflow with script を参考にしながら作ってみました。 それにしても、スクリプトが受け取る引数の型がStateChangeInfoだとか、StateChangeInfo.objectが対象ページのインスタンスだとか、どうやって知るんだろう?自分は前述の資料とgrepで知りました。

以下、とりあえず動くスクリプトです。

emailモジュールを使っているので、Script(Python)で使えるようにしておく必要があります。

## Script (Python) "mail_notify"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=sci
##title=
##
try:
    
mail = container.MailHost

    
hist = sci.getHistory()
    
hist = hist[-1]
    
obj = sci.object

    
data = []
    
data.append( "URL: " + obj.absolute_url() )
    
data.append( "Date: " + str(sci.getDateTime()) )
    
data.append( "Actor: " + hist['actor'])
    
data.append( "Title: " + obj.title_or_id() )
    
data.append( "Desc: " + obj.Description() )


    
data = '\n'.join(data)

    
from email.Header import Header
    
title = Header(unicode(obj.title_or_id(),'utf-8').encode('iso-2022-jp','replace'), 'iso-2022-jp')

    
msg = """\
From: test@example.com
To: test@example.com
Subject: published: %s
Content-Type: text/plain; charset="iso-2022-jp"

Page published.

%s
"""
 % (title, data)

    
msg = unicode(msg,'utf-8').encode('iso-2022-jp','replace')
    
mail.send(msg)

except:
    
pass
Category(s)
Plone Plone
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)

« July 2010 »
Mo Tu We Th Fr Sa Su
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
About this blog
Zope, Python, FreeBSD, その他色々について。つまり日記か。
Categories
Agile(XP) (0)
Event (10)
Pattern (0)
その他 (10)
Zope (11)
Memo (0)
(3)
python (17)
Programming (0)
Game (0)
OO (0)
Unix (0)
WZ (0)
work (0)
Plone (11)
Windows (1)
IT-PC (4)
自転車 (0)
TurboGears (0)
ダーツ (0)
JavaScript (0)
旅行 (0)
Web (3)
セキュリティー (1)
Django (0)
LDAP (0)
データベース (0)
vi/vim/gvim (0)
C/C++ (0)
ボドゲ (0)
RoR (2)
pyspa (1)
スタトレ (0)