PMail/server/pop3_server/pop3server.go
Jinnrry 054336fe9e
v2.6.1 (#169)
1、新增垃圾邮件过滤插件
2、使用使用github.com/dlclark/regexp2替换go原生的正则包
3、修复空数据导致的邮件插入失败
2024-07-20 10:39:17 +08:00

63 lines
1.4 KiB
Go

package pop3_server
import (
"crypto/rand"
"crypto/tls"
"github.com/Jinnrry/gopop"
"github.com/Jinnrry/pmail/config"
log "github.com/sirupsen/logrus"
"time"
)
var instance *gopop.Server
var instanceTls *gopop.Server
func StartWithTls() {
crt, err := tls.LoadX509KeyPair(config.Instance.SSLPublicKeyPath, config.Instance.SSLPrivateKeyPath)
if err != nil {
panic(err)
}
tlsConfig := &tls.Config{}
tlsConfig.Certificates = []tls.Certificate{crt}
tlsConfig.Time = time.Now
tlsConfig.Rand = rand.Reader
instanceTls = gopop.NewPop3Server(995, "pop."+config.Instance.Domain, true, tlsConfig, action{})
instanceTls.ConnectAliveTime = 5 * time.Minute
log.Infof("POP3 With TLS Server Start On Port :995")
err = instanceTls.Start()
if err != nil {
panic(err)
}
}
func Start() {
crt, err := tls.LoadX509KeyPair(config.Instance.SSLPublicKeyPath, config.Instance.SSLPrivateKeyPath)
if err != nil {
panic(err)
}
tlsConfig := &tls.Config{}
tlsConfig.Certificates = []tls.Certificate{crt}
tlsConfig.Time = time.Now
tlsConfig.Rand = rand.Reader
instance = gopop.NewPop3Server(110, "pop."+config.Instance.Domain, false, tlsConfig, action{})
instance.ConnectAliveTime = 5 * time.Minute
log.Infof("POP3 Server Start On Port :110")
err = instance.Start()
if err != nil {
panic(err)
}
}
func Stop() {
if instance != nil {
instance.Stop()
}
if instanceTls != nil {
instanceTls.Stop()
}
}