loops/integrator/mail/interfaces.py
helmutm a78ec01d5c mail (IMAP) integration basically working
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3537 fd906abe-77d9-0310-91a1-e0d9ade77398
2009-09-05 12:46:59 +00:00

87 lines
3 KiB
Python

#
# Copyright (c) 2009 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""
Integrator interfaces for email representation.
$Id$
"""
from zope.interface import Interface, Attribute
from zope import interface, component, schema
from loops.integrator.interfaces import IExternalCollection
from loops.interfaces import ITextDocument
from loops.util import _
# mail collections
class IMailCollection(IExternalCollection):
""" A concept representing a collection of emails that may be
actively retrieved from an external system using the parameters
given.
"""
providerName = schema.TextLine(
title=_(u'Provider name'),
description=_(u'The name of a utility that provides the '
u'external objects; default is an IMAP collection provider.'),
default=u'imap',
required=False)
baseAddress = schema.TextLine(
title=_(u'Host name'),
description=_(u'The host name part for accessing the '
u'external mail system, i.e. the mail server.'),
required=True)
userName = schema.TextLine(
title=_(u'User name'),
description=_(u'The user name for logging in to the mail server.'),
required=False)
password = schema.Password(
title=_(u'Password'),
description=_(u'The password for logging in to the mail server.'),
required=False)
# mail resources
class IMailResource(ITextDocument):
""" A resource adapter representing an email.
"""
externalAddress = schema.BytesLine(
title=_(u'External Address'),
description=_(u'The full address of the email in the external '
u'email system.'),
default='',
missing_value='',
required=False)
sender = schema.TextLine(
title=_(u'Sender'),
description=_(u'The email address of sender of the email.'),
required=False)
receiver = schema.TextLine(
title=_(u'Receiver'),
description=_(u'One or more email addresses of the receiver(s) of '
u'the email message.'),
required=False)
date = schema.Date(
title=_(u'Date'),
description=_(u'The date/time the email message was sent.'),
required=False,)