diff options
| author | 2021-10-31 15:46:23 +0100 | |
|---|---|---|
| committer | 2021-10-31 15:46:23 +0100 | |
| commit | 2aaec827321ec711b98e13335899cf750f270105 (patch) | |
| tree | bafa15a0c2a469adf97b2c437fdc31428516424e /cmd | |
| parent | regenerate swagger docs (#293) (diff) | |
| download | gotosocial-2aaec827321ec711b98e13335899cf750f270105.tar.xz | |
smtp + email confirmation (#285)
* add smtp configuration
* add email confirm + reset templates
* add email sender to testrig
* flesh out the email sender interface
* go fmt
* golint
* update from field with more clarity
* tidy up the email formatting
* fix tests
* add email sender to processor
* tidy client api processing a bit
* further tidying in fromClientAPI
* pin new account to user
* send msg to processor on new account creation
* generate confirm email uri
* remove emailer from account processor again
* add processCreateAccountFromClientAPI
* move emailer accountprocessor => userprocessor
* add email sender to user processor
* SendConfirmEmail function
* add noop email sender
* use noop email sender in tests
* only assemble message if callback is not nil
* use noop email sender if no smtp host is defined
* minify email html before sending
* fix wrong email address
* email confirm test
* fmt
* serve web hndler
* add email confirm handler
* init test log properly on testrig
* log emails that *would* have been sent
* go fmt ./...
* unexport confirm email handler
* updatedAt
* test confirm email function
* don't allow tokens older than 7 days
* change error message a bit
* add basic smtp docs
* add a few more snippets
* typo
* add email sender to outbox tests
* don't use dutch wikipedia link
* don't minify email html
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/gotosocial/flags.go | 1 | ||||
| -rw-r--r-- | cmd/gotosocial/smtpflags.go | 59 |
2 files changed, 60 insertions, 0 deletions
diff --git a/cmd/gotosocial/flags.go b/cmd/gotosocial/flags.go index 355ec0b81..8e162f6c7 100644 --- a/cmd/gotosocial/flags.go +++ b/cmd/gotosocial/flags.go @@ -39,6 +39,7 @@ func getFlags() []cli.Flag { statusesFlags(flagNames, envNames, defaults), letsEncryptFlags(flagNames, envNames, defaults), oidcFlags(flagNames, envNames, defaults), + smtpFlags(flagNames, envNames, defaults), } for _, fs := range flagSets { flags = append(flags, fs...) diff --git a/cmd/gotosocial/smtpflags.go b/cmd/gotosocial/smtpflags.go new file mode 100644 index 000000000..5c790ef7e --- /dev/null +++ b/cmd/gotosocial/smtpflags.go @@ -0,0 +1,59 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + 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 main + +import ( + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/urfave/cli/v2" +) + +func smtpFlags(flagNames, envNames config.Flags, defaults config.Defaults) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: flagNames.SMTPHost, + Usage: "Host of the smtp server. Eg., 'smtp.eu.mailgun.org'", + Value: defaults.SMTPHost, + EnvVars: []string{envNames.SMTPHost}, + }, + &cli.IntFlag{ + Name: flagNames.SMTPPort, + Usage: "Port of the smtp server. Eg., 587", + Value: defaults.SMTPPort, + EnvVars: []string{envNames.SMTPPort}, + }, + &cli.StringFlag{ + Name: flagNames.SMTPUsername, + Usage: "Username to authenticate with the smtp server as. Eg., 'postmaster@mail.example.org'", + Value: defaults.SMTPUsername, + EnvVars: []string{envNames.SMTPUsername}, + }, + &cli.StringFlag{ + Name: flagNames.SMTPPassword, + Usage: "Password to pass to the smtp server.", + Value: defaults.SMTPPassword, + EnvVars: []string{envNames.SMTPPassword}, + }, + &cli.StringFlag{ + Name: flagNames.SMTPFrom, + Usage: "Address to use as the 'from' field of the email. Eg., 'gotosocial@example.org'", + Value: defaults.SMTPFrom, + EnvVars: []string{envNames.SMTPFrom}, + }, + } +} |
