Ignoring malformed SMTP from embedded device?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Ignoring malformed SMTP from embedded device?

Martin Barry
We have an embedded device which is speaking malformed SMTP. We have filed a
bug with the vendor but we would like to see if we can work around it in the
meantime. Is there a way to ignore this or change it to a warning rather
than a failure?

220 smtp.example.com ESMTP Postfix...
HELO embedded.example.com ...
250 smtp.example.com
MAIL FROM:<[hidden email]>
250 2.1.0 Ok ...
REPLY-TO:<>
221 2.7.0 Error: I can break rules, too. ...

cheers
Marty
Reply | Threaded
Open this post in threaded view
|

Re: Ignoring malformed SMTP from embedded device?

Victor Duchovni
On Tue, Apr 07, 2009 at 03:44:04PM +1000, Martin Barry wrote:

> We have an embedded device which is speaking malformed SMTP. We have filed a
> bug with the vendor

Suggestion: find another vendor. This is a not an implementation error or
oversight, this is basic incompetence from under-qualified developers.
Anything else developed by the same staff is highly likely to be wrong,
fragile, have security issues, ...

> but we would like to see if we can work around it in the
> meantime. Is there a way to ignore this or change it to a warning rather
> than a failure?

Though this application does not deserve such treatment, you are in luck,
but this uses undocumented behaviour of "smtpd_noop_commands". It could
stop working without notice in a future release.

> 220 smtp.example.com ESMTP Postfix...
> HELO embedded.example.com ...
> 250 smtp.example.com
> MAIL FROM:<[hidden email]>
> 250 2.1.0 Ok ...
> REPLY-TO:<>
> 221 2.7.0 Error: I can break rules, too. ...

    main.cf:
        # Not specifically intended to support table lookups, abuse of
        # implementation artifact. If table lookup support is dropped,
        # could try "reply-to:<>" or "reply-to:" (depends on how this
        # non-command is tokenized) as a literal value.
        #
        smtpd_noop_commands = pcre:${config_directory}/noop.pcre

    noop.pcre:
    /^reply-to:/ NOOP

Example:

    220 amnesiac.example.com ESMTP Postfix
    ehlo foo
    250-amnesiac.example.com
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    mail from:<viktor>
    250 2.1.0 Ok
    reply-to:<>
    250 2.0.0 Ok
    rset
    250 2.0.0 Ok
    quit
    221 2.0.0 Bye

--
        Viktor.

Disclaimer: off-list followups get on-list replies or get ignored.
Please do not ignore the "Reply-To" header.

To unsubscribe from the postfix-users list, visit
http://www.postfix.org/lists.html or click the link below:
<mailto:[hidden email]?body=unsubscribe%20postfix-users>

If my response solves your problem, the best way to thank me is to not
send an "it worked, thanks" follow-up. If you must respond, please put
"It worked, thanks" in the "Subject" so I can delete these quickly.