2014-09-09 4 views
6

Sto costruendo una mailing list per un'organizzazione studentesca presso la mia università. L'organizzazione ha circa 6000 membri e per evitare i costi ho ricevuto il permesso di utilizzare i server di posta elettronica delle scuole e hanno creato un account per me.Rails 4 Net :: SMTPAuthenticationError: 535 # 5.7.0 Autenticazione fallita

Ho testato il conto usando il mio client di posta elettronica e tutto sembra funzionare bene, ma quando provo a trasmettere attraverso il mio Rails 4 app ottengo l'errore:

Net::SMTPAuthenticationError: 535 #5.7.0 Authentication failed 

ho è configurato in questo modo :

application.rb

config.action_mailer.smtp_settings = 
{ 
    :address => "smtp.school.edu", 
    :port  => 25, 
    :enable_starttls_auto => true, 
    :user_name => "[email protected]", 
    :password => "mypassword", 
    :authentication => 'login', 
    :domain => 'http://myapp.herokuapp.com/' 
} 

Anche in questo caso le credenziali sono tutti corretti, ho teste d attraverso il mio client di posta elettronica e ho anche seduto con l'amministratore del server per confermare tutto sembra giusto nella mia configurazione per quanto riguarda la porta e le credenziali.

Mi è stato detto che il server smtp è "completamente aperto al pubblico" e non c'è nulla che blocchi una connessione e abbiamo controllato i loro registri e non hanno nemmeno visto un tentativo di connessione dalla mia app.

Qualcuno ha idea di cosa sta succedendo qui? C'è qualche impostazione che non so che potrebbe essere disattivata?

+0

È possibile pubblicare i registri dall'azione dopo l'invio della posta. –

+0

Inoltre, continua a controllare la cartella spam, poiché testare una determinata funzionalità viene ripetutamente considerata da Google come spam. –

+0

@CaffeineCoder Non sto usando google. – Deekor

risposta

1

"" dominio "punta a" school.edu "invece di" herokuapp.com "? So che quando si imposta smtp per gmail tramite le impostazioni action_mailer, avete qualcosa di simile:

config.action_mailer.smtp_settings = { 
    :address    => 'smtp.gmail.com', 
    :port     => 587, 
    :domain    => 'gmail.com', 
    :user_name   => '[email protected]', 
    :password    => 'example_password', 
    :authentication  => 'login', 
    :enable_starttls_auto => true 
    } 
+0

hmmm non sembra fare la differenza – Deekor

6

Prova ad aggiungere openssl_verify_mode => 'none' alla tua azione impostazioni Mailer:

config.action_mailer.smtp_settings = 
{ 
    :address => "smtp.school.edu", 
    :port  => 25, 
    :enable_starttls_auto => true, 
    :user_name => "[email protected]", 
    :password => "mypassword", 
    :authentication => 'login', 
    :domain => 'http://myapp.herokuapp.com/', 
    :openssl_verify_mode => 'none' 
} 

concesso, stiamo usando Rails 3, ma questo ha funzionato per me Il problema per noi era che i nostri certificati sono autofirmati e la libreria Rails usa considera questo un problema. Questo è un article che parla dell'opzione.

+0

Grazie per il suggerimento, sfortunatamente ottengo ancora lo stesso messaggio di errore. – Deekor

+1

Hai provato a connetterti al server smtp usando telnet o simili? Ecco come ho capito cosa c'era di sbagliato nella mia configurazione ... – user3334690

+0

Sì e ha funzionato. – Deekor

1

Il dominio deve contenere "http: //"?

+0

non ha importanza secondo l'amministratore del server – Deekor

1

Creare un file nella cartella setup_mail.rbconfig/initializers/ e mettere il codice: -

ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.perform_deliveries = true 
ActionMailer::Base.smtp_settings = { 
    :address => "smtp.school.edu", 
    :domain => 'myapp.herokuapp.com', 
    :port  => 25, 
    :user_name => "[email protected]", 
    :password => "mypassword", 
    :authentication => :plain, 
    :enable_starttls_auto => true 
} 
ActionMailer::Base.default_url_options[:host] = "myapp.herokuapp.com" 
+0

come è diverso da quello che sto facendo? – Deekor

0

Il mio problema è stato risolto seguendo i punti.

config.action_mailer.default :charset => "utf-8" 
config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true 
config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
    address: 'smtp.gmail.com', 
    port: 587, 
    domain: 'mysite.com', 
    user_name: [email protected], 
    password: mypassword, 
    authentication: 'plain', 
    enable_starttls_auto: true 
} 

come Google cercherà di bloccare il vostro segno-in se si è disattivato l'accesso per le applicazioni meno sicure nelle impostazioni account. Pertanto, segui questo accesso link e "Attiva" per le app meno sicure.