# Form e mail

**URL:** <https://www.ruby-forum.com/t/form-e-mail/135941>\
**Category:** IT\
**Created:** [April 26, 2008, 6:25pm UTC](https://www.ruby-forum.com/t/form-e-mail/135941 "2008-04-26T18:25:33Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [April 26, 2008, 6:25pm UTC](https://www.ruby-forum.com/t/form-e-mail/135941/1 "2008-04-26T18:25:33Z")

</div>

ciao ragazzi vi premetto che ho iniziato da poco a vedere un po come  
funziona Rails vi volevo chiedere se mi potevate dare un dritta.  
Io ho creato un form dove un utente si puo inscrivere ad un corso di  
formazione, e vorrei che una volta avvenuta l’inscrione gli viene  
mandato un mail di conferma con dentro ad esempio tutti i dati dove si  
trova il corso ecc…  
grazie mille ragazzi  
ciao  
lore

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 8, 2008, 11:02am UTC](https://www.ruby-forum.com/t/form-e-mail/135941/2 "2008-05-08T11:02:19Z")

</div>

ciao ragazzi scusate non voglio essere insistente magari riprovo a  
formulare la domanda  
io ho creato la struttura con lo scaffold dove mi viene fuori il form  
nome cognome professione ed email, a questo punto un utente si iscrive  
compilando questo form e una volta avvenuta l’iscrizione dovrebbe  
ricevere l’emeil di notifica  
io so che devo crearlo con actionMailer ma non capisco se devo  
configurare qualcosa, io sto utilizzando leopard  
scusate di nuovo ma mi devo sbloccare  
buon giornata a tutti  
lore

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 8, 2008, 11:25am UTC](https://www.ruby-forum.com/t/form-e-mail/135941/3 "2008-05-08T11:25:39Z")

</div>

Ciao Lorenzo

Prova cosi’:

#Â in app/controller/user\_controller.rb  
class UsersController \< ApplicationController

def register  
@user = User.new(params[:user])  
@user.status = User::STATUS\_REGISTERED  
@user.password, @user.password\_confirmation = params[:password],  
params[:password\_confirmation]  
token = Token.new(:user =\> @user, :action =\> “register”)  
if @user.save and token.save  
MailSystem.deliver\_register(token)  
flash[:notice] = “Registrazione effettuata: riceverai una mail con  
le istruzioni”  
redirect\_to :action =\> ‘login’  
else  
#Â flash[:error] = …  
end  
end

# Token based account activation

def activate  
token = Token.find\_by\_action\_and\_value(‘register’, params[:token])  
redirect\_to(home\_url) && return unless token and !token.expired?  
user = token.user  
user.status = User::STATUS\_ACTIVE  
if user.save  
token.destroy  
flash[:notice] = “Ora puoi accedere al sito”  
end  
redirect\_to :action =\> ‘login’  
end

#Â … altri metodi  
end

#Â in app/models/mail\_system.rb  
class MailSystem

def register(token)  
recipients token.user.mail  
subject “Mail di conferma”  
body :token =\> token,  
:url =\> url\_for(:controller =\> ‘account’, :action =\>  
‘activate’, :token =\> token.value)  
end

end

#Â in app/views/mail\_system/register.html.erb

Benvenuto sul nostro sito.  
Clicca sul link che segue per completare la registrazione.

\<%= auto\_link(@url) %\>

E scusaci per il ritardo 🙂

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 8, 2008, 11:28am UTC](https://www.ruby-forum.com/t/form-e-mail/135941/4 "2008-05-08T11:28:28Z")

</div>

dimenticavo:

class MailSystem \< ActionMailer::Base

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 8, 2008, 2:04pm UTC](https://www.ruby-forum.com/t/form-e-mail/135941/5 "2008-05-08T14:04:26Z")

</div>

ciao grazie mille della risposta immediata,stavo notando che i metodi  
che mi hai scritto e per login e password, lo posso utlizzare anche per  
semplice iscrizione ad un corso dove non serve neache attivare l’account  
ma sul emil di conferma dice solo dove si trova il corso  
ma per testare il tutto in locale c’Ã¨ la possibilitÃ ?  
scusate ma sono imbranato con programmazione e ho il kaos in testa  
grazie

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 8, 2008, 11:30am UTC](https://www.ruby-forum.com/t/form-e-mail/135941/6 "2008-05-08T11:30:36Z")

</div>

Per dettagli, guardati questo:

> **[\#61 Sending Email - RailsCasts](http://railscasts.com/episodes/61-sending-email)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 8, 2008, 4:09pm UTC](https://www.ruby-forum.com/t/form-e-mail/135941/7 "2008-05-08T16:09:28Z")

</div>

Lorenzo Ferracuti wrote:

> ciao grazie mille della risposta immediata

lol

> stavo notando che i metodi  
> che mi hai scritto e per login e password, lo posso utlizzare anche per  
> semplice iscrizione ad un corso dove non serve neache attivare l’account  
> ma sul emil di conferma dice solo dove si trova il corso  
> ma per testare il tutto in locale c’Ã¨ la possibilitÃ ?  
> scusate ma sono imbranato con programmazione e ho il kaos in testa  
> grazie

Vuoi soltanto notificare all’utente via mail la sua avvenuta iscrizione  
al corso?

Allora diventa molto piu’ semplice:

# in app/controller/user\_controller.rb

class CourseController \< ApplicationController

def register  
# registra l’utente al corso  
# magari con qualcosa di simile:  
user = User.find(params[:user])  
course = Course.find(params[:id])  
course.users \<\< user

```
# e qui mandi la mail
MailSystem.deliver_registeration(user, course)

flash[:notice] = "Registrazione effettuata: riceverai una mail con 

```

le istruzioni etc etc"  
end

end

# in app/models/mail\_system.rb

class MailSystem \< ActionMailer::Base

def registeration(user, course)  
recipients user.mail  
subject “Sei registrato al nuovo corso etc etc”  
body :user =\> user, :course =\> course  
end

end

# in app/views/mail\_system/registeration.html.erb

Benvenuto al nuovo corso..

Qui puoi scrivere tutto quello che vuoi che appaia nella mail:  
indirizzo del luogo dove si terra’ il corso, orari, etc.  
utilizzando magari informazioni dagli oggetti @course e @user  
come in questo saluto:

Ciao \<%= @user.name %\>,

…

---

<div class="post-metadata">

**Author:** ![lore](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9dc877/32.png) [@lore](https://www.ruby-forum.com/u/lore)\
**Post date:** [May 14, 2008, 6:14pm UTC](https://www.ruby-forum.com/t/form-e-mail/135941/8 "2008-05-14T18:14:47Z")

</div>

ciao grazie mille per l’aiuto che mi stai dando ma vi vorrei chidere un  
ultima cosa per adesso sembra che nn mi sta dando nessun errore anche  
inserendo la parte di actionmail  
ma come potrei testare se funziona in locale stavo vedendo nel libro  
“svillupare applicazioni web con rails” che mi parla di libreria Tmail  
ma non capito bene come funziona e anche di test funzionali  
mi sapreste dir qualcosa come muovermi  
grazie mille per l’aiuto vi chideo quest’ultima dritta  
ciao
