-
Notifications
You must be signed in to change notification settings - Fork 116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
multipart: NextPart: EOF error for multipart/mixed content type #174
Comments
What is the code reading this message?
|
part, err := reader.NextPart()
if err == io.EOF {
break
} else if err != nil && !message.IsUnknownCharset(err) {
break
} From so long I was thinking that this is a bug because I was already handling the io.EOF error, but as you said it should be just another The code is pretty straight forward and I am not doing anything fancy here. The error is getting populated through go-message/textproto/multipart.go Line 262 in 8138ff9
But I am not sure why it is not just another How do you think is the right way to handle this error for now? |
I've tried running your code with your source message, but I don't get the error: https://go.dev/play/p/cSU0T0XgRL7 |
This still happens by the way, got me confused. when just returning an io.EOF would be sufficient. |
Please post a playground link with a reproducer, if you can reproduce. |
Cant post with the actual mail since its private info. But this happens rarely with mails received from certain platforms. Wouldnt returning an io.EOF be just fine here? or create an error type like MultipartEOF? Can create a pr for this if you want me to |
No, the error happens when EOF is unexpected in the middle of a multipart message, so it doesn't make sense to ignore it or treat it like a regular EOF. |
I see, from my own testing when this happens we have already gotten the body in both html and plain text. Letting the loop run ends in it never breaking as it does not reach the io.EOF return. Having an error type for this would good so we can atleast check for it. Edit: While debugging i see that it does indeed reach EOF, the mail is wrongly formatted and does not have the --boundary-- after the html part. |
If you don't care about errors after the parts you're interested in, you can stop the loop as soon as you've seen these parts. |
I was trying the read the mail using go-imap and go-message libraries, but for a particular mail I am getting
multipart: NextPart: EOF
error onpart, err := reader.NextPart()
where reader is themail.CreateReader
.content type of the email is as following. I got it from gmail client
show original mail
The text was updated successfully, but these errors were encountered: