send mail in rails

Creating and Sending Mail


1.CREATE A Notice MAILER

rails g mailer NoticeMailer decomp_change

create   app/mailers/notice_mailer.rb

invoke   erb

create   app/views/notice_mailer

create   app/views/notice_mailer/decomp_change.text.erb


app/mailers/notice_mailer.rb

class NoticeMailer < ActionMailer::Base
  default from: "from@example.com"

  def decomp_change
    @greeting = "Hi"
    mail to: "to@example.org"
  end
end
 

Sending Attachments in Mail

class NoticeMailer < ActionMailer::Base
  default from: "from@example.com"

  def decomp_change (notice)
    @notice = notice
    @last_tweet = @notice.tweets.last
    attachments['z.pdf'] = File.read("#{Rails.root}/public/notice.pdf")
    mail to: @notice.email, subject: 'Your decomp stage has changed'
  end
end
 

2.MAILER VIEWS

app/views/notice_mailer/decomp_change.text.erb

Greetings <%= @notice.name %>,

  Your decomposition state is now <%= @notice.decomp %> and your
last tweet was: <%= @last_tweet.body %>

Good luck!
 

app/views/notice_mailer/decomp_change.html.erb

<h1>Greetings <%= @notice.name %>,</h1>

<p>Your decomposition state is now <%= @notice.decomp %> and your
last tweet was: <%= @last_tweet.body %></p>

<%= link_to "View yourself", notice_url(@notice) %>


3.SENDING MAIL

app/models/notice.rb

class Notice < ActiveRecord::Base
  after_save :decomp_change_notification, if: :decomp_changed?

  private
  def decomp_change_notification
    noticeMailer.decomp_change(self).deliver
  end
end
 

4.config

config/environments/development.rb

config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :user_name            => 'poshboytl',
    :password             =>  ENV['GMAIL_PASS'],
    :authentication       => 'plain',
    :enable_starttls_auto => true
  }
 

reference:

http://railscasts-china.com/episodes/how-to-send-emails-in-rails

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值