A |
недопустимо в имени файла Windows, равно как и /
, \
или :
, которые вы, вероятно, в строке ReceivedTime
.
Изменить на:
Dim rtime As Date: rtime= oMail.ReceivedTime
И использовать что-то вроде:
Set oFile = fso.CreateTextFile(path & categories & "_" & Format$(rtime, "dd_mm_yy_hhmmss") & ".txt", True, True)
(предполагается, что categories
никогда не будет содержать недопустимых символов)
1-й true
, который вы передаете, приводит к перезаписи существующего файла, поэтому несколько электронных писем, полученных в одну и ту же секунду, будут потеряны.
Set fso = Nothing
Должен быть вне цикла, иначе на 2-й итерации это Nothing
.