Subject: bug#11444: 23.3; smtpmail / lotus server

From: [email-masked] (Jason L. Wright)
Date: Wed, 09 May 2012 12:39:12 -0600

Using smtpmail to send mail: M-x compose-email ... type type type,
^C^C, and the result back from the SMTP server is "500 Syntax error" when
using smtpmail talking to a Lotus (boo hiss!) server.  SMTP trace is
below.  I watched it with tcpdump and smtpmail is -not- doing anything
wrong (RFC-wise).  But the stupid server gets bent out of shape if the
\r\n's for the DATA command are sent in different packets.

Changing smtpmail-send-command from:

(defun smtpmail-send-command (process command)
  (goto-char (point-max))
  (if (string-match "\\`AUTH [A-Z]+ " command)
      (insert (match-string 0 command) "<omitted>\r\n")
    (insert command "\r\n"))
  (setq smtpmail-read-point (point))
  (process-send-string process command)
  (process-send-string process "\r\n"))

To (note the concat in process-send-string):
(defun smtpmail-send-command (process command)
  (goto-char (point-max))
  (if (string-match "\\`AUTH [A-Z]+ " command)
      (insert (match-string 0 command) "<omitted>\r\n")
    (insert command "\r\n"))
  (setq smtpmail-read-point (point))
  (process-send-string process (concat command "\r\n")))

This appears to fix it right up.  This isn't a bug with smtpmail, it's a
server bug (which I can't fix), but at least I can make the client
appease the server.

Process SMTP deleted
220 *************************************************************************************************************
EHLO linux-h1g9.site
250-smtp.mydomain.com Hello linux-h1g9.site ([10.10.10.2]), pleased to meet you
250-XXXA
250-SIZE 102400000
250 PIPELINING
MAIL FROM:<[email-masked]> SIZE=1021
250 [email-masked]... Sender OK
RCPT TO:<[email-masked]>
250 [email-masked]... Recipient OK
DATA
500 Syntax error, command "XXXX" unrecognized
QUIT
500 Syntax error, command "XXXX" unrecognized

In GNU Emacs 23.3.1 (i586-suse-linux-gnu, GTK+ Version 2.24.7)
 of 2011-10-29 on build34
configured using `configure  '--with-pop' '--without-hesiod' '--with-kerberos' '--with-kerberos5' '--with-xim' '--enable-autodepend' '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--with-x' '--with-sound' '--with-sync-input' '--with-xpm' '--with-jpeg' '--with-tiff' '--with-gif' '--with-png' '--with-rsvg' '--with-dbus' '--without-gpm' '--with-x-toolkit=gtk' '--x-includes=/usr/include' '--x-libraries=/usr/lib:/usr/share/X11' '--with-xft' '--with-libotf' '--with-m17n-flt' '--build=i586-suse-linux' 'build_alias=i586-suse-linux' 'CFLAGS=-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -D_GNU_SOURCE -std=gnu89 -pipe -Wno-pointer-sign -Wno-unused-variable -Wno-unused-label -Wno-unprototyped-calls -fno-optimize-sibling-calls -DSYSTEM_PURESIZE_EXTRA=55000 	 -DSITELOAD_PURESIZE_EXTRA=10000 ' 'LDFLAGS=-Wl,-O2 -Wl,--hash-size=65521''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Summary

Minor modes in effect:
  show-paren-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
RET y g RET ESC x r e p o r t - e m a c s - b u g 
RET

Recent messages:
nnimap: Listing subscribed mailboxes on work...done
No new newsgroups
Checking new news...done
Reading active file from work via nnimap...
nnimap: Checking mailboxes...done
Checking new news...done
Retrieving newsgroup: nnimap+work:INBOX...
Fetching headers for nnimap+work:INBOX...done
Generating summary...done
Auto-saving...

Load-path shadows:
~/emacs/gnugo hides /usr/share/emacs/site-lisp/gnugo/gnugo
~/emacs/flymake hides /usr/share/emacs/23.3/lisp/progmodes/flymake
/usr/share/emacs/site-lisp/ruby-mode hides /usr/share/emacs/23.3/lisp/progmodes/ruby-mode

Features:
(shadow warnings emacsbug mailalias smtpmail sendmail newcomment sort
gnus-cite ansi-color mail-extr gnus-async gnus-bcklg parse-time timezone
byte-opt bytecomp byte-compile gnus-ml utf-7 utf7 nndraft nnmh
auth-source nnimap imap gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 epg-config mm-view smime dig
nntp gnus-cache gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
gnus-start gnus-spec gnus-int gnus-range message idna ecomplete rfc822
mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap
mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev gmm-utils
mailheader canlock sha1 hex-util hashcash gnus-win gnus gnus-ems
nnheader gnus-util netrc time-date mail-utils mm-util mail-prsvr flymake
easy-mmode compile help-fns erc-goodies erc erc-backend erc-compat
format-spec pp paren cus-start cus-load rmailgen ess-toolbar ess-mouse
mouseme thingatpt browse-url ess-menu ess-swv ess-noweb
noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a
executable shell ess-arc-d ess-vst-d ess-xls-d ess-lsp-l ess-sta-d
ess-sta-l cc-vars cc-defs make-regexp ess-sp6-d ess-sp5-d ess-sp3-d
ess-r-d ess-r-args assoc ess-s-l ess-inf ess-utils comint ring ess-mode
noweb-mode ess ess-custom regexp-opt ess-compat ess-site color-theme
easymenu wid-edit cl cl-19 preview-latex tex-site auto-loads ispell lpr
disp-table tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind system-font-setting
font-render-setting gtk x-toolkit x multi-tty emacs)