forked from mirror/django-mailbox
archive and delete
This commit is contained in:
parent
1f6014918c
commit
b39299692a
4 changed files with 21 additions and 6 deletions
|
|
@ -251,6 +251,7 @@ class Mailbox(models.Model):
|
|||
conn = Office365Transport(
|
||||
self.location,
|
||||
self.username,
|
||||
archive=self.archive,
|
||||
folder=self.folder
|
||||
)
|
||||
conn.connect(self.client_id, self.client_secret, self.tenant_id)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
class Office365Transport(EmailTransport):
|
||||
def __init__(
|
||||
self, hostname, username, folder=None
|
||||
self, hostname, username, archive='', folder=None
|
||||
):
|
||||
self.integration_testing_subject = getattr(
|
||||
settings,
|
||||
|
|
@ -18,6 +18,7 @@ class Office365Transport(EmailTransport):
|
|||
)
|
||||
self.hostname = hostname
|
||||
self.username = username
|
||||
self.archive = archive
|
||||
self.folder = folder
|
||||
|
||||
def connect(self, client_id, client_secret, tenant_id):
|
||||
|
|
@ -39,6 +40,9 @@ class Office365Transport(EmailTransport):
|
|||
self.mailbox_folder = self.mailbox.get_folder(folder_name=self.folder)
|
||||
|
||||
def get_message(self, condition=None):
|
||||
if self.archive:
|
||||
self.mailbox.create_child_folder(self.archive)
|
||||
|
||||
for message in self.mailbox.get_messages(order_by='receivedDateTime'):
|
||||
try:
|
||||
mime_content = message.get_mime_content()
|
||||
|
|
@ -50,5 +54,10 @@ class Office365Transport(EmailTransport):
|
|||
yield message
|
||||
except MessageParseError:
|
||||
continue
|
||||
|
||||
if self.archive:
|
||||
message.copy(self.archive)
|
||||
|
||||
message.delete()
|
||||
return
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
class Office365Transport(EmailTransport):
|
||||
def __init__(
|
||||
self, hostname, username, folder=None
|
||||
self, hostname, username, archive='', folder=None
|
||||
):
|
||||
self.integration_testing_subject = getattr(
|
||||
settings,
|
||||
|
|
@ -18,6 +18,7 @@ class Office365Transport(EmailTransport):
|
|||
)
|
||||
self.hostname = hostname
|
||||
self.username = username
|
||||
self.archive = archive
|
||||
self.folder = folder
|
||||
|
||||
def connect(self, client_id, client_secret, tenant_id):
|
||||
|
|
@ -39,6 +40,9 @@ class Office365Transport(EmailTransport):
|
|||
self.mailbox_folder = self.mailbox.get_folder(folder_name=self.folder)
|
||||
|
||||
def get_message(self, condition=None):
|
||||
if self.archive:
|
||||
self.mailbox.create_child_folder(self.archive)
|
||||
|
||||
for message in self.mailbox.get_messages(order_by='receivedDateTime'):
|
||||
try:
|
||||
mime_content = message.get_mime_content()
|
||||
|
|
@ -47,12 +51,13 @@ class Office365Transport(EmailTransport):
|
|||
if condition and not condition(message):
|
||||
continue
|
||||
|
||||
#TODO: implement archive function
|
||||
|
||||
yield message
|
||||
except MessageParseError:
|
||||
continue
|
||||
|
||||
# TODO: delete all messages
|
||||
if self.archive:
|
||||
message.copy(self.archive)
|
||||
|
||||
message.delete()
|
||||
return
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
:target: https://pypi.python.org/pypi/django-mailbox
|
||||
|
||||
|
||||
Easily ingest messages from POP3, IMAP, Office365 or local mailboxes into your Django application.
|
||||
Easily ingest messages from POP3, IMAP, Office365 API or local mailboxes into your Django application.
|
||||
|
||||
This app allows you to either ingest e-mail content from common e-mail services (as long as the service provides POP3 or IMAP support),
|
||||
or directly receive e-mail messages from ``stdin`` (for locally processing messages from Postfix or Exim4).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue