wip
This commit is contained in:
parent
829be8413b
commit
ed18b0c89c
@ -29,7 +29,7 @@ from .poputils import (
|
|||||||
end,
|
end,
|
||||||
Request,
|
Request,
|
||||||
MailEntry,
|
MailEntry,
|
||||||
get_mail,
|
get_mail_fp,
|
||||||
get_mails_list,
|
get_mails_list,
|
||||||
MailList,
|
MailList,
|
||||||
)
|
)
|
||||||
@ -217,7 +217,12 @@ def trans_command_retr(mails: MailList, req: Request) -> None:
|
|||||||
entry = mails.get(req.arg1)
|
entry = mails.get(req.arg1)
|
||||||
if entry:
|
if entry:
|
||||||
write(ok("Contents follow"))
|
write(ok("Contents follow"))
|
||||||
write(get_mail(entry))
|
with get_mail_fp(entry) as fp:
|
||||||
|
for line in fp:
|
||||||
|
if line[0] == b'.':
|
||||||
|
write(b'.')
|
||||||
|
write(line)
|
||||||
|
# write(get_mail(entry))
|
||||||
write(end())
|
write(end())
|
||||||
mails.delete(req.arg1)
|
mails.delete(req.arg1)
|
||||||
else:
|
else:
|
||||||
|
@ -2,6 +2,7 @@ import os
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from contextlib import contextmanager
|
||||||
|
|
||||||
|
|
||||||
class ClientError(Exception):
|
class ClientError(Exception):
|
||||||
@ -124,6 +125,12 @@ def set_nid(entries: list[MailEntry]):
|
|||||||
entry.nid = i
|
entry.nid = i
|
||||||
|
|
||||||
|
|
||||||
|
@contextmanager
|
||||||
|
def get_mail_fp(entry: MailEntry):
|
||||||
|
with open(entry.path, mode="rb") as fp:
|
||||||
|
yield fp
|
||||||
|
|
||||||
|
|
||||||
def get_mail(entry: MailEntry) -> bytes:
|
def get_mail(entry: MailEntry) -> bytes:
|
||||||
with open(entry.path, mode="rb") as fp:
|
with open(entry.path, mode="rb") as fp:
|
||||||
return fp.read()
|
return fp.read()
|
||||||
|
@ -21,7 +21,13 @@ AQXWXSWNGAEPGIMG2F3QDKBXL3MRHY6K2BPID64ZR6LABLPVSF
|
|||||||
TEST_USER = "foobar"
|
TEST_USER = "foobar"
|
||||||
TEST_MBOX = "foobar_mails"
|
TEST_MBOX = "foobar_mails"
|
||||||
|
|
||||||
USERS = [User(username=TEST_USER, password_hash=TEST_HASH, mbox=TEST_MBOX)]
|
TEST_USER2 = "foo2"
|
||||||
|
TEST_MBOX2 = "foo2mails"
|
||||||
|
|
||||||
|
USERS = [
|
||||||
|
User(username=TEST_USER, password_hash=TEST_HASH, mbox=TEST_MBOX),
|
||||||
|
User(username=TEST_USER2, password_hash=TEST_HASH, mbox=TEST_MBOX2),
|
||||||
|
]
|
||||||
|
|
||||||
MAILS_PATH: Path
|
MAILS_PATH: Path
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user