読者です 読者をやめる 読者になる 読者になる

ActionMailer単体で、HTMLメール送るコードをとにかくすぐ書きたいんです。。

なんというナマケモノでしょう。。

HTMLメールのサンプルを探してぐぐると大抵はもう.html.erbを作っています。
それがもう面倒臭い場合あるいはとにかくHTMLメール送信を試したい場合はこんな調子です。

require 'action_mailer'
require 'yaml'
require 'erb'

conf = YAML.load_file('config.yml')
ActionMailer::Base.smtp_settings = {
  address: 'smtp.gmail.com',
  port: 587,
  domain: 'smtp.gmail.com',
  authentication: :plain,
  user_name: conf['mailer']['user_name'],
  password: conf['mailer']['password'],
  enable_starttls_auto: true
}
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.delivery_method = :smtp

class Mailer < ActionMailer::Base
  default from: 'aaaaaaaaa@bbbbbb.com'

  def html_mail(to, subject, body)
    mail(to: to, subject: subject) do |format|
      format.html { render text: body }
    end
  end
end

Mailer.html_mail('xxxxx@yyyyyyy.com','html mail test', '<b>bold?<b><br /><i>italic?</i>').deliver

一杯書きましたがformat.textformat.htmlに変えるだけです。。

参考

Rubyでメールを送る - Qiita [キータ]