Sha256: e8c77fce91a072aa266b3b1f1bb110dc5465c14645eb86c75b5d58289c7fe065

Contents?: true

Size: 1.55 KB

Versions: 19

Compression:

Stored size: 1.55 KB

Contents

# -*- coding: utf-8 -*-
#
# Copyright 2013 whiteleaf. All rights reserved.
#

require "yaml"
require "singleton"
require_relative "narou"

class Mailer
  include Singleton

  SETTING_FILE = "mail_setting.yaml"

  class SettingNotFound < StandardError; end
  class SettingUncompleteError < StandardError; end

  attr_reader :error_message

  def self.create
    this = instance
    this.clear
    setting_file_path = File.join(Narou.get_root_dir, SETTING_FILE)
    if File.exist?(setting_file_path)
      options = YAML.load_file(setting_file_path)
      unless options.delete(:complete)
        raise SettingUncompleteError, "設定ファイルの書き換えが終了していないようです。\n" +
                                      "設定ファイルは #{setting_file_path} にあります"
      end
      this.options = options
    else
      raise SettingNotFound
    end
    this
  end

  def initialize
    @options = {}
    @error_message = ""
  end

  def clear
    @options.clear
  end

  def options=(options)
    @options.merge!(options)
  end

  def send(message, attached_file_path = nil)
    gem "mail", "2.5.4"
    require "pony"
    @error_message = ""
    params = @options.dup
    params[:body] = message
    params[:charset] = "UTF-8"
    params[:text_part_charset] = "UTF-8"
    if attached_file_path
      params[:attachments] = { File.basename(attached_file_path) => File.binread(attached_file_path) }
    end
    begin
      Pony.mail(params)
    rescue StandardError => e
      @error_message = e.message
      return false
    end
    true
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
narou-2.9.5 lib/mailer.rb
narou-2.9.4 lib/mailer.rb
narou-2.9.3.1 lib/mailer.rb
narou-2.9.3 lib/mailer.rb
narou-2.9.2 lib/mailer.rb
narou-2.9.1 lib/mailer.rb
narou-2.9.0 lib/mailer.rb
narou-2.8.3.1 lib/mailer.rb
narou-2.8.3 lib/mailer.rb
narou-2.8.2 lib/mailer.rb
narou-2.8.1 lib/mailer.rb
narou-2.8.0 lib/mailer.rb
narou-2.7.2 lib/mailer.rb
narou-2.7.1 lib/mailer.rb
narou-2.7.0 lib/mailer.rb
narou-2.6.1 lib/mailer.rb
narou-2.6.0 lib/mailer.rb
narou-2.5.2 lib/mailer.rb
narou-2.5.1 lib/mailer.rb