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
					
				
					 1 changed files with 37 additions and 16 deletions
				
			
		|  | @ -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 a new issue