Login:
Password:


Clicca qui per registrarti


Partners





















Ruby on Rails: inviare mail tramite ActionMailer

07/11/2007 18.05.26 260
Moderatore:fux
Ruby on Rails: inviare mail tramite ActionMailer

Descriviamo brevemete l'utilizzo della libreria ActionMailer per l'invio di mail attraverso rails.

Come prima cosa si dovrà andare nella RAILROOT della vostra applicazione e generare un mailer come segue:

ruby script/generate mailer Notifier

Tale operazione genererà una serie di files

Nella cartella app/models ad esempio troveremo un file nominato notifier.rb che apparirà come tale:

class Notifier < ActionMailer::Base
end

A questo punto andrà inserito un metodo all'interno della classe che servirà a definire i campi utili per la mail

class Notifier < ActionMailer::Base

 def signup_thanks( user )
  # Email header info MUST be added here
  recipients user.email

  cc "nome@address.com"
  bcc "nome@address.com"
  from  "miosito@miosito.com"
  subject “Messaggio dell'oggetto”
 
  sent_on Time.now

  attachment :content_type => "image/jpeg",
        :body => File.read("an-image.jpg")

  # Email body substitutions go here
  body :first_name => user.first_name, :last_name => user.last_name
 end

end

In particolare il campo recipients è quello del destinatario to: mentre il campo body ha la prerogativa di consentire la sostituzione di parametri nel testo della mail

A questo punto nella cartella app/views/notifier inseriremo il file signup_tanks.rhtml che costituirà la vista del nostro messaggio

Carissimo <%= @first_name %> <%= @last_name %>,
Grazie per aver visitato il mio sito!

Dove ovviamente first_name e last_name sono riempiti dinamicamente.

A questo punto nel basterà inviare la mail attraverso la sua "delivery" all'interno del controller con il semplice metodo delivery

def show_page_after_account_creation
...
  Notifier.deliver_signup_thanks(user)
...
end

dove user sarà un oggetto che ovviamente possiederà i campi email, first_name, last_name

Come ultimo step basterà inizializzare il nostro activeMailer per la nostra applicazione andando ad aggiungere nel file RAILROOT/config/environment.rb dopo il blocco Rails::Initializer.run do |config| block

i parametri di configurazione del nostro smtp

ActionMailer::Base.smtp_settings = {
  :address  => "smtp.miodominio.com",
  :port  => 25,
  :domain  => "www.miowebsite.com",
  :user_name  => "utente
@miodominio.com",
  :password  => “miapassword”,
  :authentication  => :login
    }

A questo punto sarà necessario riavviare il server per far sì che l'ActionMailer sia inizializzato e il gioco è fatto.

Per tutte le informazioni necessarie su ActionMailer rimandiamo al link

http://api.rubyonrails.com/classes/ActionMailer/Base.html










Inserisci qui il codice per vedere lo stato della tua spedizione:

City Computer Service S.r.l. © 2007 | P.Iva 09461121007 | Privacy Policy | Cookies Policy Site Map