@ -224,24 +224,43 @@ namespace :mastodon do
prompt . say " \n "
prompt . say " \n "
loop do
loop do
env [ 'SMTP_SERVER' ] = prompt . ask ( 'SMTP server:' ) do | q |
if prompt . yes? ( 'Do you want to send e-mails from localhost?' , default : false )
q . required true
env [ 'SMTP_SERVER' ] = 'localhost'
q . default 'smtp.mailgun.org'
env [ 'SMTP_PORT' ] = 25
q . modify :strip
env [ 'SMTP_AUTH_METHOD' ] = 'none'
end
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 |
env [ 'SMTP_PORT' ] = prompt . ask ( 'SMTP port:' ) do | q |
q . required true
q . required true
q . default 587
q . default 587
q . convert :int
q . convert :int
end
end
env [ 'SMTP_LOGIN' ] = prompt . ask ( 'SMTP username:' ) do | q |
env [ 'SMTP_LOGIN' ] = prompt . ask ( 'SMTP username:' ) do | q |
q . modify :strip
q . modify :strip
end
end
env [ 'SMTP_PASSWORD' ] = prompt . ask ( 'SMTP password:' ) do | q |
env [ 'SMTP_PASSWORD' ] = prompt . ask ( 'SMTP password:' ) do | q |
q . echo false
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
end
env [ 'SMTP_FROM_ADDRESS' ] = prompt . ask ( 'E-mail address to send e-mails "from":' ) do | q |
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 ,
:user_name = > env [ 'SMTP_LOGIN' ] . presence ,
:password = > env [ 'SMTP_PASSWORD' ] . presence ,
:password = > env [ 'SMTP_PASSWORD' ] . presence ,
:domain = > env [ 'LOCAL_DOMAIN' ] ,
: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 ,
: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 = ActionMailer :: Base . new . mail to : send_to , subject : 'Test' , body : 'Mastodon SMTP configuration works!'
mail . deliver
mail . deliver
break
rescue StandardError = > e
rescue StandardError = > e
prompt . error 'E-mail could not be sent with this configuration, try again.'
prompt . error 'E-mail could not be sent with this configuration, try again.'
prompt . error e . message
prompt . error e . message