Comments (11)
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.
Does RFC 5321 specify how to handle unknown parameters? I do not see anything about it.
from go-smtp.
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.
Interesting, however, it causes a different error. "Unknown MAIL FROM argument". There is a test that checks for that error.
from go-smtp.
The proper solution is to recognize AUTH= parameter and pass it to backend.
from go-smtp.
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.
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.
(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.
Ah, I missed that first bit of your earlier comment, thanks
from go-smtp.
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.
Will do! Thanks so much @foxcpp
from go-smtp.
Related Issues (20)
- v1.16.0 breaks backwards compatibility HOT 3
- Why need to make sure all the data has been consumed ? HOT 1
- Using SMTP server email are not going to external accounts HOT 1
- Valid Reverse-path getting rejected with 500 5.5.4 Unknown MAIL FROM argument HOT 1
- Auth should be mandatory for `MAIL`, `RCPT` & `DATA` commands when `server.AuthDisabled` is `false` HOT 2
- google smtp fails to send message with error `Relay access denied` HOT 1
- What's the best way to check and enforce TLS connection? HOT 11
- Server: unauthenticated access HOT 1
- Handle zero-byte TCP healthcheck connections HOT 4
- Unable to set headers when using SendMail with go templating. HOT 2
- Does the server support multi-threading when receiving emails? HOT 1
- Request an example code for smtp relay HOT 2
- [Security] Implement strict CRLF mode HOT 1
- client: allow sending a second EHLO after STARTTLS HOT 7
- Critical bug in v0.20.1: i/o timeout in `DATA` stage HOT 3
- Extension support status
- Support AUTH LOGIN HOT 1
- Request for opportunistic TLS support HOT 7
- Client anonymous authentication not working when sending empty trace string HOT 9
- Support (or allow) HELP command implementation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-smtp.