Files
artalkjs/internal/email/sender_alidm.go
T
qwqcode cf7725edba refactor(go): bump the module version and support go install (#979)
BREAKING CHANGE: The original Go module name was `github.com/ArtalkJS/Artalk`, which has now been modified to `github.com/artalkjs/artalk/v2` (all lowercase). This change may affect the CI pipeline or other areas if you are compiling the Artalk server and have specified the fixed Go module name. Regarding the original `-ldflags -X github.com/ArtalkJS/Artalk/internal/config.Version` and `CommitHash` definitions, please remove them, as they are now obsolete. The `Version` has been hardcoded into the Go code, and the `CommitHash` is now read from the Go build info via runtime/debug’s vcs.revision value. This change only affects the server developers and does not impact the frontend UI client.
2024-09-18 21:43:43 +08:00

51 lines
1.0 KiB
Go

package email
import (
"github.com/artalkjs/artalk/v2/internal/config"
"github.com/artalkjs/artalk/v2/internal/log"
aliyun_email "github.com/qwqcode/go-aliyun-email"
"github.com/samber/lo"
)
// AliDMSender implements Sender
type AliDMSender struct {
conf config.AliDMConf
}
var _ Sender = (*AliDMSender)(nil)
// NewAliDMSender 阿里云邮件推送
func NewAliDMSender(conf config.AliDMConf) *AliDMSender {
return &AliDMSender{
conf: conf,
}
}
func (s *AliDMSender) Send(email *Email) bool {
client := aliyun_email.NewClient(
s.conf.AccessKeyId,
s.conf.AccessKeySecret,
s.conf.AccountName,
email.FromName,
lo.If(s.conf.Region == "", aliyun_email.RegionCNHangZhou).Else(s.conf.Region),
)
req := &aliyun_email.SingleRequest{
ReplyToAddress: true,
AddressType: 1,
ToAddress: email.ToAddr,
Subject: email.Subject,
HtmlBody: email.Body,
}
resp, err := client.SingleRequest(req)
if err != nil {
log.Error("[Email] ", "Email sending failed via Aliyun DM", err)
return false
}
log.Debug(resp)
return true
}