Skip to content

Commit 1e479ff

Browse files
committed
Add support for Maildir
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
1 parent f538253 commit 1e479ff

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

rss2email/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ def setup_html2text(self, section='DEFAULT'):
193193
('imap-port', str(143)),
194194
('imap-ssl', str(False)), # connect to the IMAP server using SSL
195195
('imap-mailbox', 'INBOX'), # where we should store new messages
196+
# Maildir configuration
197+
('maildir-path', '~/Maildir'),
198+
('maildir-mailbox', 'INBOX'),
196199

197200
### Miscellaneous
198201
# Verbosity (one of 'error', 'warning', 'info', or 'debug').

rss2email/email.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@
3131
from email.mime.text import MIMEText as _MIMEText
3232
from email.utils import formataddr as _formataddr
3333
from email.utils import parseaddr as _parseaddr
34+
import mailbox as _mailbox
3435
import imaplib as _imaplib
3536
import io as _io
3637
import smtplib as _smtplib
3738
import subprocess as _subprocess
3839
import sys as _sys
3940
import time as _time
41+
import os as _os
4042

4143
from . import LOG as _LOG
4244
from . import config as _config
@@ -199,6 +201,14 @@ def imap_send(message, config=None, section='DEFAULT'):
199201
finally:
200202
imap.logout()
201203

204+
def maildir_send(message, config=None, section='DEFAULT'):
205+
if config is None:
206+
config = _config.CONFIG
207+
path = config.get(section, 'maildir-path')
208+
mailbox = config.get(section, 'maildir-mailbox')
209+
maildir = _mailbox.Maildir(_os.path.join(path, mailbox))
210+
maildir.add(message)
211+
202212
def _decode_header(header):
203213
"""Decode RFC-2047-encoded headers to Unicode strings
204214
@@ -340,6 +350,8 @@ def send(sender, recipient, message, config=None, section='DEFAULT'):
340350
config=config, section=section)
341351
elif protocol == 'imap':
342352
imap_send(message=message, config=config, section=section)
353+
elif protocol == 'maildir':
354+
maildir_send(message=message, config=config, section=section)
343355
else:
344356
sendmail_send(
345357
sender=sender, recipient=recipient, message=message,

0 commit comments

Comments
 (0)