I appreciate how detailed is the how-to guide to set up chasquid as an SMTP server from scratch. However, I haven't been able to get the setup to work. My smtp-check
passes successfully with chasquid running on the target server:
smtp-check example.com
2023/09/01 20:21:13 === STS policy
2023/09/01 20:21:15 Not available (lookup _mta-sts.example.com on 1.2.3.4:53: no such host)
2023/09/01 20:21:15
2023/09/01 20:21:15 === MX: 10 mail.example.com.
2023/09/01 20:21:17 SPF pass for 1.2.3.4: matched mx
2023/09/01 20:21:17 TLS OK: TLS-1.3 - TLS_AES_128_GCM_SHA256
2023/09/01 20:21:17
2023/09/01 20:21:17 === Success
Yet I've tried with a variety of email clients, including an nodejs smtp client, but get errors like the following:
When sending without encryption to port 25:
Error: SMTP server does not support the LOGIN authentication mechanism
at exports.SMTPClient.authLogin (.../node_modules/smtp-client/src/index.js:375:13)
at send (.../smtp.js:51:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
When submitting without security enabled to port 25:
node smtp.js
[Error: 40D82ECC117F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
] {
library: 'SSL routines',
reason: 'wrong version number',
code: 'ERR_SSL_WRONG_VERSION_NUMBER'
}
Server side:
conn.go:178 SMTP.Conn 1.2.3.4:30357: Connected, mode: SMTP
. conn.go:241 SMTP.Conn 1.2.3.4:30357: -> EHLO example.com
. conn.go:294 SMTP.Conn 1.2.3.4:30357: <- 250 poweredge - Your hour of destiny has come.\n8BITMIME\nPIPELINING\nSMTPUTF8\nENHANCEDSTATUSCODES\nSIZE 52428800\nSTARTTLS\nHELP\n
. domaininfo.go:74 DomainInfo.Reload reload: loaded 0 domains
When submitting with security enabled to port 25:
[Error: 40B8AC55587F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:354:
] {
library: 'SSL routines',
reason: 'wrong version number',
code: 'ERR_SSL_WRONG_VERSION_NUMBER'
}
Server side:
conn.go:178 SMTP.Conn 8.8.8.8:61172: Connected, mode: SMTP
. conn.go:241 SMTP.Conn 8.8.8.8:61172: -> \x16\x03\x01\x01X\x01\x00\x01T\x03\x03]\x056�2X\t��0\x1e%\b��\x06N��퀣�
V��\b�� \xdd\xe9<\xf1K~\xa5tm\x10\xe2\xd3\xf4\x17\x9dzl\xec\xa2\b\x0fѰ9\xb0;U\x92\xbc\xee\xa1a\x00v\x13\x02\x13\x03\x13\x01\xc0/\xc0+\xc00\xc0,\x00\x9e\xc0'\x00g\xc0(\x00k\x00\xa3\x00\x9f̨̩̪\xc0\xaf\xc0\xad\xc0\xa3\xc0\x9f\xc0]\xc0a\xc0W\xc0S\x00\xa2\xc0\xae\xc0\xac\xc0\xa2\xc0\x9e\xc0\\\xc0`\xc0V\xc0R\xc0$\x00j\xc0#\x00@\xc0
. conn.go:294 SMTP.Conn 8.8.8.8:61172: <- 500 5.5.1 Unknown command
_ conn.go:298 SMTP.Conn 8.8.8.8:61172: error: unknown<\"\\x16\\x03\\x01\\x01X\\x01\"> failed: 500 5.5.1 Unknown command
. conn.go:241 SMTP.Conn 8.8.8.8:61172: -> �\x14\x009\x008�\t�\x13\x003\x002\x00������Q\x00������P\x00=\x00<\x005\x00/\x00�\x01\x00\x00�\x00\v\x00\x04\x03\x00\x01\x02\x00
. conn.go:294 SMTP.Conn 8.8.8.8:61172: <- 500 5.5.1 Unknown command
_ conn.go:298 SMTP.Conn 8.8.8.8:61172: error: unknown<\"�\\x14\\x009\\x008\"> failed: 500 5.5.1 Unknown command
. conn.go:241 SMTP.Conn 8.8.8.8:61172: -> \x00\x16\x00\x14\x00\x1d\x00\x17\x00\x1e\x00\x19\x00\x18\x01\x00\x01\x01\x01\x02\x01\x03\x01\x04\x00#\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\r\x00*\x00(\x04\x03\x05\x03\x06\x03\b\a\b\b\b\t\b
. conn.go:294 SMTP.Conn 8.8.8.8:61172: <- 500 5.5.1 Unknown command
_ conn.go:298 SMTP.Conn 8.8.8.8:61172: error: unknown<\"\\x00\\x16\\x00\\x14\\x00\\x1d\"> failed: 500 5.5.1 Unknown command
_ conn.go:305 SMTP.Conn 8.8.8.8:61172: error: too many errors, breaking connection
When setting listening on port 25 as the submission address instead of as the smtp server, I get a similar error:
. domaininfo.go:74 DomainInfo.Reload reload: loaded 0 domains
E chasquid.go:195 Warning: No SMTP addresses/listeners
E chasquid.go:196 If using systemd, check that you named the sockets
E chasquid.go:195 Warning: No submission+TLS addresses/listeners
E chasquid.go:196 If using systemd, check that you named the sockets
. sts.go:493 STSCache.Refresh /var/lib/chasquid/sts-cache: 0 entries
. sts.go:521 STSCache.Refresh /var/lib/chasquid/sts-cache: refresh done
_ server.go:218 Server listening on :25 (submission)
. conn.go:178 SMTP.Conn 8.8.8.8:28672: Connected, mode: submission . conn.go:241 SMTP.Conn 8.8.8.8:28672: -> \x16\x03\x01\x01X\x01\x00\x01T\x03\x03�^\\��L?�ߝ���;��S \x1bJQa\x00F\xc
e\xf13\x14\xb0\x81\xe5
. conn.go:294 SMTP.Conn 8.8.8.8:28672: <- 500 5.5.1 Unknown command _ conn.go:298 SMTP.Conn 8.8.8.8:28672: error: unknown<\"\\x16\\x03\\x01\\x01X\\x01\"> failed: 500 5.5.1 Unknown
command . conn.go:241 SMTP.Conn 8.8.8.8:28672: -> \xb0\xd7\xf2\xfd\x8d\xdeC\x16ݫ\xf3|V\xaby\xe3b\x10\xcb\xce)BAW\xbfq\x0f\x1b1^ˣ\x00v\x13\x02\x13\x03\x13\x01\xc0/\xc0+\xc00\xc0,\x00\x9e\xc0'\x00g\xc0(\x00k\x00\xa3\x00\x9f̨̩̪\xc0\xaf\xc0\xad\xc0\xa3\
xc0\x9f\xc0]\xc0a\xc0W\xc0S\x00\xa2\xc0\xae\xc0\xac\xc0\xa2\xc0\x9e\xc0\\\xc0`\xc0V\xc0R\xc0$\x00j\xc0#\x00@\xc0
. conn.go:294 SMTP.Conn 8.8.8.8:28672: <- 500 5.5.1 Unknown command
_ conn.go:298 SMTP.Conn 8.8.8.8:28672: error: unknown<\"\"> failed: 500 5.5.1 Unknown command . conn.go:241 SMTP.Conn 8.8.8.8:28672: -> �\x14\x009\x008�\t�\x13\x003\x002\x00������Q\x00������P\x00=\x00<\x005\
x00/\x00�\x01\x00\x00�\x00\v\x00\x04\x03\x00\x01\x02\x00
. conn.go:294 SMTP.Conn 8.8.8.8:28672: <- 500 5.5.1 Unknown command
_ conn.go:298 SMTP.Conn 8.8.8.8:28672: error: unknown<\"�\\x14\\x009\\x008\"> failed: 500 5.5.1 Unknown command
_ conn.go:305 SMTP.Conn 8.8.8.8:28672: error: too many errors, breaking connection
. domaininfo.go:74 DomainInfo.Reload reload: loaded 0 domains
. domaininfo.go:74 DomainInfo.Reload reload: loaded 0 domains
I noticed what appears to be a warning, No submission+TLS addresses/listeners
, No SMTP addresses/listeners
, not sure if this is relevant since the process is indeed listenting on the port specified in the chasquid.conf
file.
- What am I missing to be able to actually use chasquid as my SMTP server?
- Do you have any recommended client programs and steps to test the chasquid server email delivery? Would you consider enhancing the how-to guide to include this last but very important setup step?