diff options
author | 2023-03-19 13:11:46 +0100 | |
---|---|---|
committer | 2023-03-19 13:11:46 +0100 | |
commit | 7db81cde444f6bc95e79527af0997de1788d48c7 (patch) | |
tree | f6c077ec298a4f018d0870798bc46bd64ba70069 /internal/email/util.go | |
parent | [docs] Update docs on how to login (#1626) (diff) | |
download | gotosocial-7db81cde444f6bc95e79527af0997de1788d48c7.tar.xz |
[feature] Email notifications for new / closed moderation reports (#1628)
* start fiddling about with email sending to allow multiple recipients
* do some fiddling
* notifs working
* notify on closed report
* finishing up
* envparsing
* use strings.ContainsAny
Diffstat (limited to 'internal/email/util.go')
-rw-r--r-- | internal/email/util.go | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/internal/email/util.go b/internal/email/util.go deleted file mode 100644 index bd024a3e0..000000000 --- a/internal/email/util.go +++ /dev/null @@ -1,71 +0,0 @@ -// GoToSocial -// Copyright (C) GoToSocial Authors admin@gotosocial.org -// SPDX-License-Identifier: AGPL-3.0-or-later -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program 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 Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package email - -import ( - "errors" - "fmt" - "os" - "path/filepath" - "strings" - "text/template" -) - -func loadTemplates(templateBaseDir string) (*template.Template, error) { - if !filepath.IsAbs(templateBaseDir) { - cwd, err := os.Getwd() - if err != nil { - return nil, fmt.Errorf("error getting current working directory: %s", err) - } - templateBaseDir = filepath.Join(cwd, templateBaseDir) - } - - // look for all templates that start with 'email_' - return template.ParseGlob(filepath.Join(templateBaseDir, "email_*")) -} - -// https://datatracker.ietf.org/doc/html/rfc2822 -// I did not read the RFC, I just copy and pasted from -// https://pkg.go.dev/net/smtp#SendMail -// and it did seem to work. -func assembleMessage(mailSubject string, mailBody string, mailTo string, mailFrom string) ([]byte, error) { - if strings.Contains(mailSubject, "\r") || strings.Contains(mailSubject, "\n") { - return nil, errors.New("email subject must not contain newline characters") - } - - if strings.Contains(mailFrom, "\r") || strings.Contains(mailFrom, "\n") { - return nil, errors.New("email from address must not contain newline characters") - } - - if strings.Contains(mailTo, "\r") || strings.Contains(mailTo, "\n") { - return nil, errors.New("email to address must not contain newline characters") - } - - // normalize the message body to use CRLF line endings - mailBody = strings.ReplaceAll(mailBody, "\r\n", "\n") - mailBody = strings.ReplaceAll(mailBody, "\n", "\r\n") - - msg := []byte( - "To: " + mailTo + "\r\n" + - "Subject: " + mailSubject + "\r\n" + - "\r\n" + - mailBody + "\r\n", - ) - - return msg, nil -} |