mirror of
https://github.com/chatmail/relay.git
synced 2026-11-04 04:04:15 +00:00
Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de2d964afc | ||
|
|
4a36cc79a0 | ||
|
|
daffa925ab | ||
|
|
5facce617b | ||
|
|
eec041a44e | ||
|
|
f27de2ad24 | ||
|
|
a3693f07c5 | ||
|
|
305d83fff3 |
@@ -5,9 +5,9 @@
|
|||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"sourceId": "gplay",
|
"sourceId": "gplay",
|
||||||
"versionInteger": 758,
|
"versionInteger": 760,
|
||||||
"versionString": "2.62.0",
|
"versionString": "2.67.0",
|
||||||
"downloadUrl": "https://github.com/deltachat/deltachat-android/releases/download/v2.62.0/deltachat-gplay-release-2.62.0.apk"
|
"downloadUrl": "https://github.com/deltachat/deltachat-android/releases/download/v2.67.0/deltachat-gplay-release-2.67.0.apk"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ from chatmaild.config import read_config
|
|||||||
from pyinfra import facts, host, logger
|
from pyinfra import facts, host, logger
|
||||||
from pyinfra.api import FactBase
|
from pyinfra.api import FactBase
|
||||||
from pyinfra.facts import hardware
|
from pyinfra.facts import hardware
|
||||||
|
from pyinfra.facts.files import Sha256File
|
||||||
from pyinfra.facts.systemd import SystemdEnabled
|
from pyinfra.facts.systemd import SystemdEnabled
|
||||||
from pyinfra.operations import apt, files, pip, server, systemd
|
from pyinfra.operations import apt, files, pip, server, systemd
|
||||||
|
|
||||||
@@ -38,6 +39,8 @@ from .postfix.deployer import PostfixDeployer
|
|||||||
from .selfsigned.deployer import SelfSignedTlsDeployer
|
from .selfsigned.deployer import SelfSignedTlsDeployer
|
||||||
from .www import build_webpages, find_merge_conflict, get_paths
|
from .www import build_webpages, find_merge_conflict, get_paths
|
||||||
|
|
||||||
|
OLD_JOURNALD_SHA256 = "107c678516c972d5293a67386458fd4785d467cfa2f2b7174185e9a74e034be5"
|
||||||
|
|
||||||
|
|
||||||
class Port(FactBase):
|
class Port(FactBase):
|
||||||
"""
|
"""
|
||||||
@@ -354,7 +357,15 @@ class IrohDeployer(Deployer):
|
|||||||
|
|
||||||
class JournaldDeployer(Deployer):
|
class JournaldDeployer(Deployer):
|
||||||
def configure(self):
|
def configure(self):
|
||||||
self.put_file("journald.conf", "/etc/systemd/journald.conf")
|
self.put_file("90-volatile-logging.conf", "/etc/systemd/journald.conf.d/90-volatile-logging.conf")
|
||||||
|
if host.get_fact(Sha256File, "/etc/systemd/journald.conf") == OLD_JOURNALD_SHA256:
|
||||||
|
server.shell(
|
||||||
|
name="Restore Debian's journald.conf",
|
||||||
|
commands=[
|
||||||
|
"rm /etc/systemd/journald.conf",
|
||||||
|
"DEBIAN_FRONTEND=noninteractive apt-get install -y --reinstall -o Dpkg::Options::=--force-confmiss systemd",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
def activate(self):
|
def activate(self):
|
||||||
self.ensure_service("systemd-journald.service")
|
self.ensure_service("systemd-journald.service")
|
||||||
|
|||||||
@@ -68,6 +68,11 @@ http {
|
|||||||
|
|
||||||
listen 127.0.0.1:8443 ssl default_server;
|
listen 127.0.0.1:8443 ssl default_server;
|
||||||
|
|
||||||
|
# nginx is reached through the stream proxy on port 443,
|
||||||
|
# so redirects it generates itself (e.g. /dir -> /dir/)
|
||||||
|
# must not contain the internal port 8443.
|
||||||
|
absolute_redirect off;
|
||||||
|
|
||||||
root {{ www_root }};
|
root {{ www_root }};
|
||||||
|
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ lmtp-filtermail_destination_concurrency_limit=10000
|
|||||||
|
|
||||||
# Do not try to deliver messages for more than 2 days.
|
# Do not try to deliver messages for more than 2 days.
|
||||||
maximal_queue_lifetime = 2d
|
maximal_queue_lifetime = 2d
|
||||||
|
bounce_queue_lifetime = 2d
|
||||||
|
|
||||||
{% if not config.ipv4_relay %}
|
{% if not config.ipv4_relay %}
|
||||||
# DKIM-sign locally generated mail (bounces, DSNs).
|
# DKIM-sign locally generated mail (bounces, DSNs).
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ def test_concurrent_logins_same_account(
|
|||||||
|
|
||||||
def test_no_vrfy(cmfactory, chatmail_config, maildomain):
|
def test_no_vrfy(cmfactory, chatmail_config, maildomain):
|
||||||
ac = cmfactory.get_online_account()
|
ac = cmfactory.get_online_account()
|
||||||
addr = ac.get_config("addr")
|
addr = ac.list_transports()[0]["addr"]
|
||||||
|
|
||||||
s = smtplib.SMTP(maildomain)
|
s = smtplib.SMTP(maildomain)
|
||||||
s.starttls()
|
s.starttls()
|
||||||
|
|||||||
@@ -133,8 +133,8 @@ def test_use_two_chatmailservers(cmfactory, maildomain2):
|
|||||||
ac1 = cmfactory.get_online_account()
|
ac1 = cmfactory.get_online_account()
|
||||||
ac2 = cmfactory.get_online_account(domain=maildomain2)
|
ac2 = cmfactory.get_online_account(domain=maildomain2)
|
||||||
cmfactory.get_accepted_chat(ac1, ac2)
|
cmfactory.get_accepted_chat(ac1, ac2)
|
||||||
domain1 = ac1.get_config("addr").split("@")[1]
|
domain1 = ac1.list_transports()[0]["addr"].split("@")[1]
|
||||||
domain2 = ac2.get_config("addr").split("@")[1]
|
domain2 = ac2.list_transports()[0]["addr"].split("@")[1]
|
||||||
assert domain1 != domain2
|
assert domain1 != domain2
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,10 @@ from cmdeploy.remote import rshell
|
|||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def imap_mailbox(cmfactory, ssl_context):
|
def imap_mailbox(cmfactory, ssl_context):
|
||||||
(ac1,) = cmfactory.get_online_accounts(1)
|
(ac1,) = cmfactory.get_online_accounts(1)
|
||||||
user = ac1.get_config("addr")
|
# Delta Chat 2.63 stopped writing the legacy addr and mail_pw config keys.
|
||||||
password = ac1.get_config("mail_pw")
|
transport = ac1.list_transports()[0]
|
||||||
|
user = transport["addr"]
|
||||||
|
password = transport["password"]
|
||||||
host = user.split("@")[1].strip("[").strip("]")
|
host = user.split("@")[1].strip("[").strip("]")
|
||||||
mailbox = imap_tools.MailBox(host, ssl_context=ssl_context)
|
mailbox = imap_tools.MailBox(host, ssl_context=ssl_context)
|
||||||
mailbox.login(user, password)
|
mailbox.login(user, password)
|
||||||
@@ -88,7 +90,7 @@ class TestEndToEndDeltaChat:
|
|||||||
ac1, ac2 = cmfactory.get_online_accounts(2)
|
ac1, ac2 = cmfactory.get_online_accounts(2)
|
||||||
chat = cmfactory.get_accepted_chat(ac1, ac2)
|
chat = cmfactory.get_accepted_chat(ac1, ac2)
|
||||||
|
|
||||||
user = ac2.get_config("configured_addr")
|
user = ac2.list_transports()[0]["addr"]
|
||||||
|
|
||||||
def parse_size_limit(limit: str) -> int:
|
def parse_size_limit(limit: str) -> int:
|
||||||
"""Parse a size limit and return the number of bytes as integer.
|
"""Parse a size limit and return the number of bytes as integer.
|
||||||
@@ -190,9 +192,10 @@ def test_hide_senders_ip_address(cmfactory, ssl_context):
|
|||||||
|
|
||||||
chat.send_text("testing submission header cleanup")
|
chat.send_text("testing submission header cleanup")
|
||||||
user2.wait_for_incoming_msg()
|
user2.wait_for_incoming_msg()
|
||||||
addr = user2.get_config("addr")
|
transport = user2.list_transports()[0]
|
||||||
|
addr = transport["addr"]
|
||||||
host = addr.split("@")[1].strip("[").strip("]")
|
host = addr.split("@")[1].strip("[").strip("]")
|
||||||
pw = user2.get_config("mail_pw")
|
pw = transport["password"]
|
||||||
mailbox = imap_tools.MailBox(host, ssl_context=ssl_context)
|
mailbox = imap_tools.MailBox(host, ssl_context=ssl_context)
|
||||||
mailbox.login(addr, pw)
|
mailbox.login(addr, pw)
|
||||||
msgs = list(mailbox.fetch(mark_seen=False))
|
msgs = list(mailbox.fetch(mark_seen=False))
|
||||||
|
|||||||
Reference in New Issue
Block a user