Тут мне понадобилось написать некий скрипт для обработки входящих сообщений в Microsoft Outlook. Подскажите как это делается и с чего начать. Thanks!
» Написание скриптов в Outlook
Я не уверен, что получится написать скрипт. Скорее, необходимо писать свой Add-in для Outlook. Вроде как на SourceForge были какие-то проекты (типа АнтиСпам фильтры) с исходниками.
ova
Написать скрипт для обработки входящих сообщений - дело не трудное: vbs тебе в руки. Но вот запустить его из под самого Outlook'а у меня что-то не получилось. Здесь действительно надо что-то типа Add-in'а на Visual Basic'е делать.
ЗЫ: Хотя, если посмотреть в Мастер Правил, там есть какое-то "Запустить сценарий". Но что это такое - в Help'е не нашел...
Добавлено
ova
И еще: загляни на _http://www.cdolive.com/start.htm - там есть что почитать для начала.
Написать скрипт для обработки входящих сообщений - дело не трудное: vbs тебе в руки. Но вот запустить его из под самого Outlook'а у меня что-то не получилось. Здесь действительно надо что-то типа Add-in'а на Visual Basic'е делать.
ЗЫ: Хотя, если посмотреть в Мастер Правил, там есть какое-то "Запустить сценарий". Но что это такое - в Help'е не нашел...
Добавлено
ova
И еще: загляни на _http://www.cdolive.com/start.htm - там есть что почитать для начала.
Fill747
ova
Цитата:
Private Sub Application_NewMail()
<bla-bla-bla>
End Sub
должно работать...
И вообще советую покопаться тут http://www.slipstick.com/ - много информации об интересующей вас теме вообще и преодолению проблем связанных с Outlook security в частности...
ova
Цитата:
Написать скрипт для обработки входящих сообщений - дело не трудное: vbs тебе в руки. Но вот запустить его из под самого Outlook'а у меня что-то не получилось
Private Sub Application_NewMail()
<bla-bla-bla>
End Sub
должно работать...
И вообще советую покопаться тут http://www.slipstick.com/ - много информации об интересующей вас теме вообще и преодолению проблем связанных с Outlook security в частности...
naPmu3aH
Спасибо, про этот сайт я уже давно знаю.
ova
Я был не прав. Вот пример кода по материалам упомянутого выше сайта.
Код, который мониторит Inbox и все входящие письма, в заголовке которых есть слово "Test" перемещает в папку TestFolder. Папка TestFolder должна быть подпапкой Inbox'а (честно говоря, некогда было разбираться - почему )
Весь ниже приведенный код кладется в модуль ThisOutlookSession.
Обработчик ошибок отсутствует, т.е. папки должны существовать.
В Outlook XP надо поиграть с безопасностью макросов.
Option Explicit
Private WithEvents olInboxItems As Items
Private Sub Application_Startup()
Dim objNS As NameSpace
Set objNS = Application.GetNamespace("MAPI")
Set olInboxItems = objNS.GetDefaultFolder(olFolderInbox).Items
Set objNS = Nothing
End Sub
Private Sub Application_Quit()
Set olInboxItems = Nothing
End Sub
Private Sub olInboxItems_ItemAdd(ByVal Item As Object)
Dim objNS As NameSpace
Dim objInbox As MAPIFolder
Dim objTestFolder As MAPIFolder
If Item.Class = olMail Then
If InStr(Item.Subject, "Test") > 0 Then
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objTestFolder = objInbox.Folders("TestFolder")
If Not objTestFolder Is Nothing Then
Item.Move objTestFolder
End If
End If
End If
Set objTestFolder = Nothing
Set objInbox = Nothing
Set objNS = Nothing
End Sub
Спасибо, про этот сайт я уже давно знаю.
ova
Я был не прав. Вот пример кода по материалам упомянутого выше сайта.
Код, который мониторит Inbox и все входящие письма, в заголовке которых есть слово "Test" перемещает в папку TestFolder. Папка TestFolder должна быть подпапкой Inbox'а (честно говоря, некогда было разбираться - почему )
Весь ниже приведенный код кладется в модуль ThisOutlookSession.
Обработчик ошибок отсутствует, т.е. папки должны существовать.
В Outlook XP надо поиграть с безопасностью макросов.
Option Explicit
Private WithEvents olInboxItems As Items
Private Sub Application_Startup()
Dim objNS As NameSpace
Set objNS = Application.GetNamespace("MAPI")
Set olInboxItems = objNS.GetDefaultFolder(olFolderInbox).Items
Set objNS = Nothing
End Sub
Private Sub Application_Quit()
Set olInboxItems = Nothing
End Sub
Private Sub olInboxItems_ItemAdd(ByVal Item As Object)
Dim objNS As NameSpace
Dim objInbox As MAPIFolder
Dim objTestFolder As MAPIFolder
If Item.Class = olMail Then
If InStr(Item.Subject, "Test") > 0 Then
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objTestFolder = objInbox.Folders("TestFolder")
If Not objTestFolder Is Nothing Then
Item.Move objTestFolder
End If
End If
End If
Set objTestFolder = Nothing
Set objInbox = Nothing
Set objNS = Nothing
End Sub
если можно, вопрос в догонку.
Я сделал похожее с уведомлением, но конвертик в трее (в Оутлук 2003) не уходит, хотья и делаю письмо прочтенным.
никто не знает, как до него программно добратся?
Я сделал похожее с уведомлением, но конвертик в трее (в Оутлук 2003) не уходит, хотья и делаю письмо прочтенным.
никто не знает, как до него программно добратся?
uken666
Цитата:
Еще бы примерно посмотреть, как ты это делаешь?..
Цитата:
хотья и делаю письмо прочтенным
Еще бы примерно посмотреть, как ты это делаешь?..
Помогите со скриптом. Сам в VBA пока плохо разбираюсь, другое учил.
Задача. В outlook приходит письмо примерно следующего содержания:
------------------------------------------------
ОТ: MP64-1Alarm@SMPAlarm [MP64-1Alarm@SMPAlarm]
------------------------------------------------
текст письма
Дата: 11.03.2007
Время: 20:59:06
Модуль: 1
Ошибка: Обнаружен поток 2 в модуле 3
Код ошибки: 909, категория ошибки: 1
------------------------------------------------
Задача: на основе отправителя "MP64-1Alarm@SMPAlarm" и чисел строки Ошибка: 2 и 3 составить другое письмо, где комбинаця 2 и 3 будут заменены словами, соответствующие этим числам и отправителю
числа хранить можно.. ну где проще для работы.. хоть в *.txt, лучше конечно в *.xls но необязательно.
вид допустим такой
от MP64-1Alarm@SMPAlarm
поток модуль обозначение
1 1 слово_для_1_1
1 2 слово_для_1_2
1 3 слово_для_1_3
2 1 слово_для_2_1
2 2 слово_для_2_2
2 3 слово_для_2_3
3 1 слово_для_3_1
3 2 слово_для_3_2
4 1 слово_для_4_1
от MP64-2Alarm@SMPAlarm
поток модуль обозначение
1 1 слово_для_1_1
1 2 слово_для_1_2
1 3 слово_для_1_3
...
Как результат должны получить письмо со строкой слово_для_3_2 и отправить его списку получателей дальше.
Было бы отлично, если кто-нибудь помог с примерным кодом, хоть что и как делать. Или с инфой, где это почитать. Сам уже долго вожусь, а результата мало.
Задача. В outlook приходит письмо примерно следующего содержания:
------------------------------------------------
ОТ: MP64-1Alarm@SMPAlarm [MP64-1Alarm@SMPAlarm]
------------------------------------------------
текст письма
Дата: 11.03.2007
Время: 20:59:06
Модуль: 1
Ошибка: Обнаружен поток 2 в модуле 3
Код ошибки: 909, категория ошибки: 1
------------------------------------------------
Задача: на основе отправителя "MP64-1Alarm@SMPAlarm" и чисел строки Ошибка: 2 и 3 составить другое письмо, где комбинаця 2 и 3 будут заменены словами, соответствующие этим числам и отправителю
числа хранить можно.. ну где проще для работы.. хоть в *.txt, лучше конечно в *.xls но необязательно.
вид допустим такой
от MP64-1Alarm@SMPAlarm
поток модуль обозначение
1 1 слово_для_1_1
1 2 слово_для_1_2
1 3 слово_для_1_3
2 1 слово_для_2_1
2 2 слово_для_2_2
2 3 слово_для_2_3
3 1 слово_для_3_1
3 2 слово_для_3_2
4 1 слово_для_4_1
от MP64-2Alarm@SMPAlarm
поток модуль обозначение
1 1 слово_для_1_1
1 2 слово_для_1_2
1 3 слово_для_1_3
...
Как результат должны получить письмо со строкой слово_для_3_2 и отправить его списку получателей дальше.
Было бы отлично, если кто-нибудь помог с примерным кодом, хоть что и как делать. Или с инфой, где это почитать. Сам уже долго вожусь, а результата мало.
Это же просто, но я совсем не знаю синтаксиса VBS
Набросайте хоть примерные команды плз.
Набросайте хоть примерные команды плз.
Есть два вопроса по макросам для Outlook (у меня 2003):
1. Написал макрос для сохранения вложений из выделенных писем в заданную папку. Но! Среди прогнанных писем попались такие в которых в теле есть рисунки, и они тоже считаются вложениями, хотя в outlooke как вложения и не отображаются. В большинстве случаев их можно отфильтровать по Attachments.Item(i).Position. Однако иногда и у них занчение параметра равно 0 (как и у действительно вложений) и тогда отделить их от вложений не получается. Но сам outlook как-то понимает что это не вложения. Есть ли надежный способ чтобы выделить действительно вложения для сохранения? Мой код:
Код: Const DefFolder = "C:\"
Sub SaveAttachments()
Dim objApp As Outlook.Application
Dim objItem As Object
Dim objSelection As Outlook.Selection
Dim objMail As MailItem
Dim AttFolder As String
Set objApp = CreateObject("Outlook.Application")
Set objSelection = objApp.ActiveExplorer.Selection
AttFolder = Trim(InputBox("Задайте имя папки", "Сохранение вложений"))
If AttFolder <> "" Then AttFolder = AttFolder + "\"
If MsgBox("Сохранить все вложения в папку " + DefFolder + AttFolder + "? Все файлы с такими именами в этой папке будут перезаписаны!", vbQuestion + vbOKCancel) = vbOK Then
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.folderexists(DefFolder + AttFolder) Then
fs.createfolder (DefFolder + AttFolder)
End If
For Each objItem In objSelection
If objItem.Class = olMail Then
Set objMail = objItem
For i = 1 To objMail.Attachments.Count
If objMail.Attachments.Item(i).Position = 0 Then
objMail.Attachments.Item(i).SaveAsFile DefFolder + AttFolder + objMail.Attachments.Item(i).DisplayName
End If
Next
End If
Next
End If
End Sub
1. Написал макрос для сохранения вложений из выделенных писем в заданную папку. Но! Среди прогнанных писем попались такие в которых в теле есть рисунки, и они тоже считаются вложениями, хотя в outlooke как вложения и не отображаются. В большинстве случаев их можно отфильтровать по Attachments.Item(i).Position. Однако иногда и у них занчение параметра равно 0 (как и у действительно вложений) и тогда отделить их от вложений не получается. Но сам outlook как-то понимает что это не вложения. Есть ли надежный способ чтобы выделить действительно вложения для сохранения? Мой код:
Код: Const DefFolder = "C:\"
Sub SaveAttachments()
Dim objApp As Outlook.Application
Dim objItem As Object
Dim objSelection As Outlook.Selection
Dim objMail As MailItem
Dim AttFolder As String
Set objApp = CreateObject("Outlook.Application")
Set objSelection = objApp.ActiveExplorer.Selection
AttFolder = Trim(InputBox("Задайте имя папки", "Сохранение вложений"))
If AttFolder <> "" Then AttFolder = AttFolder + "\"
If MsgBox("Сохранить все вложения в папку " + DefFolder + AttFolder + "? Все файлы с такими именами в этой папке будут перезаписаны!", vbQuestion + vbOKCancel) = vbOK Then
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.folderexists(DefFolder + AttFolder) Then
fs.createfolder (DefFolder + AttFolder)
End If
For Each objItem In objSelection
If objItem.Class = olMail Then
Set objMail = objItem
For i = 1 To objMail.Attachments.Count
If objMail.Attachments.Item(i).Position = 0 Then
objMail.Attachments.Item(i).SaveAsFile DefFolder + AttFolder + objMail.Attachments.Item(i).DisplayName
End If
Next
End If
Next
End If
End Sub
Подскажите пожалуйста текст макроса, который бы перемещал письма после прочтения из папки Входящие/Не_прочтенные во Входящие. С Visual Basic не знаком, а сделать такую штуку очень хотелось бы. Спасибо!
Biblbrox
Папка Входящие/Не_прочтенные является "виртуальной" папкой - т.н. "папка поиска". Точно так же, как и папки "Сегодня" и "Большие письма". Недаром у них на иконке нарисована лупа.
Таким образом, как только ты читаешь письмо и оно помечается, как "прочтенное", оно "уходит" из папки "Не прочтенное", но всё равно остаётся в папке Входящие. Т.е. макрос для перемещения не нужен.
Папка Входящие/Не_прочтенные является "виртуальной" папкой - т.н. "папка поиска". Точно так же, как и папки "Сегодня" и "Большие письма". Недаром у них на иконке нарисована лупа.
Таким образом, как только ты читаешь письмо и оно помечается, как "прочтенное", оно "уходит" из папки "Не прочтенное", но всё равно остаётся в папке Входящие. Т.е. макрос для перемещения не нужен.
Fill747
В моем случае это не папка поиска, с лупой которая, а папка, в которую складываются новые письма правилом.
Или (понимаю что не о программировании) можно ли такую папку поиска поместить в "Входящие" а не в "Папки поиска" ?
В моем случае это не папка поиска, с лупой которая, а папка, в которую складываются новые письма правилом.
Или (понимаю что не о программировании) можно ли такую папку поиска поместить в "Входящие" а не в "Папки поиска" ?
Biblbrox
Цитата:
Риторический вопрос: зачем?
Цитата:
ИМХО, нет. Т.к. это, как я уже сказал, виртуальная папка.
Цитата:
складываются новые письма правилом
Риторический вопрос: зачем?
Цитата:
можно ли такую папку поиска поместить в "Входящие"
ИМХО, нет. Т.к. это, как я уже сказал, виртуальная папка.
Друзья, пол инета обошёл и ничего я не нашёл.
как можно с помощью VBA изменить параметры учетной записи в Office Outlook 2003?
конкретно - incoming/outgoing server
как можно с помощью VBA изменить параметры учетной записи в Office Outlook 2003?
конкретно - incoming/outgoing server
BadCaT
Похоже, что через VBA это нельзя сделать. Посмотри
http://groups.google.com/group/microsoft.public.outlook.program_vba/browse_thread/thread/d65b39fab5c0c71c/aa580c3b84dfa6c0?hl=en&lnk=st&q=vba%2Boutlook%2Bchange%2Bsmtp#aa580c3b84dfa6c0
http://www.dimastr.com/redemption/profiles.htm
http://groups.google.com/group/microsoft.public.office.developer.outlook.vba/browse_thread/thread/59c34ebc103a3aee/9f01c7bd18ecc504?hl=en&lnk=st&q=vba%2Boutlook%2Bchange%2Bsmtp#9f01c7bd18ecc504
Похоже, что через VBA это нельзя сделать. Посмотри
http://groups.google.com/group/microsoft.public.outlook.program_vba/browse_thread/thread/d65b39fab5c0c71c/aa580c3b84dfa6c0?hl=en&lnk=st&q=vba%2Boutlook%2Bchange%2Bsmtp#aa580c3b84dfa6c0
http://www.dimastr.com/redemption/profiles.htm
http://groups.google.com/group/microsoft.public.office.developer.outlook.vba/browse_thread/thread/59c34ebc103a3aee/9f01c7bd18ecc504?hl=en&lnk=st&q=vba%2Boutlook%2Bchange%2Bsmtp#9f01c7bd18ecc504
Помогите нужен скрипт.
Нужен простейший до безобразия скрипт для 2003 аутлука.
При Запуске или завершении работы аутлука, необходимо чтобы скрипт проверял сообщения в папке нежелательная почта, и всех отправителей писем добавлял в спамлист, если их еще там не было. Или другими словами. (как я это делаю в ручную)
ПКМ на письме. в меню выбираю: Нежелательная почта -> добавить отправителя в список заблокированных отправителей. Помогите плиз сам не рублю
Нужен простейший до безобразия скрипт для 2003 аутлука.
При Запуске или завершении работы аутлука, необходимо чтобы скрипт проверял сообщения в папке нежелательная почта, и всех отправителей писем добавлял в спамлист, если их еще там не было. Или другими словами. (как я это делаю в ручную)
ПКМ на письме. в меню выбираю: Нежелательная почта -> добавить отправителя в список заблокированных отправителей. Помогите плиз сам не рублю
dredd00
Э... Что-то я не совсем тебя понял... Дело в том, что в папку Нежелательная почта попадают письма от тех отправителей, которые уже есть в спам-листе. Зачем их туда ещё раз добавлять?
Э... Что-то я не совсем тебя понял... Дело в том, что в папку Нежелательная почта попадают письма от тех отправителей, которые уже есть в спам-листе. Зачем их туда ещё раз добавлять?
Ну пусть будет не папка "нежелательная почта" а какая нибудь другая например "входящий спам" просто правило у меня так настроено что все сообшения отправленные не мне идут в нежелательную почту, перемещаться то они туда перемещаются, а вот в блоклист не добавляются
PS Я даже нашел скрипт, который может проверить сообщения одно за другим в каждой папке, но как его сверить с мылами из блоклиста хз [more= вот код скрипта]Private Sub Application_Quit()
Dim myOlApp As Outlook.Application
Dim mpfInbox As Outlook.MAPIFolder
Dim obj As Outlook.MailItem
Dim i As Integer
Set myOlApp = CreateObject("Outlook.Application")
Set mpfInbox = myOlApp.GetNamespace("MAPI").Folders("test")
' Loop all items in the Inbox\Test Folder
For i = 1 To mpfInbox.Items.Count
If mpfInbox.Items(i).Class = olMail Then
Set obj = mpfInbox.Items.Item(i)
If obj.SenderEmailAddress = "someone@example.com" Then
'Set the yellow flag icon
obj.FlagIcon = olYellowFlagIcon
obj.Save
End If
End If
Next
End Sub[/more]
Скрпт проверяет каждое сообщение в папке тест и если оно от сомвана то красит его в желтый
Dim myOlApp As Outlook.Application
Dim mpfInbox As Outlook.MAPIFolder
Dim obj As Outlook.MailItem
Dim i As Integer
Set myOlApp = CreateObject("Outlook.Application")
Set mpfInbox = myOlApp.GetNamespace("MAPI").Folders("test")
' Loop all items in the Inbox\Test Folder
For i = 1 To mpfInbox.Items.Count
If mpfInbox.Items(i).Class = olMail Then
Set obj = mpfInbox.Items.Item(i)
If obj.SenderEmailAddress = "someone@example.com" Then
'Set the yellow flag icon
obj.FlagIcon = olYellowFlagIcon
obj.Save
End If
End If
Next
End Sub[/more]
Скрпт проверяет каждое сообщение в папке тест и если оно от сомвана то красит его в желтый
Оу... ты еще кто нибудь бывает ?
Установлен Outlook 2007, который по протоколу IMAP скачивает письма в папку "Входящие". Мне нужно, чтобы письма автоматически попадали не в папку "Входящие", а в папки поставщиков.
Создаю правило в "Мастере правил". Для любого входящего сообщения выполнять процедуру ("run to script").
Процедура такая:
Код:
Sub CustomMailMessageRule(Item As Outlook.MailItem)
On Error GoTo err
Dim oOutlook As New Outlook.Application
Dim oNameSpace As Outlook.NameSpace
Dim oFolder As Outlook.MAPIFolder
Set oNameSpace = oOutlook.GetNamespace("MAPI")
Set oFolder = oNameSpace.Folders("basis")
Set oFolder = oFolder.Folders("Aoiayuea")
Set oFolder = oFolder.Folders("123")
If TypeName(Item) <> "Nothing" Then
Item.Move oFolder
End If
Set oFolder = Nothing
Set oNameSpace = Nothing
Set oOutlook = Nothing
Exit Sub
err:
End Sub
Создаю правило в "Мастере правил". Для любого входящего сообщения выполнять процедуру ("run to script").
Процедура такая:
Код:
Sub CustomMailMessageRule(Item As Outlook.MailItem)
On Error GoTo err
Dim oOutlook As New Outlook.Application
Dim oNameSpace As Outlook.NameSpace
Dim oFolder As Outlook.MAPIFolder
Set oNameSpace = oOutlook.GetNamespace("MAPI")
Set oFolder = oNameSpace.Folders("basis")
Set oFolder = oFolder.Folders("Aoiayuea")
Set oFolder = oFolder.Folders("123")
If TypeName(Item) <> "Nothing" Then
Item.Move oFolder
End If
Set oFolder = Nothing
Set oNameSpace = Nothing
Set oOutlook = Nothing
Exit Sub
err:
End Sub
добавить ресурсы в Outlook AppointmentItem, не отмечая их?
Нужно добавить программно при создании в Outlook объекта приглашение на совещание (AppointmentItem, событие Item_Open() ) все возможные ресурсы (коллекция AppointmentItem.Recipients c AppointmentItem.Recipients(i).Type=olResource).
При этом ресурсы должны быть не выбранными - аналогично тому, если на вкладке Планирование снять флаг выбора ресурса.
Пока что не удалось обнаружить свойства объекта AppointmentItem.Recipient (ресурс приглашения) либо дополнительной коллекции самого AppointmentItem, в которых бы указывалось, что ресурс выбран или нет.
Какие могут быть варианты?
Добавлено:
Цитата:
[q][/q]
к примеру - не морочить голову с пользовательскими процедурами для правил получения, а посмотреть первые посты данной темы и работать на уровне ThisOutlookSession с кодом VB
Нужно добавить программно при создании в Outlook объекта приглашение на совещание (AppointmentItem, событие Item_Open() ) все возможные ресурсы (коллекция AppointmentItem.Recipients c AppointmentItem.Recipients(i).Type=olResource).
При этом ресурсы должны быть не выбранными - аналогично тому, если на вкладке Планирование снять флаг выбора ресурса.
Пока что не удалось обнаружить свойства объекта AppointmentItem.Recipient (ресурс приглашения) либо дополнительной коллекции самого AppointmentItem, в которых бы указывалось, что ресурс выбран или нет.
Какие могут быть варианты?
Добавлено:
Цитата:
Может кто нибудь подскажет как корректно поступить в данной ситуации? Может быть есть другие способы решить задачу сортировки IMAP почты по папкам.
[q][/q]
к примеру - не морочить голову с пользовательскими процедурами для правил получения, а посмотреть первые посты данной темы и работать на уровне ThisOutlookSession с кодом VB
Господа, простите за неумение, очень прошу помочь. Ситуация следующая, во входящих список писем-заявок, по выполнении заявки ставится галочка (выполнено) нужен скрипт который периодически переносил бы письма с отметкой выполнено в папку "Выполнено".
на сколько я понимаю сложность ещё и в том что этот скрипт должен срабатывать не во время прихода письма (так как на этот момент отметки ещё нет), а отметка ставится вручную.
Пожалуйста помогите скриптом и советом как его прикрутить к Outlook.
на сколько я понимаю сложность ещё и в том что этот скрипт должен срабатывать не во время прихода письма (так как на этот момент отметки ещё нет), а отметка ставится вручную.
Пожалуйста помогите скриптом и советом как его прикрутить к Outlook.
в общих чертах - делаете в проекте VBA для Oulook при startup-е макрос, где делаете паблик-объект на Item, потом для его change пишем макрос обработки изменения, где проверяем соотв. св-во Item-а - признак "выполнено", и если установелно - перемещаете через Move...
здесь были похожие куски кода... сами разберетесь или подкинуть попозже образец?
здесь были похожие куски кода... сами разберетесь или подкинуть попозже образец?
угу, очень попрошу и код, и поподробнее, а то для меня часть слов вообще неизвестны (((
Вечер добрый, помогите плз советом скриптом, как организовать такое.
При нажатии на кнопку отправить скрипт проверял поле "кому" и если оно подходило бы по условию, допустим mne@mail.ru то он(скрипт) вставлял бы в тело письма определенную строчку, например username.
Спасибо за помощь =))
При нажатии на кнопку отправить скрипт проверял поле "кому" и если оно подходило бы по условию, допустим mne@mail.ru то он(скрипт) вставлял бы в тело письма определенную строчку, например username.
Спасибо за помощь =))
Помогите создать скрипт:
1) При создании письма загружался 1 шаблон, можно бланк из настроек оутлука, но специально оформленный.
2) При введении мыла "кому" или ухода с этого поля курсора - автоматически подставлялся бы заголовок мыла, а лучший вариант: из адресной книги по мылу - имя фамилия
3) Обязательно присутствовали бы дата и время написания письма в самом его конце.
зы. я дуб дубом в VB. буду рад помощи. Платные системы не предлагать - в организации это не пройдет.
зыы. можно и кусочками, главное что бы получить результат.
1) При создании письма загружался 1 шаблон, можно бланк из настроек оутлука, но специально оформленный.
2) При введении мыла "кому" или ухода с этого поля курсора - автоматически подставлялся бы заголовок мыла, а лучший вариант: из адресной книги по мылу - имя фамилия
3) Обязательно присутствовали бы дата и время написания письма в самом его конце.
зы. я дуб дубом в VB. буду рад помощи. Платные системы не предлагать - в организации это не пройдет.
зыы. можно и кусочками, главное что бы получить результат.
здравствуйте.
Имеется скрипт, который из непрочтенных писем аутлука выдирает аттачи и кладет их на файловую систему под именем dd-mm-yyyy-%filename%
на Win XP отлично работает, а на Win2k3 (терминальный сервер) не хочет.
с включенным debug сообщает "error on: %subject%"
и что ему не нравиться?
[more]' To Turn On Debug Change Dim Debug from False to True in mDebug function
Sub mDebug(Text)
Dim Debug
Debug = True
If Debug Then
WScript.Echo Text
End If
End Sub
Sub save_new()
On Error Resume Next
Dim myApp 'As Outlook.Application
Dim myFolder 'As Outlook.MAPIFolder
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6) '.Folders("1")
DestFolder = "C:\Scripts\"
' myFolder.Items.Sort "ReceivedTime", false
If myFolder.Items.Count > 0 Then
For i = 1 To myFolder.Items.Count
If (myFolder.Items(i).Attachments.Count > 0) and (myFolder.Items(i).Unread = True) Then
For j = 1 To myFolder.Items(i).Attachments.Count
mDebug(myFolder.Items(i).Subject & " " & myFolder.Items(i).CreationTime)
myFolder.Items(i).Attachments.Item(j).SaveAsFile DestFolder & _
left(myFolder.Items(i).CreationTime,10) & "_" & _
myFolder.Items(i).Attachments.Item(j).DisplayName
Next
End If
if Err.Number <> 0 Then
mDebug("Error on :" & myFolder.Items(i).Subject)
Err.Clear
end if
Next
End If
End Sub
mDebug("Start")
save_new()
mDebug("Done")[/more]
Имеется скрипт, который из непрочтенных писем аутлука выдирает аттачи и кладет их на файловую систему под именем dd-mm-yyyy-%filename%
на Win XP отлично работает, а на Win2k3 (терминальный сервер) не хочет.
с включенным debug сообщает "error on: %subject%"
и что ему не нравиться?
[more]' To Turn On Debug Change Dim Debug from False to True in mDebug function
Sub mDebug(Text)
Dim Debug
Debug = True
If Debug Then
WScript.Echo Text
End If
End Sub
Sub save_new()
On Error Resume Next
Dim myApp 'As Outlook.Application
Dim myFolder 'As Outlook.MAPIFolder
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6) '.Folders("1")
DestFolder = "C:\Scripts\"
' myFolder.Items.Sort "ReceivedTime", false
If myFolder.Items.Count > 0 Then
For i = 1 To myFolder.Items.Count
If (myFolder.Items(i).Attachments.Count > 0) and (myFolder.Items(i).Unread = True) Then
For j = 1 To myFolder.Items(i).Attachments.Count
mDebug(myFolder.Items(i).Subject & " " & myFolder.Items(i).CreationTime)
myFolder.Items(i).Attachments.Item(j).SaveAsFile DestFolder & _
left(myFolder.Items(i).CreationTime,10) & "_" & _
myFolder.Items(i).Attachments.Item(j).DisplayName
Next
End If
if Err.Number <> 0 Then
mDebug("Error on :" & myFolder.Items(i).Subject)
Err.Clear
end if
Next
End If
End Sub
mDebug("Start")
save_new()
mDebug("Done")[/more]
Gremlin19
А код ошибки какой? Может у юзера нет прав на запись в эту папку или имя файла содержит недопустимые символы.
А код ошибки какой? Может у юзера нет прав на запись в эту папку или имя файла содержит недопустимые символы.
Предыдущая тема: SystemV семафоры
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.