1.きっかけ
セキュアMXを利用していると、明らかなスパムメール(例えば本文のリンクがトレンドマイクロによるWebサイトの安全性の評価に引っかかるような。。)がすり抜けて受信されることもあります。
その際に、迷惑メール判定エンジンの精度向上に活用するべく用意された、迷惑メール誤判定窓口の送信先は用意されているのですが、
次のどちらかの方法のみです。
(「IIJセキュアMXサービス 基本機能 マニュアル」より引用)
- IIJサービスオンラインで申告する
- 迷惑メールフィルタで誤判定されたメールをメールで申告する
まず、IIJサービスオンラインでの申告は、
管理者アカウントでのログインが必要であり、多くの利用者では利用できません。
次に、メールで申告する方法ですが、
宛先のメールアドレスが書いてあるのみで、次のような準備は利用者が自ら行わなくてはならないのです。。
(「IIJセキュアMXサービス 基本機能 マニュアル > メールの誤判定を申告する」より引用)
多くのセキュリティ製品、および総務省の施策では、Outlookなどメールクライアントのプラグインとして簡単に送信できる、迷惑メール報告用のツールが用意されているのですけどね。。
例)
- (総務省)迷惑メール情報提供用プラグイン ダウンロードサイト
- (マイクロソフトサポート)迷惑メール報告アドインを使用する
- (Cisco)Cisco Secure Email Submissionアドイン
- (NTT西日本)セキュリティ対策ツール for Windows 迷惑メール対策ツールバーで、迷惑メールが通常のメールと判定された場合の対処方法
従いまして、もう少し容易に、利用者から迷惑メール誤判定の申告を行える仕組みを作ってみました。
2.作成
例によってChatGPTでコード生成を行い、それを修正しました。
- ファイル構成
これを、社内共有フォルダに置いて、ショートカットを利用者に配布します。
SMX迷惑メール誤判定報告ツール
│ SMX迷惑メール誤判定報告ツール.cmd
│ SMX迷惑メール誤判定報告ツール.cmd - ショートカット.lnk
│
└─system
│ displaymail.ps1
│ mapitool.exe
(1)OutlookのMSG形式メールを、eml形式に変換するツール「ruby-msg(mapitool.exe)」 ➡ Python版「mapitool.exe」
こちら から現時点最新版「mapitool-1.5.0-mswin32-stand_alone.zip」を入手しzip展開後、
system フォルダに mapitool.exe を置きます。
(cles::blog 平常心是道 様) .msg を .eml に変換する (ruby-msg編)
(2024.8.15 更新)
運用していたところ「ruby-msg 1.5.0(mapitool.exe)」には、
件名(Subject)等ヘッダー部分や、本文に、日本語(所謂2バイト文字)が含まれていると、
文字化けしたり、その行ごと削除してしまう事象がありました。
そして、このプロジェクトは2012年から更新が無く、改修される目途が無かったため、
最低限の機能だけ確認できたPython版「mapitool.exe」として作り直しました。
(Qiita)「mapitool.exe」(ruby-msg)を代替するPython版mapitool(暫定)の作成
(2)Outlookメール生成PowerShellスクリプト「displaymail.ps1」
これも system フォルダに置きます。
Write-Host $args[0]
Add-Type -Assembly 'Microsoft.Office.Interop.Outlook'
$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.Subject = '迷惑メールが、正常なメールと判定された'
$Mail.Body = 'SMX迷惑メール誤判定窓口 御中
よろしくお願いします。'
$Mail.Attachments.Add($args[0])
$Mail.Recipients.Add('[迷惑メールが、正常なメールと判定された場合のメールアドレス ※IIJのマニュアルを参照ください。]')
$Mail.Display()
(3)動作用Windowsコマンドラインスクリプト「SMX迷惑メール誤判定報告ツール.cmd」
@echo off
cd %~dp0
setlocal
REM 入力ファイルを取得
set "inputfile=%~1"
set "filename=%~n1"
REM msgファイルをemlファイルへ変換
"%~dp0system\mapitool.exe" -i "%inputfile%"
REM 所定のアドレスへメールを送信
PowerShell.exe -ExecutionPolicy RemoteSigned -File "%~dp0system\displaymail.ps1" "%~dp1%filename%.eml"
REM メール送信後にemlファイルを削除
del "%~dp1%filename%.eml"
(4)起動用ショートカット「SMX迷惑メール誤判定報告ツール.cmd - ショートカット」
3.利用の様子
受信されてしまった迷惑メールをドラッグ&ドロップすることで、申告メールの生成が行えるようになりました。
以上です。