The following is from a log of ZD talking to a local smtp server (on same box):

--------------------------------------
220 ESMTP cmdev.com CoffeeMud SMTPserver/1.1.1.0; 10/31/2011 10:07 PM
DEBUG SMTP: connected to host "localhost", port: 25
EHLO localhost
250 valar.com Hello valar.com [127.0.0.1], pleased to meet you
250-8BITMIME
250-SIZE 20000
250-DSN
250-ONEX
250 HELP
DEBUG SMTP: use8bit false
MAIL FROM:<root@valar.com>
DEBUG SMTP: sendPartial set
RCPT TO:<Zac@cmdev.com>
250 OK Mailer
DEBUG SMTP: Verified Addresses
DEBUG SMTP: Zac@cmdev.com
DATA
250 OK Zac
DEBUG SMTP: got response code 250, with response: 250 OK Zac

RSET
354 Enter mail, end with "." on a line by itself

com.sun.mail.smtp.SMTPSendFailedException: 250 OK Zac

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(S MTPTransport.java:1829)
at com.sun.mail.smtp.SMTPTransport.data(SMTPTransport .java:1621)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTr ansport.java:888)
at javax.mail.Transport.send0(Transport.java:191)
at javax.mail.Transport.send(Transport.java:142)
at com.zimbra.cs.mailbox.MailSender.sendMessage(MailS ender.java:833)
at com.zimbra.cs.mailbox.MailSender.sendMimeMessage(M ailSender.java:565)
at com.zimbra.cs.mailbox.MailSender.sendMimeMessage(M ailSender.java:425)
at com.zimbra.cs.mailbox.DataSourceMailbox.sendPendin gMessages(DataSourceMailbox.java:316)
at com.zimbra.cs.mailbox.DataSourceMailbox.sync(DataS ourceMailbox.java:479)
at com.zimbra.cs.mailbox.DataSourceMailbox.syncOnTime r(DataSourceMailbox.java:409)
at com.zimbra.cs.mailbox.SyncMailbox$1.run(SyncMailbo x.java:257)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
QUIT
250 Reset state
DEBUG SMTP: QUIT failed with 250

------------------

Notice that it sends the "mail from" and "rcpt to" commands in a single stream (as if PIPELINING without permission?!), and then assumes the first 250 OK it receives applies to BOTH messages. When it sends DATA and then receives the 250 OK (for the rcpt to), it decides it's an error and leaves.

What's going on here? I've poked through the ESMTP protocol docs and can't account for this behavior. I *must* be missing something.

Thanks for any response..
- Bo Zimmerman