commit: 051b649628d8039ff15f0c035c6f8fe5dbf045d6
parent: f5f165a5ebad5493a0d127c89b92876ffb75b0ef
Author: Ushitora Anqou <ushitora_anqou@yahoo.co.jp>
Date: Tue, 13 Mar 2018 05:41:26 +0900
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
Diffstat:
1 file changed, 37 insertions(+), 16 deletions(-)
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
@@ -224,24 +224,43 @@ namespace :mastodon do
prompt.say "\n"
loop do
- env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q|
- q.required true
- q.default 'smtp.mailgun.org'
- q.modify :strip
- end
+ 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'
+ q.modify :strip
+ end
- env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q|
- q.required true
- q.default 587
- q.convert :int
- end
+ env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q|
+ q.required true
+ q.default 587
+ q.convert :int
+ end
- env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q|
- q.modify :strip
- end
+ env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q|
+ q.modify :strip
+ end
- env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q|
- q.echo false
+ env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q|
+ 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|
@@ -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