mirror of
https://github.com/mjl-/mox.git
synced 2025-07-14 16:14:36 +03:00
do not require the SMTPUTF8 extension when not needed (#145)
Squashed commit of the following: commit11c25d727f
Author: Laurent Meunier <laurent@deltalima.net> Date: Sun Mar 31 12:37:09 2024 +0200 Fix style issue commitc075a8cd8b
Author: Laurent Meunier <laurent@deltalima.net> Date: Sun Mar 31 12:35:04 2024 +0200 Also check smtputf8 for submitted messages or when in pedantic mode commitc02328f881
Author: Laurent Meunier <laurent@deltalima.net> Date: Sun Mar 31 12:33:20 2024 +0200 Calls to `newParser` should use `c.smtputf8` commita0bbd13afc
Author: Laurent Meunier <laurent@deltalima.net> Date: Sun Mar 31 12:32:12 2024 +0200 Improve SMTPUTF8 tests commit08735690f3
Author: Laurent Meunier <laurent@deltalima.net> Date: Sat Mar 30 17:22:33 2024 +0100 do earlier smtputf8-check commit3484651691
Author: Laurent Meunier <laurent@deltalima.net> Date: Thu Mar 28 17:47:11 2024 +0100 do not require the SMTPUTF8 extension when not needed fix #145
This commit is contained in:

committed by
Mechiel Lukkien

parent
d34dd8aae6
commit
9c5d234162
@ -18,17 +18,22 @@ import (
|
||||
// From headers may be present. From returns an error if there is not exactly
|
||||
// one address. This address can be used for evaluating a DMARC policy against
|
||||
// SPF and DKIM results.
|
||||
func From(elog *slog.Logger, strict bool, r io.ReaderAt) (raddr smtp.Address, envelope *Envelope, header textproto.MIMEHeader, rerr error) {
|
||||
func From(elog *slog.Logger, strict bool, r io.ReaderAt, p *Part) (raddr smtp.Address, envelope *Envelope, header textproto.MIMEHeader, rerr error) {
|
||||
log := mlog.New("message", elog)
|
||||
|
||||
// ../rfc/7489:1243
|
||||
|
||||
// todo: only allow utf8 if enabled in session/message?
|
||||
|
||||
p, err := Parse(log.Logger, strict, r)
|
||||
if err != nil {
|
||||
// todo: should we continue with p, perhaps headers can be parsed?
|
||||
return raddr, nil, nil, fmt.Errorf("parsing message: %v", err)
|
||||
var err error
|
||||
if p == nil {
|
||||
var pp Part
|
||||
pp, err = Parse(log.Logger, strict, r)
|
||||
if err != nil {
|
||||
// todo: should we continue with p, perhaps headers can be parsed?
|
||||
return raddr, nil, nil, fmt.Errorf("parsing message: %v", err)
|
||||
}
|
||||
p = &pp
|
||||
}
|
||||
header, err = p.Header()
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user