Показать полную графическую версию : [решено] Отправка файла по почте с любым именем и определенным расширением
FantomasAnand
01-07-2016, 15:06
Path = "\\Directory"
Set Items = CreateObject("Shell.Application").NameSpace(Path).Items
Items.Filter 192, "*.doc"
If Items.Count = 1 Then
Web = "http://schemas.microsoft.com/cdo/configuration/"
With CreateObject("CDO.Message")
.From = "xxxmail"
.To = "xxxmail"
.Bcc = "xxxmail"
.Subject = "test"
.Textbody = "test"
.AddAttachment Path & Items.Item(0)
.Configuration.Fields.Item (Web & "sendusing") = 2
.Configuration.Fields.Item (Web & "smtpserver") = "xxxsmtp"
.Configuration.Fields.Item (Web & "smtpserverport") = 25
.Configuration.Fields.Update
.Send
End with
with CreateObject("Scripting.FileSystemObject")
.MoveFile "\\directory\*.doc", "directory\dicrectory1"
end with
end if
Прописал Items.Filter 192, "*.doc", но звездочку видимо не воспринимает. Почему?Как сделать чтобы имя было любое.
При запуске скрипта возникает ошибка , см. скриншот.
Причём тут «звёздочка»? У Вас ошибка совсем в другой строке:
.AddAttachment Path & Items.Item(0)
Попробуйте:
.AddAttachment Path & Items.Item(0).Path
FantomasAnand
01-07-2016, 16:49
понял почему возникает эта ошибка .AddAttachment Path & Items.Item(0) . Забыл в строке Path добавить слеш, Path = "\\Directory\"
Но задача отправки файла по почте с любым именем и определенным расширением открыта. Когда пишу конкретное имя в имени файла то отправка происходит, например Items.Filter 192, "1.doc".
А вот если проставить звездочку, то ошибку не выдает, но и письмо не приходит
понял почему возникает эта ошибка .AddAttachment Path & Items.Item(0) . Забыл в строке Path добавить слеш, Path = "\\Directory\" »
И я не обратил внимания.
Но задача отправки файла по почте с любым именем и определенным расширением открыта. Когда пишу конкретное имя в имени файла то отправка происходит, например Items.Filter 192, "1.doc".
А вот если проставить звездочку, то ошибку не выдает, но и письмо не приходит »
Начните с требования обязательного объявления переменных «Option Explicit».
FantomasAnand
01-07-2016, 17:27
Начните с требования обязательного объявления переменных «Option Explicit». »
Прописал, ошибок нет, но также не работает отправка.Точнее Не отправка не работает, а скорее поиск "*.doc". он просто как будто не находит там файла. Допусти если прописать явное имя файла, но которого в папке нет, то он тоже ошибок не даст и ничего не отправит.
Option explicit
dim Path
dim Items
Path = "\\Directory\"
Set Items = CreateObject("Shell.Application").NameSpace(Path).Items
Items.Filter 192, "*.doc"
If Items.Count = 1 Then
Web = "http://schemas.microsoft.com/cdo/configuration/"
With CreateObject("CDO.Message")
.From = "xxxmail"
.To = "xxxmail"
.Bcc = "xxxmail"
.Subject = "test"
.Textbody = "test"
.AddAttachment Path & Items.Item(0)
.Configuration.Fields.Item (Web & "sendusing") = 2
.Configuration.Fields.Item (Web & "smtpserver") = "xxxsmtp"
.Configuration.Fields.Item (Web & "smtpserverport") = 25
.Configuration.Fields.Update
.Send
End with
with CreateObject("Scripting.FileSystemObject")
.MoveFile "\\directory\*.doc", "directory\dicrectory1"
end with
end if
Прописал, ошибок нет, »
Я не вижу объявления переменной Web. Так что ошибка должна была быть. Если её нет — вероятно, до отсылки дело попросту не доходит. Вы уверены, что у Вас там ровно один файл *.doc?! Я — нет. Добавьте перед условием:
WScript.Echo Items.Count
и проверьте. Например, есть вероятность наличия там скрытых временных файлов вида «~$….doc».
FantomasAnand
04-07-2016, 08:48
В итоге помогло это решение.
Path = "\\Directory\"
Set Items = CreateObject("Shell.Application").NameSpace(Path).Items
Items.Filter 192, "*.doc"
If Items.Count = 1 Then
Web = "http://schemas.microsoft.com/cdo/configuration/"
With CreateObject("CDO.Message")
.From = "xxxmail"
.To = "xxxxmail"
.Bcc = "xxxxxmail"
.Subject = "test"
.Textbody = "test"
.AddAttachment Path & Items.Item(0)
.Configuration.Fields.Item (Web & "sendusing") = 2
.Configuration.Fields.Item (Web & "smtpserver") = "xxx-smtp"
.Configuration.Fields.Item (Web & "smtpserverport") = 25
.Configuration.Fields.Update
.Send
End with
with CreateObject("Scripting.FileSystemObject")
.MoveFile "\\Directory\*.doc", "\\Directory\Backup"
end with
end if
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.