Problema con ActionMailer

Salve a tutti,
ho un problema ad inviare email con ruby (da locale, per il momento). Vi
anticipo che lavoro su sistema operativo Mac OS X 10.6, e ho l’ultima
versione di ruby installata. Ho creato con rails un modello “user” e un
modello “user_mailer” (più la view per il messaggio da inviare, e tutto
il necessario per creare un utente, ma questo per ora non serve). Ho
anche installato la gem smpt-lts.
Posto il codice dei vari file:

environment.rb
codice:

Rails::Initializer.run do |config|

config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true

end

ActionMailer::Base.smtp_settings = {
:address => “smtp.gmail.com”,
:port => 587,
:tls => true,
:domain => “http://memorialmatteucci.heroku.com/”,
:user_name => “miagmailmail”,
:password => “[mygmailpassword]”,
:authentication => :plain
}

user_mailer.rb
codice:
class UserMailer < ActionMailer::Base

def signup_notification(user)
recipients “#{user.email}”
from “[email protected]
subject “Please activate your new account”
sent_on Time.now
body[:user] = user
body[:email] = user.email
end

end

Ovviamente ho creato user mediante scaffold (e tutto il resto), e
possiede il campo email. Per testare, via console inizializzo un oggetto
di tipo user, poi chiamo il metodo
UserMailer.deliver_signup_notification(userInizializzato), carica per un
po’ e poi ottengo la seguente risposta:

=> #<TMail::Mail port=#TMail::StringPort:id=0x80f22c9c
bodyport=#TMail::StringPort:id=0x80f2030c>

Ovviamente so che sto spedendo da un account allo stesso account, sta di
fatto che non arriva niente sulla mia cartella di gmail.
Cosa c’è che non va?

Il 19 gennaio 2010 19.49, Emanuele B. [email protected]
ha scritto:

Ovviamente so che sto spedendo da un account allo stesso account, sta di
fatto che non arriva niente sulla mia cartella di gmail.

ciao,

occhio che gmail spesso non mostra i messaggi mandati a sé stessi da
fuori, io una volta ci sono impazzito tentando di configurare postfix
(provavo a spedire a me stesso per vedere se arrivava e non arrivava
mai…).

Ti consiglio di provare con un indirizzo non gmail.

pietro

Mmmm…installare la mail gem o la tmail gem potrebbe cambiare
qualcosa?

Mmm, ho provato a spedire ad un mio account hotmail, ma purtroppo non
funziona lo stesso. Mi chiedo se ci sia qualche problema con le
impostazioni, o addirittura con il sistema. Non so proprio dove andare a
parare…

Il 20 gennaio 2010 10.16, Emanuele B. [email protected]
ha scritto:

Mmm, ho provato a spedire ad un mio account hotmail, ma purtroppo non
funziona lo stesso. Mi chiedo se ci sia qualche problema con le
impostazioni, o addirittura con il sistema. Non so proprio dove andare a
parare…

Cercando velocemente su un forum trovo che (forse) bisogna configurare:
:enable_starttls_auto => true

poi, qui:

vedo che :domain è impostato a “gmail.com”.

Ma piuttosto che fare mille tentativi a caso, proverei a farmi
stampare in qualche modo l’output che ricevi da gmail, probabilmente
c’è un messaggio d’errore che ti può guidare verso la soluzione.

pietro

On Wednesday 20 January 2010 11:08:35 Emanuele B. wrote:

Si sicuramente…adesso mi devo informare su come stampare l’output
ricevuto da gmail, non sono molto ferrato su queste cose. Nel link che
mi hai dato vedo che richiede smtp_tls, ma purtroppo quando cerco di
installare la gem smtp_tls mi viene detto che bisogna avere la versione
precedente di Ruby (la 1.8.6, io ho la 1.8.7)…

Hai provato a dare un’occhiata nei log di sistema?
Penso che osx tenga i log di sendmail in: /var/log/mail.log

Ciao
Flavio

Si sicuramente…adesso mi devo informare su come stampare l’output
ricevuto da gmail, non sono molto ferrato su queste cose. Nel link che
mi hai dato vedo che richiede smtp_tls, ma purtroppo quando cerco di
installare la gem smtp_tls mi viene detto che bisogna avere la versione
precedente di Ruby (la 1.8.6, io ho la 1.8.7)…

Sono riuscito a risolvere.
Ho messo nella libreria locale il file smtp_tls.rb e l’ho importato in
environment.rb.
Il problema era che hotmail in automatico respinge le mail da ip
dinamici, quindi quelle inviate dal mio computer con sendmail non le
accettava. Dopo aver importato smtp_tls gmail inviava anche a se stesso!
:smiley:

Scusa mi diresti esattamente come hai fatto a risolvere il problema?
Credo di avere lo stesso problema anch’io :slight_smile:
In particolare:
-dove lo trovo il file “smtp_tls.rb”?

ad esempio qui. Basta copiare e incollare il codice in un file chiamato
smtp_tls.rb.

http://www.koders.com/ruby/fid0BDA90145299691DD1B308E7252B492780BE1B55.aspx?s=socket

-una volta trovato in quale cartella lo metto?

nella cartella della tu applicazione, sotto la directori lib/.

That’s all.

Emanuele B. wrote:

Sono riuscito a risolvere.
Ho messo nella libreria locale il file smtp_tls.rb e l’ho importato in
environment.rb.
Il problema era che hotmail in automatico respinge le mail da ip
dinamici, quindi quelle inviate dal mio computer con sendmail non le
accettava. Dopo aver importato smtp_tls gmail inviava anche a se stesso!
:smiley:

Scusa mi diresti esattamente come hai fatto a risolvere il problema?
Credo di avere lo stesso problema anch’io :slight_smile:
In particolare:
-dove lo trovo il file “smtp_tls.rb”?
-una volta trovato in quale cartella lo metto?

Grazie anticipatamente!

Alex