メール送信

まずはメール送信クラス

mail_send.rb


class Mail_Send

 #======== コンストラクタ ========
 #
 #ホスト、ポート、あて先、差出人とか
 #
 #============================
 
 def initialize( )
 
  @host = "localhost"
  @port = 25
  @to = ""
  @from = "webmaster@scoutroll.net"
 
 end

 #======== メールの送信メソッド ========
 #
 #メール送信
 #
 #=================================
 
 def send_mail(subject, msg, send_to)

  @to = send_to
 
  #題名を jis & base64 エンコード
  subject = " =?" + "iso-2022-jp" + "?B?" + encode64(Kconv.tojis(subject)).chomp + "?="

  #メール本文組み立て  
  mail_text = <<-EndOfMail

To: #{@to}
From: #{@from}
Subject: #{subject}
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

EndOfMail

  #本文を jis エンコード
  mail_text = mail_text + Kconv.tojis(msg.to_s)

  begin
   #偽メアドのためにタイムアウトを設ける
   timeout(20) do
    Net::SMTP.start( @host, @port ) do |smtp|
     smtp.send_mail( mail_text, @from, @to )
    end
   end
  rescue

  end
 end

end
 

呼び出し元、インスタンス

sendmail.cgi


require "net/smtp" #smtp使うため
require "kconv" #jisにエンコード
require "base64" #base64エンコード
require "timeout" #タイムアウト処理
require "mail_send" #上で作ったメール送信クラス
 
#メール送信インスタンス生成
mail = Mail_Send.new
 
mail_to = "kazan@scoutroll.net"
subject = "SecretLagunabeach技術板"
message = "メール送信\n\n"
message += "===================================================\n"
message += "ScouTrollNetworks 2nd ~☆\n\n"
message += "http://2ns.scoutroll.net/\n"
message += "===================================================\n"

#メール送信
mail.send_mail(subject,message,mail_to)