powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CDO
36 сообщений из 36, показаны все 2 страниц
CDO
    #32271540
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, вопрос к тем, кто владеет Collaboration data objects/
Очень попрошу вас скинуть пример или ссылку на пример отправки сообщения с вложениями, используя CDO
Заранее спасибо!
...
Рейтинг: 0 / 0
CDO
    #32271741
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
CDO
    #32271874
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кто-нибудь в VBA это дело юзал?
А то у меня сплошные голюны!!!!!!!
...
Рейтинг: 0 / 0
CDO
    #32271908
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я использую мапи
...
Рейтинг: 0 / 0
CDO
    #32271948
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно пример?
...
Рейтинг: 0 / 0
CDO
    #32271992
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Public Sub tst()
      Const SESSION_SIGNON =  1 
      Const MESSAGE_COMPOSE =  6 
      Const ATTACHTYPE_DATA =  0 
      Const RECIPTYPE_TO =  1 
      Const RECIPTYPE_CC =  2 
      Const MESSAGE_RESOLVENAME =  13 
      Const MESSAGE_SEND =  3 
      Const SESSION_SIGNOFF =  2 
Dim MS
Dim Msgs
Set MS = CreateObject( "MSMAPI.mapiSession" )
Set Msgs = CreateObject( "MSMAPI.mapiMessages" )
MS.signon
Msgs.sessionid = MS.sessionid
Msgs.compose
Msgs.msgsubject =  "Memo from my FoxPro app" 
Msgs.msgnotetext =  "This works" 
Msgs.RecipIndex =  0                     'First recipient'
Msgs.RecipType = RECIPTYPE_TO
Msgs.RecipDisplayName =  "entername@mail.ru"          'Recipient in TO line'


Msgs.AttachmentType =  0 
Msgs.AttachmentIndex =  0 
Msgs.AttachmentPathName =  "c:\CONFIG.SYS" 
Msgs.AttachmentPosition =  0 




'формирует письмо и просит подтвердить'
Msgs.send ( "1 ")
' сразу посылает если не стоит флаг в оутлуке (треб. перезагрузка)
'Msgs.Action = MESSAGE_SEND

 'Close MAPI mail session:'
MS.Action = SESSION_SIGNOFF

'MS.signoff


End Sub

...
Рейтинг: 0 / 0
CDO
    #32272050
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какие библиотеки надо подключать что бы не было 429 ерора?
...
Рейтинг: 0 / 0
CDO
    #32272068
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня пример работает в бд ACCESSxp ADP без ошибок.

библиотеки только стандартные VBA, ACC 10 OL

должны быть зарегистрированы MAPI длл и контролы в системе что обычно происходит при установке в систему почтового клиента
exchange, msoutlook, msoutlookexpress
...
Рейтинг: 0 / 0
CDO
    #32272081
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А у меня это п-р говорит что не может создать объект Active X!
...
Рейтинг: 0 / 0
CDO
    #32272565
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С:\WINDOWS\system32\MSMAPI32.OCX - должен быть зарегистрирован в системе (regsvr32.exe )


типа такого должен быть ключ в реестре

HKEY_CLASSES_ROOT\CLSID\{20C62CA0-15DA-101B-B9A8-444553540000}\ProgID

значение - MSMAPI.MAPISession.1

если есть библиотка, правильно зарегистрирована в реестре
то работать должно

попробуй так

Set MS = CreateObject("MSMAPI.mapiSession.1")
Set Msgs = CreateObject("MSMAPI.mapiMessages.1")
...
Рейтинг: 0 / 0
CDO
    #32272689
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Епать-колотить! А у меня MSMAPI32.OCX ваще нет! Атас! Где взять?
Help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ps
почему не включаешь аську?
...
Рейтинг: 0 / 0
CDO
    #32272744
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
установи последнюю версию MSIE с ней впридачу устанавливается MS OutlookExpress после установки последнего библиотека должна появиться
...
Рейтинг: 0 / 0
CDO
    #32272759
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так она мля у меня и стоит(v 6.0)!
Может намылишь мне онаю на
mailto:gain@inbox.ru
...
Рейтинг: 0 / 0
CDO
    #32272770
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ася умерла. письмо послал.
...
Рейтинг: 0 / 0
CDO
    #32272812
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алилуя!

Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!
Работает!

Но где же была моя OCX?
...
Рейтинг: 0 / 0
CDO
    #32272906
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поздравляю.
...
Рейтинг: 0 / 0
CDO
    #32279723
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
'формирует письмо и просит подтвердить'
Msgs.send ( "1 ")
' сразу посылает если не стоит флаг в оутлуке (треб. перезагрузка)


 'Close MAPI mail session:'
MS.Action = SESSION_SIGNOFF

'MS.signoff
- имеется в виду, что это должно быть разремлено, если
Код: plaintext
'Msgs.Action = MESSAGE_SEND
тоже разремлено?
...
Рейтинг: 0 / 0
CDO
    #32279828
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или
Msgs.send ("1")


