Страница: 1 |
Страница: 1 |
Вопрос: Отправка e-mail из VBA
Добавлено: 24.08.06 11:34
Автор вопроса: Леха
Подскажите, пожалуйста!
Как можно создать сообщение (адрес, тема, текст письма) без прикрепления книги?
Пробовал так:
Application.Dialogs(xlDialogSendMail).Show
arg1:="e@mail.ru",
arg2:="Тема"
но при вызове диалога автоматом прикрепляется книга
ActiveWorkbook.SendMail тоже не подходит
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Незнайка
Вопросов: 7
Ответов: 188
Профиль | | #1
Добавлено: 24.08.06 15:56
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)
Sub SendMail()
Call ShellExecute(0&, "Open", "mailto:" & "address@mail.ru" & "?Subject=" & "Это тема письма" & "&Body=" & "Это текст в теле письма", "", "", 1)
End Sub
Номер ответа: 2
Автор ответа:
Леха
Вопросов: 7
Ответов: 11
Профиль | | #2
Добавлено: 24.08.06 16:38
Супер! Работает! Письмо формируется, тока какая-то хрень с кодировкой (кирилица). Как это побороть?
Номер ответа: 3
Автор ответа:
APS
ICQ: 234458121
Вопросов: 38
Ответов: 107
Профиль | | #3
Добавлено: 29.08.06 12:42
А у меня не работает. Может, я что-то не так делаю. Разместил указанный код в модуле. При вызове макроса ничего не происходит, ошибки не выдаются. У меня установлен MS Office 2003 SP1.
Номер ответа: 4
Автор ответа:
APS
ICQ: 234458121
Вопросов: 38
Ответов: 107
Профиль | | #4
Добавлено: 21.09.06 17:20
Вот незадача, и никто не может подсказать. Дома работает, на работе нет. Офис ставили с одного дистриба.
Нашел другой способ отправки email:
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Dim ToMail, Subject, Body As String
ToMail = Cells(1, 6).Value
Subject = Cells(2, 6).Value
Body = Cells(3, 6).Value
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
With objMail
.To = ToMail
.Body = Body
.Subject = Subject
.Display
End With
Set objMail = Nothing
Set objOL = Nothing
Next
End Sub
И вот возник вопрос: как сделать, чтобы сообщение сразу уходило? Так оно открывается и ждет команды отправить.
Как прикрепить к сообщению файл?
Номер ответа: 5
Автор ответа:
APS
ICQ: 234458121
Вопросов: 38
Ответов: 107
Профиль | | #5
Добавлено: 21.09.06 20:31
Как прикрепить любой файл сделал.
Надо только добавить код:
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Dim objAttach As Outlook.Attachments
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
Set objAttach = objMail.Attachments
With objMail
.To = "mail@mail.ru"
.Body = "Это текст тестового письма, отправленного средствами VBA"
.Subject = "Тема"
.Display
End With
objAttach.Add ("Полный путь к файлу"
Set objMail = Nothing
Set objOL = Nothing
Set objAttach = Nothing
End Sub
Номер ответа: 6
Автор ответа:
APS
ICQ: 234458121
Вопросов: 38
Ответов: 107
Профиль | | #6
Добавлено: 21.09.06 20:39
Ну и наконец дошло дело до отправки.
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Dim objAttach As Outlook.Attachments
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
Set objAttach = objMail.Attachments
objAttach.Add ("Полный путь к файлу"
With objMail
.To = "mail@mail.ru"
.Body = "Это текст тестового письма, отправленного средствами VBA"
.Subject = "Тема"
.Display
.Send
End With
Set objMail = Nothing
Set objOL = Nothing
Set objAttach = Nothing
End Sub
Но Outlook делает одну гадость:
Программа пытается автоматически отправить сообщение электронной почты с помощью команды Item.Send языка Microsoft Visual Basic Application (VBA) из Microsoft Outlook. Чтобы разрешить программе отправку сообщения, нажмите кнопку Да. Чтобы остановить программу, нажмите кнопку Нет.
Примечание. Кнопка Да недоступна в течение первых пяти секунд после отображения сообщения.
QUOTE]
И все равно приходиться нажимать кнопку, да еще ждать 5 секунд.
Нужен выход...
Думаю при таком способе отправки почты, его не найти!!!
Номер ответа: 7
Автор ответа:
Незнайка
Вопросов: 7
Ответов: 188
Профиль | | #7
Добавлено: 22.09.06 07:53
Этому посвящено достаточно большое количество информации. Смотри в инете. Если Офис 2000 без сервис паков - то таких проблем нет. А вот уже на чиная с первого сервис пака для 2000 (не говоря уже о более поздних версиях офиса) Майкрософт стала заботится о нас и включать эту бяку - дабы уберечь нас всех от вирусов и спама. Сделали они это вроде как на совесть - а посему обойти её я лично не нашел нормального способа - делаю подготовку письма к отправке - перехватываю окошко и програмно жму отправить... что есть криво! Специально купил книжку по аутлук и вычитал что есть специальная примочка от Майкрософта, которую могут поставить товарисчи с правами админов - где настраивается - кто может нормально программно отправлять письма без этих заботливых запросов и 5 секундных ожиданий. На работе пользуюсь офисом 2000 без сервис паков а посему ваще не сталкиваюсь с этой проблемой.
Номер ответа: 8
Автор ответа:
Kostya
Вопросов: 0
Ответов: 2
Профиль | | #8
Добавлено: 08.11.06 10:53
Когда я пытался запустить нечто подобное, на третью строчку мне сказали Can't find project or library. Я так понимаю, что проблема в библиотеках. Что для этой процедуры нужно, кроме Microsoft Outlook 11.0 Object Library?
Номер ответа: 9
Автор ответа:
APS
ICQ: 234458121
Вопросов: 38
Ответов: 107
Профиль | | #9
Добавлено: 09.11.06 23:16
Да вроде ничего не нужно. У меня больше ничего не подключено.
Номер ответа: 10
Автор ответа:
Kostya
Вопросов: 0
Ответов: 2
Профиль | | #10
Добавлено: 10.11.06 10:45
Я понял, в чем фишка. После отключения библиотеки Microsoft Office 11.0 (как-то так называется) все работает.
Номер ответа: 11
Автор ответа:
recommend
Вопросов: 1
Ответов: 2
Web-сайт:
Профиль | | #11
Добавлено: 13.08.08 13:15
А без Аутлук через SNMP Это делать кто-нибудь умеет?