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:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							f5f165a5eb
						
					
				
				
					commit
					051b649628
				
			@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user