メイラーの基本的な利用法

、前のセクション、我々はのは、それを使ってみましょう、メーラーを生成しました。

 

情報

まず、送信者と受信者、および電子メールの件名を指定する必要があります。この目的のためにメーラーは3つの必須メソッド公開し.from.to.subjectおよびオプションの2を:.cc.bcc

それらはすべて文字列.toを受け取りますが、複数の受信者を設定するために文字列の配列を受け入れることもできます。

class Mailers::Welcome
  include Hanami::Mailer

  from    'noreply@bookshelf.org'
  to      'user@example.com'
  subject 'Welcome to Bookshelf'
end

電子メールを配信する際には、
両方.fromと情報を.to指定する必要があります。

電子メールの件名は必須ではありませんが、この情報を設定することをお勧めします。

ハードコーディングされた値が送信者を設定するのに役立つかもしれないことに気づいたかもしれませんが、残りの詳細についてはうまくいきません。

合格した場合は、引数として記号を、それは次のように解釈されます方法我々は、その情報に使用します。

class Mailers::Welcome
  include Hanami::Mailer

  from    'noreply@bookshelf.org'
  to      :recipient
  subject :subject

  private

  def recipient
    user.email
  end

  def subject
    "Welcome #{ user.name }!"
  end
end

メソッドの名前とそれに対応するDSLの間には慣習がありません。

テンプレートから利用可能にする必要がない限り、これらの情報には常にプライベートメソッドを使用することをお勧めします。

 

コンテキスト

 

地方自治体

前のセクションではuser変数を参照しましたが、どこから来ましたか?メーラーは、ビューと同様に、レンダリング中にメーラーを使用できるようにするために、引数として渡すことができる一連のローカルを持つことができます。

u = User.new(name: 'Luca', email: 'luca@example.com')
Mailers::Welcome.deliver(user: u)

私たちは、私たちが望むだけ多くの地元の人々を指定することができます。私たちがそれぞれのために使う鍵は、そのオブジェクトを参照するのと同じものです。たとえば、私たちは:user鍵を渡しました。私たちはuserメーラーとそれに関連するテンプレートで使うことができます。

地方のための以下のキーは予約済みです::format:charset

 

範囲

メーラーで定義されているすべてのパブリックメソッドには、テンプレートからアクセスできます。

# lib/bookshelf/mailers/welcome.rb
class Mailers::Welcome
  include Hanami::Mailer

  # ...

  def greeting
    "Ahoy"
  end
end
# lib/bookshelf/mailers/templates/welcome.html.erb
<h2><%= greeting %></h2>