diff --git a/pkg/email/email.go b/pkg/email/email.go index e374b85..7855379 100644 --- a/pkg/email/email.go +++ b/pkg/email/email.go @@ -5,6 +5,7 @@ import ( "fmt" "net/smtp" "net/textproto" + "html" "carrotskin/pkg/config" @@ -70,8 +71,6 @@ func (s *Service) send(to []string, subject, body string) error { addr := fmt.Sprintf("%s:%d", s.cfg.SMTPHost, s.cfg.SMTPPort) // 判断端口决定发送方式 - // 465端口使用SSL/TLS(隐式TLS) - // 587端口使用STARTTLS(显式TLS) var err error if s.cfg.SMTPPort == 465 { // 使用SSL/TLS连接(适用于465端口) @@ -132,6 +131,10 @@ func (s *Service) getBody(code, purpose string) string { message = "您的验证码为:" } + // 转义 HTML 特殊字符 + escapedMessage := html.EscapeString(message) + escapedCode := html.EscapeString(code) + return fmt.Sprintf(` @@ -158,5 +161,5 @@ func (s *Service) getBody(code, purpose string) string { - `, message, code) + `, escapedMessage, escapedCode) }