ActionMailer
rails g mailer name_of_mailer
app/mailers/name_of_mailer.rb
and some in the test unit# app/mailers/name_of_mailer.rb
class NameOfMailer < ActionMailer:: Base
default from: "from@example.com"
end
# app/mailers/name_of_mailer.rb
class NameOfMailer < ActionMailer:: Base
default from: "from@example.com"
def sample_email(user)
@user = user
mail(to: @user.email, subject: "Sample Email")
end
end
app/views/name_of_mailer
and create a
file with a .html.erb
extension<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Hi <%= @user.name %></h1>
<p>
Sample mail sent using smtp.
</p>
</body>
</html>
.text.erb
extensionHi <%= @user.name %>
Sample mail sent using smtp.
/rails/name_of_mailer/function_name
http://localhost:3000/rails/mailers/example_mailer/sample_mail_preview
test/mailers/previews/name_of_mailer_preview.rb
use the following code:class ExampleMailerPreview < ActionMailer::Preview
def sample_mail_preview
ExampleMailer.sample_email(User.first)
end
end
config/environments/
secrets.yml
fileconfig.action_mailer.delivery_method = :smtp
# SMTP settings for gmail
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => ENV['gmail_username'],
:password => ENV['gmail_password'],
:authentication => "plain",
:enable_starttls_auto => true
}
NameOfMailer.sample_email(@user).deliver