[18170]  メールを一通ずつファイルとして保存する方法
投稿者:kz さん   2001-09-20 12:14:35
Win2000にて大量のメールをnamazuで検索したいのですが、
私が知っているメールソフトはすべて、複数のメールを一つの
ファイルとして保存する形式の為、namazuでの検索には向きません。
そこで、一通ずつファイルとして保存してくれるメールソフトは
無いでしょうか?
または、.mbx等の複数のメールが一つになったファイルを一通ずつ
ファイルに切ってくれるソフトは、無いでしょうか?
(Becky!の.mbxをHTMLに変換するソフトは試してみたのですが、
ファイルが大きすぎると正常に動作しませんでした。)
その他よい方法をご存知でしたら、ご教授お願いします。
  1. さん   2001-09-20 13:17:06
    メールソフトは何ですか?
  2. kz さん   2001-09-20 13:56:17
    現在使っているメールソフトはBecky!ver1.??です。
    これから受信するメールをnamazu検索対象に出来れば
    それだけでも十分なので、上記の条件を満たす
    メールソフトがあれば、何でも構いません。
    出来ればマルチアカウント対応のものがよいのですが。
    よろしくお願いします。
  3. m5963 さん   2001-09-20 18:04:04
    簡単な機能しか有りませんが、OUTLOOK(Expressでない)で、下記マクロを
    使用すれば、受信トレイをひとつづつのテキストファイルに出来ます。

    OUTLOOKの[ツール(T)]→[マクロ(M)]→[Visual Basic Editer(V)]で、
    Visual Basic 画面を表示して、[挿入(I)]→[標準モジュール(M)]で、
    エディタを表示して、下記を貼り付けて下さい。
    貼り付けた後、数行目の C:XXXXXXXX に、テキストファイルを出力するフォルダを
    記述して下さい。最後は必ず()のもじにして下さい。フォルダ名を指定しましたら
    上書き保存してVisual Basic 画面を閉じて下さい。

    実行は、OUTLOOKの[ツール(T)]→[マクロ(M)]→[マクロ(M)]で、
    マクロ一覧で出ますので、「受信トレイ個別テキスト化」をクリックして
    実行ボタンをクリックすると実行します。

    Public Sub 受信トレイ個別テキスト化()
    Dim myNamespace As Outlook.NameSpace
    Dim myFolder As Outlook.MAPIFolder
    Dim ToItem As Outlook.MailItem
    Dim RC As Long
    Dim I As Long
    Dim PosErrStr As Long
    Dim ToSubject As String
    Dim FName As String
    Dim FNameErrStr() As Variant
    Dim FNameChgStr() As Variant
    '*** 下にテキストファイルを出力するフォルダを記述して下さい。最後は必ず()で。
    Const SaveFolder As String = "C:XXXXXXXX"

    FNameErrStr = Array(":", "", "/", "|", "<", ">", Chr(&H22)) '**ファイル名に使えない文字
    FNameChgStr = Array(";", "$", "-", "!", "(", ")", "'") '**上の文字のかわりに使う文字
    Set myNamespace = Application.GetNamespace("MAPI")
    Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
    For Each ToItem In myFolder.Items
    ToSubject = Trim(CStr(ToItem.Subject))
    For I = 0& To UBound(FNameErrStr)
    PosErrStr = InStr(ToSubject, FNameErrStr(I))
    Do Until PosErrStr = 0&
    Mid(ToSubject, PosErrStr, 1&) = FNameChgStr(I)
    PosErrStr = InStr(ToSubject, FNameErrStr(I))
    Loop
    Next
    FName = SaveFolder + _
    Format(ToItem.ReceivedTime, "yyyymmdd_hhnnss") + _
    "_" + ToSubject + ".txt"
    ToItem.SaveAs FName, olTXT
    Next
    Set ToItem = Nothing
    Set myFolder = Nothing
    Set myNamespace = Nothing
    MsgBox "END"
    End
    End Sub

  4. m5963 さん   2001-09-20 21:45:36
    すいません。マクロの左側空白が、詰まってしまって、見づらくなってしまいました。
  5. たなべ さん   2001-09-20 22:51:39
    電信八号
  6. kz さん   2001-09-21 23:02:48
    >m5963さん
    ありがとうございます。
    せっかく教えていただいたのですが、残念ながらOutlookを持ってないので
    試すことが出来ませんでした。

    >たなべさん
    探していたのは、まさしくこんなメーラーです。
    ありがとうございました。
  7. ruin さん   2001-09-23 03:34:42
    -DIGICOM- http://www.digico-m.com/
    上記URLに、メール分割移行用のMailExpというフリーソフトがあります。
    Becky!で受信したメールを電信八号形式に変換するなりすれば、
    過去に受信したメールもnamazuの検索対象に加えることができるかもしれません。
    もう解決しているようですが、こんなのもあるよってことで。