リリースノート

Sisimai 5.5.0


2025/12/05

Sisimai 5.5.0をリリースしました。 このバージョンにおける主な変更点は、Ruby版Sisimaiの最低実行バージョンが Ruby 2.5に引き上げられた点とv5.2.0で廃止となったアクセサの削除、いくつかのバグ修正、 エラーメッセージのパターン追加や細いコードの改善などです。 Perl版Sisimaiで入った変更内容にはPerlが、 Ruby版SisimaiではRubyが、 Go版SisimaiではGoが、 それぞれ冒頭に入っています。

Sisimai 5.0.0でVersion 4系とは非互換な変更が多く入っていますので、 インストールまたはアップグレードの前に実行環境のPerlやRubyのバージョンを確認してください。

非互換な変更

  • Perl Ruby Sisimai 5.2.0で廃止となった下記Sisimai::Factオブジェクトの アクセサと解析結果のキー(JSONの項目名)をそれぞれ削除しました。 #548 #325
    • smtpagent (v5.5.0以降はdecodedbyを使用してください)
    • smtpcommand (v5.5.0以降はcommandを使用してください)
  • Ruby Sisimai 5.5.0からRuby 2.5.0以上が必要です。 #375

バグ修正

  • Ruby MIMEデコードした文字列の結合で生じるEncoding::CompatibilityError を修正しました。
    Thanks to @timoschilling #361 #362
  • Go Perl Ruby MIMEデコードの処理でindex out of rangeが出るバグを修正しました。
    Thanks to @timoschilling #203 #606 #368
  • Go Perl Ruby いくつかの間違ったバウンス理由名とAction:フィールドの値 を修正しました。 #247 #248 #250 #251 #255 #618 #620 #621 #623 #624 #384 #385 #386
  • Go Perl Ruby IsEmailAddress()のバグを修正しました。 #263 #626 #389
  • Go addressパッケージのFind()関数内でgroupindexに 間違った値が代入されているバグを修正しました。 #265
  • Go Rise()関数にVacationオプションを渡しても自動応答メッセージが バウンスメールとして処理されないバグを修正しました。 #242

細い改善

  • Perl Ruby 下記モジュールのエンコードがShift-JISになっていたのをUTF-8に修正しました。 ファイルの文字コードが違うことによるバグは確認されていません。 #599 #358
    • Sisimai.pm
    • Sisimai/RFC1123.pm
    • Sisimai/String.pm
    • Sisimai/Lhost/Exchange2007.pm
    • sisimai/lhost/exchange2007.rb
  • Go Perl Ruby SMTP応答コードだけで一意に決定できるバウンス理由を定義しました。 #173 #601 #360
  • Go Perl Ruby SMTPステータスコードの曖昧さを判定するIsAmbiguous()関数を Sisimai::SMTP::Statusに実装しました。 #174 #604 #365
  • Go Perl Ruby RFC6533で言及されているContent-Type: message/global 形式に部分的に対応しました。 #185 #602
  • Go ヘッダーの冗長な正規化処理を削除しました。 #189
  • Go Perl Ruby Mimecast の生成するバウンスメール形式を正規化するモジュールを Sisimai::Lhost::Mimecastとして実装しました。 #201 #605
  • Go Perl Ruby RFC3834に準じた自動応答メッセージから Suspend を検出するようになりました。 #202 #619 #383
  • Go Perl Ruby バウンスメール形式を正規化する以下のSisimai::Lhostモジュールをそれぞれ更新しました。
    • InterScanMSSは名称をTrendMicroに変更しました。 #211 #611
    • MailMarshalSMTPは名称をMailMarshalに変更しました。 #234 #617 #382
    • mFILTERの形式判定コードを改善しました。 #209
    • X1の形式判定コードを改善しました。 #210
    • X2の形式判定コードとコマンド検出コードを改善しました。 #219
  • Go Perl Ruby Spamhausによる拒否メッセージのパターンを Blockedに追加しました。
    Thanks to @vhenon #229 #615
  • Go 開発者の効率都合で内部パッケージ名sissibaに改名されました。 #230
  • Ruby 開発者の効率都合でunless式の多くをifに置き換えました。 #370
  • Go 内部で保持するSMTPコマンド名とバウンス理由とAction: フィールドの値を定数化しました。 #244 #245 #257
  • Go Perl Ruby Message-ID:に関係してバウンスしたものは NotCompliantRFC として検出されるように変更しました。 #249 #622
  • Go テストとコードの細い改善を行いました。 #261 #262 #264 #273
  • Go Perl Ruby 内部処理の効率化を目的として入力されたPATHにあるファイルおよびデコードした MIMEパートがバイナリであるかどうかを判別するようにしました。 #28 #279 #627 #390
  • Go Perl Ruby 各メールサービスのエラーコードとメッセージを照合する以下のSisimai::Rhost モジュールでいくつかの改善を行いました。 #283 #285 #288 #291 #628 #631 #391 #394
    • Appleにてinactive email addressSuspend として検出するようになりました。
    • Facebookにて AuthFailureMailboxFull を検出するように改善しました。
    • FrancePTTにて AuthFailureBlockedRejectedTooManyConn を検出するように改善しました。
    • GoDaddyにて TooManyConn のエラーメッセージを追加しました。
    • MessageLabsにて多くのエラーメッセージを追加しました。
    • Tencentにて Speeding のエラーメッセージを追加しました。
    • Microsoftにて Outlook.com Postmaster/Troubleshooting で言及されているエラーコードとメッセージを追加しました。
    • Zoho Mail のエラーメッセージを定義したZohoを新たに実装しました。
  • Go Perl Ruby PolicyViolation に定義しているいくつかのエラーメッセージパターンは Rejected に移動しました。 #295
  • Go Go 1.25.4でビルド可能なことを確認しました。 #293
  • Ruby Ruby 3.3.10と3.4.7で実行可能なことを確認しました。 #396
  • Go Perl Ruby 試験的toxicという項目を解析結果に出力する実装を追加しました。 #299 #633 #397