2014-04-15 23:50:15 -04:00
#!/usr/bin/env ruby
require 'action_mailer'
# Make this your email address. Poor example.com gets SO MUCH MAIL
YOUR_EMAIL = " nobody@example.com "
# Change these to be the same settings as your Discourse environment
DISCOURSE_SMTP_ADDRESS = " smtp.example.com " # (mandatory)
@DISCOURSE_SMTP_PORT = 587 # (optional)
@DISCOURSE_SMTP_USER_NAME = " username " # (optional)
@DISCOURSE_SMTP_PASSWORD = " blah " # (optional)
#@DISCOURSE_SMTP_OPENSSL_VERIFY_MODE = "none" # (optional) none|peer|client_once|fail_if_no_peer_cert
# Note that DISCOURSE_SMTP_ADDRESS should NOT BE ALLOWED to relay mail to
# YOUR_EMAIL without authentication
MAILFROM = @DISCOURSE_SMTP_USER_NAME || YOUR_EMAIL
MAILTO = YOUR_EMAIL
### You shouldn't need to change anything below here
$delivery_options = {
user_name : @DISCOURSE_SMTP_USER_NAME || nil ,
password : @DISCOURSE_SMTP_PASSWORD || nil ,
address : DISCOURSE_SMTP_ADDRESS ,
port : @DISCOURSE_SMTP_PORT || nil ,
openssl_verify_mode : @DISCOURSE_SMTP_OPENSSL_VERIFY_MODE || nil }
class EmailTestMailer < ActionMailer :: Base
def email_test ( mailfrom , mailto )
mail ( from : mailfrom ,
to : mailto ,
body : " Testing email settings " ,
subject : " Discourse email settings test " ,
delivery_method_options : $delivery_options )
end
end
message = EmailTestMailer . email_test ( MAILFROM , MAILTO )
begin
2014-10-15 00:04:47 -07:00
message . deliver_now ( )
2014-04-15 23:50:15 -04:00
rescue SocketError = > e
print " Delivery failed: " + e . message . strip ( ) + " \n "
print " Is the server hostname correct? \n "
rescue OpenSSL :: SSL :: SSLError = > e
print " Delivery failed: " + e . message . strip ( ) + " \n "
print " You probably need to change the ssl verify mode. \n "
rescue Net :: SMTPAuthenticationError = > e
print " Delivery failed: " + e . message . strip ( ) + " \n "
print " Check to ensure your username and password are correct. \n "
rescue Net :: SMTPFatalError = > e
print " Delivery failed: " + e . message . strip ( ) + " \n "
print " Check the above error and fix your settings. \n "
else
print " Successfully delivered. \n "
end