|
31 | 31 | from email.mime.text import MIMEText as _MIMEText |
32 | 32 | from email.utils import formataddr as _formataddr |
33 | 33 | from email.utils import parseaddr as _parseaddr |
| 34 | +import mailbox as _mailbox |
34 | 35 | import imaplib as _imaplib |
35 | 36 | import io as _io |
36 | 37 | import smtplib as _smtplib |
37 | 38 | import subprocess as _subprocess |
38 | 39 | import sys as _sys |
39 | 40 | import time as _time |
| 41 | +import os as _os |
40 | 42 |
|
41 | 43 | from . import LOG as _LOG |
42 | 44 | from . import config as _config |
@@ -199,6 +201,14 @@ def imap_send(message, config=None, section='DEFAULT'): |
199 | 201 | finally: |
200 | 202 | imap.logout() |
201 | 203 |
|
| 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 | + |
202 | 212 | def _decode_header(header): |
203 | 213 | """Decode RFC-2047-encoded headers to Unicode strings |
204 | 214 |
|
@@ -340,6 +350,8 @@ def send(sender, recipient, message, config=None, section='DEFAULT'): |
340 | 350 | config=config, section=section) |
341 | 351 | elif protocol == 'imap': |
342 | 352 | imap_send(message=message, config=config, section=section) |
| 353 | + elif protocol == 'maildir': |
| 354 | + maildir_send(message=message, config=config, section=section) |
343 | 355 | else: |
344 | 356 | sendmail_send( |
345 | 357 | sender=sender, recipient=recipient, message=message, |
|
0 commit comments