Sha256: 05d8c0e1dd02c922a565620798c81bada110457c3efead920aee65d5d884a012

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

#
# 普通なことをしたいならTMailを使いましょう
#

require 'net/smtp'
require 'kconv'

module Keystone
  module Mail
    class Send
      def initialize(smtp_addr="127.0.0.1",smtp_port=25)
        @smtp_addr,@smtp_port=smtp_addr,smtp_port
      end

      def self.send(from,to,title,body,smtp_addr="127.0.0.1",smtp_port=25)
        from_addr,from_addr_4_header = create_addr_and_header(from)
        title = Kconv.tojis(title)
        title = title.split(//,1).pack('m'); title = title.chomp
        if to.class.to_s == 'Array'
          tomany = to.join(',')
        else
          tomany = to.to_s;
        end

        head = <<HEAD
Subject: =?ISO-2022-JP?B?#{title}?=
To: #{tomany}
From: #{from_addr_4_header}
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: Text/Plain; charset=iso-2022-jp
HEAD
        src = head + "\n" + Kconv.tojis(body)
    #    puts src
        m = Net::SMTPSession.new(smtp_addr, smtp_port)
        m.start()
        m.sendmail(src, from_addr, to)
        m.finish
      end

      def send(from,to,title,body)
        self.class.send(from,to,title,body,@smtp_addr,@smtp_port)
      end

      private

      def self.create_addr_and_header(addr_data)
        addr = ''
        addr_4_header = ''
        case addr_data.class.to_s
          when 'String'
            addr = addr_data.dup
            addr_4_header = addr.dup
          when 'Array'
            addr = addr_data[1].dup
            addr_4_header = addr_data[0].dup
            addr_4_header = Kconv.tojis(addr_4_header)
            addr_4_header = addr_4_header.split(//,1).pack('m'); addr_4_header = addr_4_header.chomp
            addr_4_header = "=?ISO-2022-JP?B?#{addr_4_header}?=<#{addr}>"
          else
            # TODO exception
            raise 'addr_data must be String or Array'
        end
        return addr,addr_4_header
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
kanamei-kanamei-keystone-0.0.10 lib/keystone/mail/send.rb
kanamei-keystone-0.0.10 lib/keystone/mail/send.rb
kanamei-keystone-0.0.9 lib/keystone/mail/send.rb