diff options
author | Ushitora Anqou <ushitora_anqou@yahoo.co.jp> | 2018-03-13 05:41:26 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-03-12 21:41:26 +0100 |
commit | 051b649628d8039ff15f0c035c6f8fe5dbf045d6 (patch) | |
tree | 6e3a5b9d1277df09467e2f0bcec7e9ca343623bd | |
parent | f5f165a5ebad5493a0d127c89b92876ffb75b0ef (diff) |
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
-rw-r--r-- | lib/tasks/mastodon.rake | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 6ea76d738..13df76f91 100644 --- 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 |