Better parsing and 8BITMIME + SMTPUTF8 support
This commit is contained in:
parent
2b700ae192
commit
83f4fbde7f
2 changed files with 10 additions and 3 deletions
|
@ -67,7 +67,9 @@ func Helo(smtp_session *SMTPSession, message string) (bool, error) {
|
||||||
func Ehlo(smtp_session *SMTPSession, message string) (bool, error) {
|
func Ehlo(smtp_session *SMTPSession, message string) (bool, error) {
|
||||||
err := smtp_session.Write(
|
err := smtp_session.Write(
|
||||||
fmt.Sprintf(
|
fmt.Sprintf(
|
||||||
"250 %v is shy" + "\r\n",
|
"250-%v is shy" + "\r\n" +
|
||||||
|
"250-8BITMIME" + "\r\n" +
|
||||||
|
"250 SMTPUTF8" + "\r\n",
|
||||||
smtp_session.GetHost(),
|
smtp_session.GetHost(),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
@ -25,10 +25,15 @@ import (
|
||||||
|
|
||||||
var ReversePath = regexp.MustCompile(fmt.Sprintf("(?:%v)|<>", path))
|
var ReversePath = regexp.MustCompile(fmt.Sprintf("(?:%v)|<>", path))
|
||||||
var ForwardPath = regexp.MustCompile(path)
|
var ForwardPath = regexp.MustCompile(path)
|
||||||
var Domain = regexp.MustCompile("\\w+@(\\w+(?:\\.\\w+)*)")
|
var Domain = regexp.MustCompile(fmt.Sprintf(".+@(%v)", domain))
|
||||||
|
|
||||||
// https://datatracker.ietf.org/doc/html/rfc5321#page-41
|
// https://datatracker.ietf.org/doc/html/rfc5321#page-41
|
||||||
// Is this...legal, m'lord? (no, but ¯\_(ツ)_/¯)
|
// Is this...legal, m'lord? (no, but ¯\_(ツ)_/¯)
|
||||||
// ...
|
// ...
|
||||||
// Ok fine. TODO. Happy now?
|
// Ok fine. TODO. Happy now?
|
||||||
var path = "<(?:.*:)?(\\w+@\\w+(?:\\.\\w+)*)>"
|
var path = fmt.Sprintf("<(?:.*:)?(.+@%v)", domain)
|
||||||
|
var domain = fmt.Sprintf("%v(?:.%v)*", sub_domain, sub_domain)
|
||||||
|
var sub_domain = fmt.Sprintf("%v(?:%v)?", let_dig, let_str)
|
||||||
|
var let_str = fmt.Sprintf("%v*%v", let_dig_und, let_dig)
|
||||||
|
var let_dig = fmt.Sprintf("[\\pL\\d]")
|
||||||
|
var let_dig_und = fmt.Sprintf("[\\pL\\d\\-]")
|
||||||
|
|
Loading…
Add table
Reference in a new issue