mirror of
https://github.com/chatmail/relay.git
synced 2026-05-20 04:48:06 +00:00
cleanly time out trying to connect to port 25 and treat failure as "skip" not real failure.
This commit is contained in:
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
## untagged
|
## untagged
|
||||||
|
|
||||||
|
- Handle Port-25 connect errors more gracefully (common with VPNs)
|
||||||
|
([#552](https://github.com/chatmail/relay/pull/552))
|
||||||
|
|
||||||
- Avoid "acmetool not found" during initial run
|
- Avoid "acmetool not found" during initial run
|
||||||
([#550](https://github.com/chatmail/relay/pull/550))
|
([#550](https://github.com/chatmail/relay/pull/550))
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,13 @@ def test_concurrent_logins_same_account(
|
|||||||
|
|
||||||
|
|
||||||
def test_no_vrfy(chatmail_config):
|
def test_no_vrfy(chatmail_config):
|
||||||
|
domain = chatmail_config.mail_domain
|
||||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
sock.connect((chatmail_config.mail_domain, 25))
|
sock.settimeout(10)
|
||||||
|
try:
|
||||||
|
sock.connect((domain, 25))
|
||||||
|
except socket.timeout:
|
||||||
|
pytest.skip(f"port 25 not reachable for {domain}")
|
||||||
banner = sock.recv(1024)
|
banner = sock.recv(1024)
|
||||||
print(banner)
|
print(banner)
|
||||||
sock.send(b"VRFY wrongaddress@%s\r\n" % (chatmail_config.mail_domain.encode(),))
|
sock.send(b"VRFY wrongaddress@%s\r\n" % (chatmail_config.mail_domain.encode(),))
|
||||||
|
|||||||
@@ -118,7 +118,12 @@ def test_authenticated_from(cmsetup, maildata):
|
|||||||
def test_reject_missing_dkim(cmsetup, maildata, from_addr):
|
def test_reject_missing_dkim(cmsetup, maildata, from_addr):
|
||||||
recipient = cmsetup.gen_users(1)[0]
|
recipient = cmsetup.gen_users(1)[0]
|
||||||
msg = maildata("encrypted.eml", from_addr=from_addr, to_addr=recipient.addr).as_string()
|
msg = maildata("encrypted.eml", from_addr=from_addr, to_addr=recipient.addr).as_string()
|
||||||
with smtplib.SMTP(cmsetup.maildomain, 25) as s:
|
try:
|
||||||
|
conn = smtplib.SMTP(cmsetup.maildomain, 25, timeout=10)
|
||||||
|
except TimeoutError:
|
||||||
|
pytest.skip(f"port 25 not reachable for {cmsetup.maildomain}")
|
||||||
|
|
||||||
|
with conn as s:
|
||||||
with pytest.raises(smtplib.SMTPDataError, match="No valid DKIM signature"):
|
with pytest.raises(smtplib.SMTPDataError, match="No valid DKIM signature"):
|
||||||
s.sendmail(from_addr=from_addr, to_addrs=recipient.addr, msg=msg)
|
s.sendmail(from_addr=from_addr, to_addrs=recipient.addr, msg=msg)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user