Coder Social home page Coder Social logo

Comments (11)

foxcpp avatar foxcpp commented on July 28, 2024 2

Problem is resolved in go-smtp. As of proton-bridge issue, I suggest you to raise issue in bridge repo to update used go-smtp version.

from go-smtp.

foxcpp avatar foxcpp commented on July 28, 2024

Does RFC 5321 specify how to handle unknown parameters? I do not see anything about it.

from go-smtp.

foxcpp avatar foxcpp commented on July 28, 2024

protonmail-bridge uses 2018 version of go-smtp via this fork: https://github.com/ProtonMail/go-smtp

I am unable to reproduce the issue this exact error message at latest master.

Here is the test case I am using:

func TestServerStrictESMTP(t *testing.T) {
	_, s, c, scanner := testServerAuthenticated(t)
	s.Strict = true
	defer s.Close()
	defer c.Close()

	io.WriteString(c, "MAIL FROM:<[email protected]> AUTH=test\r\n")
	scanner.Scan()
	if !strings.HasPrefix(scanner.Text(), "250 ") {
		t.Fatal("Invalid MAIL response:", scanner.Text())
	}

	return
}

from go-smtp.

foxcpp avatar foxcpp commented on July 28, 2024

Interesting, however, it causes a different error. "Unknown MAIL FROM argument". There is a test that checks for that error.

from go-smtp.

foxcpp avatar foxcpp commented on July 28, 2024

The proper solution is to recognize AUTH= parameter and pass it to backend.

from go-smtp.

foxcpp avatar foxcpp commented on July 28, 2024

https://tools.ietf.org/html/rfc4954

For this reason, servers that advertise support for this
extension MUST support the AUTH parameter to the MAIL FROM
command even when the client has not authenticated itself to the
server.

from go-smtp.

smoores-dev avatar smoores-dev commented on July 28, 2024

Interesting, however, it causes a different error. "Unknown MAIL FROM argument". There is a test that checks for that error.

I'm also confused by this! Reading through the code, what you're describing is absolutely what I'd expect to see. For context, I was interacting with this library through the https://github.com/ProtonMail/proton-bridge application; I wonder if that is being bundled with an older version of this package that handled that responded with the other error message in this scenario? (Full disclosure, I don't know much about Go package management) But it definitely seems to be the AUTH= parameter that's causing this there; dropping it fixes the error message.

from go-smtp.

foxcpp avatar foxcpp commented on July 28, 2024

(Full disclosure, I don't know much about Go package management)

https://github.com/ProtonMail/proton-bridge/blob/8288a39ff427dccb3db66048240393084db2b23b/go.mod#L76

from go-smtp.

smoores-dev avatar smoores-dev commented on July 28, 2024

Ah, I missed that first bit of your earlier comment, thanks

from go-smtp.

smoores-dev avatar smoores-dev commented on July 28, 2024

Weirdly, looking through that fork, it seems like it shouldn't be responding with an error message at all! But maybe I ought to open an issue on that repo to at least pull in the latest from here (I guess.. after this AUTH= handling is merged)

from go-smtp.

smoores-dev avatar smoores-dev commented on July 28, 2024

Will do! Thanks so much @foxcpp

from go-smtp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.