forked from fedi/mastodon
Detailed SMTP setup (#6759)
* add detailed SMTP settings setup in mastodon:setup * add localhost SMTP settings setup in mastodon:setup * SMTP settings setup should exit after successful delivery of test mail
This commit is contained in:
parent
f5f165a5eb
commit
051b649628
|
@ -224,6 +224,12 @@ namespace :mastodon do
|
|||
prompt.say "\n"
|
||||
|
||||
loop do
|
||||
if prompt.yes?('Do you want to send e-mails from localhost?', default: false)
|
||||
env['SMTP_SERVER'] = 'localhost'
|
||||
env['SMTP_PORT'] = 25
|
||||
env['SMTP_AUTH_METHOD'] = 'none'
|
||||
env['SMTP_OPENSSL_VERIFY_MODE'] = 'none'
|
||||
else
|
||||
env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q|
|
||||
q.required true
|
||||
q.default 'smtp.mailgun.org'
|
||||
|
@ -244,6 +250,19 @@ namespace :mastodon do
|
|||
q.echo false
|
||||
end
|
||||
|
||||
env['SMTP_AUTH_METHOD'] = prompt.ask('SMTP authentication:') do |q|
|
||||
q.required
|
||||
q.default 'plain'
|
||||
q.modify :strip
|
||||
end
|
||||
|
||||
env['SMTP_OPENSSL_VERIFY_MODE'] = prompt.ask('SMTP OpenSSL verify mode:') do |q|
|
||||
q.required
|
||||
q.default 'peer'
|
||||
q.modify :strip
|
||||
end
|
||||
end
|
||||
|
||||
env['SMTP_FROM_ADDRESS'] = prompt.ask('E-mail address to send e-mails "from":') do |q|
|
||||
q.required true
|
||||
q.default "Mastodon <notifications@#{env['LOCAL_DOMAIN']}>"
|
||||
|
@ -261,7 +280,8 @@ namespace :mastodon do
|
|||
:user_name => env['SMTP_LOGIN'].presence,
|
||||
:password => env['SMTP_PASSWORD'].presence,
|
||||
:domain => env['LOCAL_DOMAIN'],
|
||||
:authentication => :plain,
|
||||
:authentication => env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain,
|
||||
:openssl_verify_mode => env['SMTP_OPENSSL_VERIFY_MODE'],
|
||||
:enable_starttls_auto => true,
|
||||
}
|
||||
|
||||
|
@ -271,6 +291,7 @@ namespace :mastodon do
|
|||
|
||||
mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!'
|
||||
mail.deliver
|
||||
break
|
||||
rescue StandardError => e
|
||||
prompt.error 'E-mail could not be sent with this configuration, try again.'
|
||||
prompt.error e.message
|
||||
|
|
Loading…
Reference in a new issue