|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Помогите доработать скрипт отправки по почте с аттачем |
|
|
VBS/WSH/JS - Помогите доработать скрипт отправки по почте с аттачем
|
|
Новый участник Сообщения: 3 |
Добрый день. Помогите решить проблему.
Есть полностью рабочий скрипт gmail.vbs Действия скрипта: проверяет соединение с интернетом, если нет соединения - выдает сообщение: "Проверьте соединение с интернетом". Если интернет есть - Создает письмо с указанными в скрипте параметрами и прикрепляет файл, лежащий по пути: D:\Program files\Blablabla\zakaz\zacaz035_2.rpt Отправляет этот файл по почте и выводит сообщение клиенту: "Ваш заказ успешно отправлен!" Не могу решить: 1. Программа Blablabla не всегда находится по пути D:\Program files\Blablabla, у разных пользователей пути разные. Как заставить скрипт искать где установлена программа?? Запись о пути установки есть в реестре: HKEY_LOCAL_MACHINE\SOFTWARE\Blablabla (параметр Path). 2. Как заставить прикреплять не конкретый файл, а файл с раширением *.rpt, так как все имена заказов разные. set WshShell = CreateObject("WScript.Shell")
'Запускаем ping и ожидаем завершения его работы
Return = WshShell.Run("ping www.google.com ", 0, true)
If Return=1 then
MsgBox"Проверьте соединение с интернетом!"
Else
Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory.
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).
Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication
Const cdoNTLM = 2 'NTLM
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Тема"
objMessage.From = """Zakaz"" <user@gmail.com>"
objMessage.To = "mybox@gmail.com"
objMessage.TextBody = "Вам был отправлен заказ."
objMessage.AddAttachment " D:\Program files\Blablabla\zakaz\zacaz035_2.rpt "
'==This section provides the configuration information for the remote SMTP server.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user@gmail.com"
'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
'==End remote SMTP server configuration section==
objMessage.Send
MsgBox"Ваш заказ успешно отправлен!"
End if
|
|
|
Отправлено: 22:23, 19-02-2011 |
|
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Вставьте эту функцию в скрипт:
Function GetAttach
Dim strPath
Dim arrFiles
strPath = WshShell.RegRead("HKLM\SOFTWARE\Blablabla\Path") & "\zakaz\"
Set arrFiles = CreateObject("Shell.Application").NameSpace(strPath).Items
arrFiles.Filter 64, "zacaz*.rpt"
Select Case arrFiles.Count
Case 0
MsgBox "Файл для отправки не найден.", 48, "Отправка файла"
WScript.Quit 1
Case 1
GetAttach = arrFiles.Item(0).Path
Case Else
MsgBox "Найдено несколько файлов.", 48, "Отправка файла"
WScript.Quit 1
End Select
End Function
|
|
Последний раз редактировалось SendMessage, 20-02-2011 в 10:12. Отправлено: 04:45, 20-02-2011 | #2 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать SendMessage, уточнение:
Цитата diavard:
Цитата SendMessage:
. |
||
|
Отправлено: 05:50, 20-02-2011 | #3 |
|
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать SendMessage, спасибо большое, все работает отлично. Упустил еще один момент - после того, как файл с заказом отправлен - он остается в папке zakaz. Помогите пожалуйста, чтоб после отправки письма с вложением этот заказ перемещаляся в папку old_zakaz. Не копировался, а именно перемещался. Заранее спасибо.
Iska, Папка, где хранится файл заказ называется zakaz, а вот сам файл - zacaz. Мудрено, потому что структуру инсталлятора писал я, а функцию вывода файла с заказом - другой человек. Вот и получилось. ![]() |
|
Отправлено: 13:56, 21-02-2011 | #4 |
|
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Вместо строки
вставьте эти: Set fso = WScript.CreateObject("Scripting.FileSystemObject")
OutFolder = "D:\Program files\Blablabla\old_zakaz\"
AttachFile = GetAttach
OutAttachFile = OutFolder & fso.GetFileName(AttachFile)
objMessage.AddAttachment AttachFile
If fso.FileExists(OutAttachFile) Then fso.DeleteFile OutAttachFile
fso.MoveFile AttachFile, OutFolder
|
|
|
Отправлено: 14:55, 21-02-2011 | #5 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| VBS/WSH/JS - [решено] Требуется доработать скрипт, чтобы при его запуске появлялся запрос на повышение прав | okshef | Скриптовые языки администрирования Windows | 16 | 24-07-2010 23:09 | |
| скрипт отправки почты | stolyar | Вебмастеру | 10 | 04-01-2010 18:23 | |
| Как прикрепить файл для отправки по электронной почте в CMS Joomla? | SashaKl | Вебмастеру | 1 | 12-06-2009 15:44 | |
| Скрипт отправки сообщений (неправильная кодировка) | Denis Shutka | Вебмастеру | 2 | 10-04-2005 09:12 | |
| скрипт формы отправки на мыло | Denis Shutka | Вебмастеру | 1 | 10-01-2005 02:57 | |
|