39 lines
1.4 KiB
Go
39 lines
1.4 KiB
Go
/* diodemail - send-only smtp server
|
|
* Copyright (c) 2024 Gnarwhal
|
|
*
|
|
* This file is part of SSHare.
|
|
*
|
|
* SSHare is free software: you can redistribute it and/or modify it under the terms of
|
|
* the GNU General Public License as published by the Free Software Foundation,
|
|
* either version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* SSHare is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with
|
|
* SSHare. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package smtp
|
|
|
|
import (
|
|
"fmt"
|
|
"regexp"
|
|
)
|
|
|
|
var ReversePath = regexp.MustCompile(fmt.Sprintf("(?:%v)|<()>", path))
|
|
var ForwardPath = regexp.MustCompile(path)
|
|
var Domain = regexp.MustCompile(fmt.Sprintf(".+@(%v)", domain))
|
|
|
|
// https://datatracker.ietf.org/doc/html/rfc5321#page-41
|
|
// Is this...legal, m'lord? (no, but ¯\_(ツ)_/¯)
|
|
// ...
|
|
// What? You want more? Nope. That is all you get.
|
|
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\\-]")
|