0 votes

Hello,

we have one customer who has problems with his mail provider.

When he tries to send e.g. 50 mails it stops after 30 and his provider sent the following log messages (IPs replaced).

2017-05-04 09:56:34 SMTP call from ([...]) [...] I=[...]:587 dropped: too many nonmail commands (last was "NOOP")
2017-05-04 09:59:42 SMTP call from ([...]) [...] I=[...]:25 dropped: too many nonmail commands (last was "NOOP")

We never send NOOP explicitly. We open a connection (var s=new Smtp();s.ConnectSSL(...);) and then built mail after mail in a loop and send them via s.SendMessage(mail)
The server, as said, drops the connection after 30 mails (less than ten seconds).

Do you know this problem? Is your library sending NOOP-commands by itself to keep the connection open and is this configurable?

Any help greatly appreciated. Thank you

by

1 Answer

0 votes

Yes, in some situations NOOPs are being sent by Mail.dll. It's not more than one per message.

For example NOOPs are used when pipelining is turned on and supported by the server.

NOOP is used to synchronize state and most servers validate recipients when this command is received. This is correct way of doing things and if the server is rejecting valid NOOP command, it should be fixed.

You can use the following code to disable pipelining:

smtp.Configuration.EnablePipelining = false;

As a side note, you can turn on logging to see exact client server communication:
https://www.limilabs.com/blog/logging-in-mail-dll

by (301k points)
edited by
...