# Mailer
A classe **ActionMailer** possibilita o aplicativo Rails a enviar emails e funciona como do mesmo jeito que um *Controller* e seus *Views*. Os arquivos dessa classe ficam na pasta ```app/mailers``` e os *Views* ficam em ```app/views```.
## Criando um novo Mailer
Para criar uma nova classe, use o gerador na linha de comando:
```rails generate mailer UserMailer```
Os seguintes arquvos vão ser gerados:
create app/mailers/user_mailer.rb
create app/mailers/application_mailer.rb
invoke erb
create app/views/user_mailer
create app/views/layouts/mailer.text.erb
create app/views/layouts/mailer.html.erb
invoke test_unit
create test/mailers/user_mailer_test.rb
create test/mailers/previews/user_mailer_preview.rb
## Editando o Mailer
O arquivo ```app/mailers/user_mailer.rb``` contem um novo mailer vazio
class UserMailer < ApplicationMailer
end
Vamos agora criar uma novo metodo para enviar um email de boas vindas aos usuários:
class UserMailer < ApplicationMailer
default from: 'notifications@example.com'
def welcome_email(user)
@user = user
@url = 'http://example.com/login'
mail(to: @user.email, subject: 'Welcome to My Awesome Site')
end
end
## Criando um view
Crie os seguintes arquivos para os *Views*:
* ```app/views/user_mailer/welcome_email.html.erb```
* ```app/views/user_mailer/welcome_email.text.erb```
Esses arquivos correspondem as duas versões do email, uma em HTML e outra em texto. As duas são enviadas e o programa em que o usuário está lendo o email decide qual versão mostrar.
#### Links
* [ActionMailer Basics - RailsGuides](http://guides.rubyonrails.org/action_mailer_basics.html)
-----------------
[Index](index.md)