или
Msgs.Action = MESSAGE_SEND


с просмотром письма в редакторе или немедленная отправка
...
Рейтинг: 0 / 0
CDO
    #32279975
Са_ша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я имел ввиду вот эти 2 строки:

MS.Action = SESSION_SIGNOFF

MS.signoff
...
Рейтинг: 0 / 0
CDO
    #32651179
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК

А как сделать то-же, но обращаясь непосредственно к mapi32.dll, без регистрации ocx-а?
...
Рейтинг: 0 / 0
CDO
    #32651299
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
Private Type MAPIMessage
    Reserved As Long
    Subject As String
    NoteText As String
    MessageType As String
    DateReceived As String
    ConversationID As String
    Flags As Long
    RecipCount As Long
    FileCount As Long
End Type

Private Type MapiRecip
    Reserved As Long
    RecipClass As Long
    Name As String
    Address As String
    EIDSize As Long
    EntryID As String
End Type

Private Type MapiFile
    Reserved As Long
    Flags As Long
    Position As Long
    PathName As String
    FileName As String
    FileType As String
End Type

Private Declare Function MAPISendMail _
 Lib "c:\program files\outlook express\msoe.dll" _
 Alias "BMAPISendMail" _
 (ByVal Session&, ByVal UIParam&, Message As MAPIMessage, _
  Recipient() As MapiRecip, File() As MapiFile, _
  ByVal Flags&, ByVal Reserved&) As Long
  
Private Declare Function MAPIReadMail _
 Alias "BMAPIReadMail" _
 Lib "c:\program files\outlook express\msoe.dll" _
 (lMsg&, nRecipients&, nFiles&, ByVal Session&, ByVal UIParam&, _
  MessageID$, ByVal flag&, ByVal Reserved&) As Long
  
Private Declare Function MAPILogon _
 Lib "c:\program files\outlook express\msoe.dll" _
 (ByVal UIParam&, ByVal user$, ByVal Password$, ByVal Flags&, ByVal Reserved&, Session&) As Long

Private Declare Function MAPILogoff _
 Lib "c:\program files\outlook express\msoe.dll" _
 (ByVal Session&, ByVal UIParam&, ByVal Flags&, ByVal Reserved&) As Long
  
Private Declare Function MAPIFindNext _
 Lib "c:\program files\outlook express\msoe.dll" _
 Alias "BMAPIFindNext" _
 (ByVal Session&, ByVal UIParam&, MsgType$, SeedMsgID$, ByVal flag&, ByVal Reserved&, msgid$) As Long
 
Private Declare Function MAPIReadMail _
 Lib "c:\program files\outlook express\msoe.dll" _
 Alias "BMAPIReadMail" _
 (lMsg&, nRecipients&, nFiles&, ByVal Session&, ByVal UIParam&, _
  MessageID$, ByVal flag&, ByVal Reserved&) As Long
 
Private Declare Function MAPIGetReadMail _
 Lib "c:\program files\outlook express\msoe.dll" _
 Alias "BMAPIGetReadMail" _
 (ByVal lMsg&, Message As MAPIMessage, _
  Recip() As MapiRecip, File() As MapiFile, Originator As MapiRecip) As Long
 
Private Sub Кнопка0_Click()
 Dim mm As MAPIMessage, mr( 1 ) As MapiRecip, mf( 1 ) As MapiFile

  mm.FileCount =  0 
  mm.NoteText = "Message Body"
  mm.Subject = "Message Subject"
  mm.RecipCount =  1 
  mm.MessageType = ""
  mm.DateReceived = Date
   
  mr( 0 ).Address = "address@domen.ru"
  mr( 0 ).Name = "Кому"
  mr( 0 ).Reserved =  0 
  mr( 0 ).RecipClass =  1 
  mr( 0 ).EIDSize =  0 
   
  mf( 0 ).PathName = "c:\temp\temp.txt"  'путь к аттачу 
  mf( 0 ).Flags =  1 
  mf( 0 ).Position =  100 
  mf( 0 ).Reserved =  0 
  mf( 0 ).FileType = ""
  Debug.Print MAPISendMail( 0 , Application.hWndAccessApp, mm, mr, mf,  2 ,  0 )
End Sub

Это если Outlook Express 5.x и старше используешь, иначе вместо
Код: plaintext
Lib "c:\program files\outlook express\msoe.dll"
пиши
Код: plaintext
Lib "MAPI32.DLL"
и Alias, где они есть, поубирай.
...
Рейтинг: 0 / 0
CDO
    #32651639
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorM[src vba]
Private Declare Function MAPIReadMail _
Alias "BMAPIReadMail" _
Lib "c:\program files\outlook express\msoe.dll" _
(lMsg&, nRecipients&, nFiles&, ByVal Session&, ByVal UIParam&, _
MessageID$, ByVal flag&, ByVal Reserved&) As Long
[src vba]
на этом месте при компиляции ругается:
"Ambigious name detected: MAPIReadMail
...
Рейтинг: 0 / 0
CDO
    #32651642
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, оказывается просто п примере эта функция два раза декларирована!!!
Сорри!!!
...
Рейтинг: 0 / 0
CDO
    #32651658
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Debug.Print MAPISendMail(0, Application.hWndAccessApp, mm, mr, mf, 2, 0)

