I am using nmh-1.7.1 taken from the Debian "bookworm" (the current
"testing") distribution. Initially, and in the session recorded above,
I was using the normal binary deb, but for experimenting under gdb I
obviously needed an unstripped version so I got the source deb,
unpacked nmh_1.7.1.orig.tar.gz and built it using "LDADD=-Bstatic
./configure --with-cyrus-sasl --with-tls --prefix=`pwd`/testdir".
So, try the following patch. It worked for me when I tested it against
your SMTP server (well, I don't have an account there, but with this
patch it was able to successfully use the PLAIN mechanism).
--Ken
diff --git a/mts/smtp/smtp.c b/mts/smtp/smtp.c
index fb1afa14..b6b6e570 100644
--- a/mts/smtp/smtp.c
+++ b/mts/smtp/smtp.c
@@ -955,7 +956,12 @@ EHLOset (char *s)
for (ehlo = EHLOkeys; *ehlo; ehlo++) {
ep = *ehlo;
- if (has_prefix(ep, s)) {
+ /*
+ * Make sure the character after the EHLO keyword is either
+ * a NUL or a space; this makes sure we don't get tripped up
+ * on things like AUTH= if we're looking for AUTH
+ */
+ if (has_prefix(ep, s) && (ep[len] == '\0' || ep[len] == ' ')) {
for (ep += len; *ep == ' '; ep++)
continue;
return ep;