106 lines
1.5 KiB
Ruby
106 lines
1.5 KiB
Ruby
class InvoiceMailer
|
|
include Hanami::Mailer
|
|
template 'invoice'
|
|
end
|
|
|
|
class RenderMailer
|
|
include Hanami::Mailer
|
|
end
|
|
|
|
class TemplateEngineMailer
|
|
include Hanami::Mailer
|
|
end
|
|
|
|
class CharsetMailer
|
|
include Hanami::Mailer
|
|
|
|
from 'noreply@example.com'
|
|
to 'user@example.com'
|
|
subject 'こんにちは'
|
|
end
|
|
|
|
class MissingFromMailer
|
|
include Hanami::Mailer
|
|
template 'missing'
|
|
|
|
to 'recipient@example.com'
|
|
subject 'Hello'
|
|
end
|
|
|
|
class MissingToMailer
|
|
include Hanami::Mailer
|
|
template 'missing'
|
|
|
|
from 'sender@example.com'
|
|
subject 'Hello'
|
|
end
|
|
|
|
User = Struct.new(:name, :email)
|
|
|
|
class LazyMailer
|
|
include Hanami::Mailer
|
|
end
|
|
|
|
class MethodMailer
|
|
include Hanami::Mailer
|
|
|
|
from :sender
|
|
to :recipient
|
|
subject :greeting
|
|
|
|
def greeting
|
|
"Hello, #{user.name}"
|
|
end
|
|
|
|
private
|
|
|
|
def sender
|
|
"hello-#{user.name.downcase}@example.com"
|
|
end
|
|
|
|
def recipient
|
|
user.email
|
|
end
|
|
end
|
|
|
|
class WelcomeMailer
|
|
include Hanami::Mailer
|
|
|
|
from 'noreply@sender.com'
|
|
to ['noreply@recipient.com', 'owner@recipient.com']
|
|
cc 'cc@recipient.com'
|
|
bcc 'bcc@recipient.com'
|
|
|
|
subject 'Welcome'
|
|
|
|
def greeting
|
|
'Ahoy'
|
|
end
|
|
|
|
def prepare
|
|
mail.attachments['invoice.pdf'] = '/path/to/invoice.pdf'
|
|
end
|
|
end
|
|
|
|
class MandrillDeliveryMethod
|
|
def initialize(options)
|
|
@options = options
|
|
end
|
|
|
|
def deliver!(mail)
|
|
@options.fetch(:deliveries).push(mail)
|
|
end
|
|
end
|
|
|
|
module Users
|
|
class Welcome
|
|
include Hanami::Mailer
|
|
end
|
|
end
|
|
|
|
module DefaultSubject
|
|
def self.included(mailer)
|
|
mailer.subject 'default subject'
|
|
end
|
|
end
|