basic package for mailtoplone
Project description
mailtoplone.base
Overview
basic package for mailtoplone
Dependencies
Additional egg dependecies
icalendar python-dateutil
Contents
Content Types
InBox:
Provides an XMLRPCView to access it’s drop method. Dropping a mailstring ( a plaintext string containing the whole email including envelope), a plone content type Email will be generated, the data field will contain the mailstring.
Email:
File like content type conatining the mailstring inside the data field. View registered for IEmail: emailview ( as standard view ) shows:
headers Subject, From, To, Cc
body (prefers text/html parts over text/plain parts)
attachments (download link)
Adapters
MailDropBox:
Basic adapter, providing a drop method generating an Email out of the dropped mailstring
BlogMailDropBox:
Advanced adapter, creating a news item out of the dropped mailstring.
EventMailDropBox:
Advanced adapter, creating an event out of text/calendar attachments inside the dropped mailstring
Utilities
BaseDropBoxFactory:
Used to find objects providing IMailDropBoxMarker with id=key. Used by the deliver action in mailtoplone.contentrules.
ICalEventFactory:
Taking an icalendar string, this utility creates an ATEvent out of each VEVENT. The implementation supports keywordarguments, passing them to invokeFactory. This implementation correctly imports events exported from plone, as a first approach. It is used by the EventMailDropBox.
MarkerInterfaces
You can use these markerinterfaces (@@manage_interfaces) to mark a folder for mailtoplone (remember to reindex the marked object). Afterwards the folder can be found and delivered mails to.
- IMailDropBoxMarker(Interface):
“”” marker interface for mail drop boxes “””
- IBlogMailDropBoxMarker(IMailDropBoxMarker):
“”” marker interface for blog mail drop boxes “””
- IEventMailDropBoxMarker(IMailDropBoxMarker):
“”” marker interface for event mail drop boxes “””
Scripts
dropemail:
File system python script, to drop a mail to an inbox(url), specify the mail as file or use stdin
vim: set ft=rst tw=75 nocin nosi ai sw=4 ts=4 expandtab:
Change history
Changelog
0.2.7 (2009-07-22)
use subject to generate id for type Email, so we avoid being limited to 1000 emails per dropbox (fixes #7) [hplocher]
0.2.6 (2008-12-02)
fix dependency in setup.py to now require python-dateutil (was dateutil earlier)
correct propertiestool.xml to not purge, and only add Email to typesUseViewActionInListings [hplocher]
for earlier changes see included CHANGELOG
Detailed Documentation
mailtoplone.base
Setup TestEnvironment
Setting up a inbox containing email1, email2:
>>> self.setRoles(('Manager',)) >>> self.portal.invokeFactory('InBox', 'inbox') 'inbox' >>> self.portal.inbox.invokeFactory('Email', 'email1') 'email1' >>> self.portal.inbox.invokeFactory('Email', 'email3') 'email3'
Adapter
Let’s test the drop function useable with the MailDropBox Adapter, The dropped mails get their id’s using the NameChooser:
>>> from mailtoplone.base.interfaces import IMailDropBox >>> IMailDropBox(self.portal.inbox).drop("some data") >>> IMailDropBox(self.portal.inbox).drop("some data") >>> IMailDropBox(self.portal.inbox).drop("some data") >>> self.portal.inbox.objectIds() ['email1', 'email3', 'email', 'email-1', 'email-2']
Let’s test some values of a created email:
>>> self.portal.inbox.email.title 'email' >>> self.portal.inbox.email.data 'some data' >>> self.portal.inbox.email.meta_type 'Email'
Browserview xmlrpcview
Let’s test if the xmlrpcview has a drop method which creates an Email in the inbox:
>>> theview = self.portal.inbox.restrictedTraverse('xmlrpcview') >>> theview.drop("dropped via view") >>> self.portal.inbox.objectIds() ['email1', 'email3', 'email', 'email-1', 'email-2', 'email-3'] >>> self.portal.inbox.listFolderContents()[5].data 'dropped via view'
Email title
We generate the tile for email objects out of the subject, otherwise we’ll take the id.
First, let’s create various minimalistic emails:
>>> withsubject = 'subject: withsubject' >>> withSubject = 'Subject: withSubject' >>> withbetreff = 'betreff: withbetreff' >>> withBetreff = 'Betreff: withBetreff'
Let’s drop this emails to our inbox:
>>> theview.drop(withsubject) >>> self.portal.inbox.listFolderContents()[6].Title() 'withsubject' >>> theview.drop(withSubject) >>> self.portal.inbox.listFolderContents()[7].Title() 'withSubject' >>> theview.drop(withbetreff) >>> self.portal.inbox.listFolderContents()[8].Title() 'withbetreff' >>> theview.drop(withBetreff) >>> self.portal.inbox.listFolderContents()[9].Title() 'withBetreff'
If we have multiple subject / betreff / … in our mail, let’s take the first Subject:
>>> theview.drop('Subject: SUB\nBetreff: BET') >>> self.portal.inbox.listFolderContents()[10].Title() 'SUB'
We decode the subject header for presentation, let’s drop an encoded subject:
>>> theview.drop('Subject: =?ISO-8859-15?Q?=FCld=F6m?=') >>> self.portal.inbox.listFolderContents()[11].Title() == 'üldöm' True
vim: set ft=rst tw=75 nocin nosi ai sw=4 ts=4 expandtab:
Contributors
Hans-Peter Locher, InQuant GmbH
Stefan Eletzhofer, InQuant GmbH
Download
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file mailtoplone.base-0.2.7.zip
.
File metadata
- Download URL: mailtoplone.base-0.2.7.zip
- Upload date:
- Size: 138.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a20c44e67a120a4792f1355589fda0a3b47b4b3a1b4051cd98a8c01dbd8ecc30 |
|
MD5 | ccf24b1e9c99f313502f9d7370653882 |
|
BLAKE2b-256 | 10d0c64371f5e0059ba5374dd3667e97a31fa6b9e1b24b207fa6372d9d6c5f57 |