From 76c8286bd0640cb12e4d139d5640fdbf9b14eaed Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 8 Apr 2024 09:27:51 +0900 Subject: [PATCH] Don't use NKF --- lib/racknga/exception_mail_notifier.rb | 25 +++++++++++++------------ racknga.gemspec | 2 ++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/racknga/exception_mail_notifier.rb b/lib/racknga/exception_mail_notifier.rb index 0c97780..136bf47 100644 --- a/lib/racknga/exception_mail_notifier.rb +++ b/lib/racknga/exception_mail_notifier.rb @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2010-2011 Kouhei Sutou +# Copyright (C) 2010-2024 Sutou Kouhei # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,13 +14,13 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -require 'time' -require 'net/smtp' -require 'etc' -require 'socket' -require 'nkf' +require "base64" +require "etc" +require "net/smtp" +require "socket" +require "time" -require 'racknga/utils' +require "racknga/utils" module Racknga # Ruby 1.9 only. 1.8 isn't supported. @@ -198,10 +196,13 @@ def transfer_encoding def encode_subject(subject) case charset when /\Aiso-2022-jp\z/i - NKF.nkf('-Wj -M', subject) - else - NKF.nkf('-Ww -M', subject) + subject = subject.encode("ISO-2022-JP") + end + base64_subject = Base64.encode64(subject) + lines = base64_subject.lines.collect do |line| + "=?#{charset}?B?#{line.chomp}?=" end + lines.join("\r\n") end end end diff --git a/racknga.gemspec b/racknga.gemspec index 12e726f..1224b8e 100644 --- a/racknga.gemspec +++ b/racknga.gemspec @@ -55,6 +55,8 @@ Gem::Specification.new do |spec| spec.files += Dir.glob("example/*.rb") spec.test_files = Dir.glob("test/**/*.rb") + spec.add_runtime_dependency("base64") + spec.add_runtime_dependency("csv") spec.add_runtime_dependency("net-smtp") spec.add_runtime_dependency("rack")