Outlook で定期的に同じ名前の添付ファイルを受信したり、画像が埋め込まれた HTML メールを受信したりしている場合、添付ファイルが開けなくなったり、画像が赤い×印になって表示されなくなったりすることがあります。
これは、Oultook の一時フォルダに同一の名のファイルが多数作成され続けた結果、新たに同じ名前のファイルが作成できなくなった場合に発生する現象です。Outlook は同一の名前のファイルが一時フォルダに存在した場合には [1]、[2] というようにファイル名に連番を追加しますが、これが 99 まで達するとそれ以上ファイルを作成できなくなります。このような現象が発生した際には、以下の手順で Outlook の一時ファイルを削除してみてください。
- ファイル名を指定して実行で "regedit" と入力し、[OK] をクリックします。
- 左ペインで [マイ コンピュータ]-[HKEY_CURRENT_USER]-[Software]-[Microsoft]-[Office]-[バージョン]-[Outlook]-[Security] の順に展開します。 なお、バージョン には Outlook のバージョンごとに以下の値が入ります。
Outlook 2010: 14.0
Outlook 2007: 12.0
Outlook 2003: 11.0
Outlook 2002: 10.0
たとえば、Outlook 2010 なら[マイ コンピュータ]-[HKEY_CURRENT_USER]-[Software]-[Microsoft]-[Office]-[14.0]-[Outlook]-[Security] になります。 - 右ペインで [OutlookSecureTempFolder] をダブルクリックします。
- [値のデータ] に表示される文字列をすべてコピーします。通常は "C:\Documents and Settings\ユーザー名\Local Settings\Temporary Internet Files\xxxxxxxx\" または "C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook\xxxxxxxx\ のような値です。
- ファイル名を指定して実行でコピーした文字列を [名前] にコピーし、[OK] をクリックします。
- 開いたフォルダにあるファイルをすべて削除します。
また、頻繁にこのような現象が発生するということであれば、以下のようなスクリプトを定期的に実行して、Outlook の一時フォルダを空にすることが可能です。
' ここをトリプルクリックでスクリプト全体を選択できます
Const OUTLOOK_VER = "14.0" ' Outlook 2007 なら 12.0、Outlook 2003 なら 11.0、Outlook 2002 なら 10.0 にする。
Dim wshShell
Dim objFSO
Dim strTempPath
Dim fldTemp
Dim fileTemp
'
Set wshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strTempPath = wshShell.RegRead("HKCU\Software\Microsoft\Office\" & OUTLOOK_VER & "\Outlook\Security\OutlookSecureTempFolder")
Set fldTemp = objFSO.GetFolder(strTempPath)
'
For Each fileTemp In fldTemp.Files
fileTemp.Delete
Next
'
Set fldTemp = Nothing
Set objFSO = Nothing
Set wshShell = Nothing
なお、通常であれば一時フォルダのファイルは自動的に削除されますが、以下のような場合に一時フォルダにファイルが残る現象が発生します。
- 添付ファイルを直接開いたまま、元のメッセージを閉じてしまった。
- 添付ファイルを開いた状態で Outlook が強制終了した。
- Outlook が一時フォルダのファイルを削除する際に、ウィルススキャンなどの要因で削除が失敗した。