66 lines · 1.6 KB · Go
RawDownload
// Copyright 2021 The Gitea Authors. All rights reserved.// SPDX-License-Identifier: MIT package smtp import (	"forgejo.org/models/auth"	"forgejo.org/modules/json") //   _________   __________________________//  /   _____/  /     \__    ___/\______   \//  \_____  \  /  \ /  \|    |    |     ___///  /        \/    Y    \    |    |    |// /_______  /\____|__  /____|    |____|//         \/         \/ // Source holds configuration for the SMTP login source.type Source struct {	Auth           string	Host           string	Port           int	AllowedDomains string `xorm:"TEXT"`	ForceSMTPS     bool	SkipVerify     bool	HeloHostname   string	DisableHelo    bool	SkipLocalTwoFA bool `json:",omitempty"` 	// reference to the authSource	authSource *auth.Source} // FromDB fills up an SMTPConfig from serialized format.func (source *Source) FromDB(bs []byte) error {	return json.UnmarshalHandleDoubleEncode(bs, &source)} // ToDB exports an SMTPConfig to a serialized format.func (source *Source) ToDB() ([]byte, error) {	return json.Marshal(source)} // IsSkipVerify returns if SkipVerify is setfunc (source *Source) IsSkipVerify() bool {	return source.SkipVerify} // HasTLS returns true for SMTPfunc (source *Source) HasTLS() bool {	return true} // UseTLS returns if TLS is setfunc (source *Source) UseTLS() bool {	return source.ForceSMTPS || source.Port == 465} // SetAuthSource sets the related AuthSourcefunc (source *Source) SetAuthSource(authSource *auth.Source) {	source.authSource = authSource} func init() {	auth.RegisterTypeConfig(auth.SMTP, &Source{})}