BAD DLL calling convertion

Это чего?
...
Рейтинг: 0 / 0
CDO
    #32652160
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это значит неправильно функция объявлена.

Ты объявления с OE оставил? OE у тебя вообще установлен? Какая версия? Простой Outlook стоит? Другие почтовые программы есть?
...
Рейтинг: 0 / 0
CDO
    #32652178
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorMЭто значит неправильно функция объявлена.

Ты объявления с OE оставил? OE у тебя вообще установлен? Какая версия? Простой Outlook стоит? Другие почтовые программы есть?
Объявлял так:
---
Declare Function MAPISendMail Lib "MAPI32.DLL" (ByVal Session&, ByVal UIParam&, Message As MAPIMessage, Recipient() As MapiRecip, File() As MapiFile, ByVal Flags&, ByVal Reserved&) As Long
---
Вызываю так же как и предложили:
---
Debug.Print MAPISendMail(0, Application.hWndAccessApp, mm, mr, mf, 2, 0)
---
Как видишь использую напримую mapi32.dll, но outlook на компе есть и настроен, хотя на нем же есть и the bat, вот он как раз и используется по умолчанию, но нужно прогу отдавать клиентам, а что у них будет - вопрос!!!
...
Рейтинг: 0 / 0
CDO
    #32652333
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это несоответствие объявления реализации функции в самой dll. Эти объявления даны для SimpleMAPI, возможно у тебя MAPI32.DLL поддерживает Extended MAPI, там могут быть проблемы с MAPISendMail, на сколько я знаю, из-за разницы в формате ожидаемых фунцией параметрах и формируемых VBA. Можно вместо MAPISendMail попробовать использовать MAPISendDocuments, но там будет появляться окно сообщения.

В принципе, я лично MAPI вообще не использую (обхожусь своей dll, реализующей POP3/SMTP), поэтому более точно сказать, как и что надо настраивать, к сожалению, не могу.
...
Рейтинг: 0 / 0
CDO
    #32652390
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоит WIndows2000Pro, так вполне возможно что и ExtendedMAPI!!!
Ау-у-у-у, гуру, кто объяснит как вызвать MAPISendMail в Extended-реализации из VBA?
...
Рейтинг: 0 / 0
CDO
    #32653139
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если попробовать вызвать simpleMAPI (MAPI.DLL):
Declare Function MAPISendMail Lib "MAPI.DLL" ...
или
Declare Function MAPISendMail Lib "C:\WINNT\system32\MAPI.DLL" ...
то почему-то говорит - File Not Found, хотя файл такой есть!!!
...
Рейтинг: 0 / 0
CDO
    #32653230
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPI.DLL - это 16-тиразрядный вариант MAPI32.DLL
...
Рейтинг: 0 / 0
CDO
    #32653327
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, сорри, лоханулся!!!
Но уже просто пробую все возможные методы!!!
Ну может у кого есть какие соображения?
...
Рейтинг: 0 / 0
CDO
    #32653584
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем тебе OE не подходит? В XP он по умолчанию стоит.
Хотя можешь еще вот так попробовать:
http://support.microsoft.com/default.aspx?scid=kb;en-us;238114
...
Рейтинг: 0 / 0
CDO
    #32653619
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же не себе эту прогу пишу, и знать, какая ОС и почтовик у клиента я НЕ МОГУ, а обеспечить работу проги ДОЛЖЕН!
...
Рейтинг: 0 / 0
CDO
    #32653630
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда напрячься и через SMTP гнать, единственный параметр - адрес SMTP сервера
...
Рейтинг: 0 / 0
CDO
    #32654055
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rodion DoroshkevichЯ же не себе эту прогу пишу, и знать, какая ОС и почтовик у клиента я НЕ МОГУ, а обеспечить работу проги ДОЛЖЕН!

И что? Во-первых, можно указать наличие OE в системных требованиях (конечно, это не самый хороший вариант, но при том, что OE ставится по умолчанию, по-моему, начиная с Win98, может подойти). Во-вторых, при первом запуске (инсталляции) можно анализировать почтовую конфигурацию клиента и использовать соответсвующие методы доступа. В-третьих, как я уже писал, можно работать напрямую с почтовым сервером через SMTP/POP3, компоненты для этого есть. Берешь, например, мою dll , кладешь в binary поле, при необходимости разворачиваешь на диск и используешь.
...
Рейтинг: 0 / 0
CDO
    #32654750
Rodion Doroshkevich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorM
В-третьих, как я уже писал, можно работать напрямую с почтовым сервером через SMTP/POP3, компоненты для этого есть. Берешь, например, мою dll , кладешь в binary поле, при необходимости разворачиваешь на диск и используешь.
Взял, спасибо, огромное!!!
Буду использовать!!!
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CDO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]