Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: OSMORu два файла можно отправить?
 
 автор: Чайник2007   (21.11.2007 в 21:15)   личное сообщение
 
 

Call SendEMail(" osmor@mail.ru ", "c:1.txt", "Привет", "Высылаю файл 1.txt")

  Ответить  
 
 автор: osmor   (22.11.2007 в 08:34)   личное сообщение
 
 

незнаю.
Откуда Вы взяли функцию SendEMail?

  Ответить  
 
 автор: Чайник2007   (22.11.2007 в 19:54)   личное сообщение
 
 

по моему отсюда
http://hiprog.com/access/article.asp?id=449

  Ответить  
 
 автор: osmor   (23.11.2007 в 09:30)   личное сообщение
 
 

Вот новый адрес: http://hiprog.com/index.php?option=com_content&task=view&id=449
что бы отправить более одного файла надо переписывать функцию.

функция должна выглядеть так:

Public Sub SendEMail(strEmailAddress As String, strSubject As String, strBody As String, ParamArray varFileName() As Variant)
  Dim Junk As Long
'Dim strEmailAddress As String
  Dim OESession As Long
  Dim OEmessage As MAPIMessage
  Dim OERecipients() As MapiRecip
  Dim OEFiles() As MapiFile
  Dim OERecipientCount As Long
  Dim OEFileCount As Long
  ReDim OERecipients(0 To 100)
  ReDim OEFiles(0 To 10)
  Dim I As Integer
' Login to Outlook Express
   MAPILogon 0, "", "", MAPI_NEW_SESSION, 0, OESession
' Set subject and message text
   OEmessage.NoteText = strBody
   OEmessage.Subject = strSubject
' Set recipient address (assuming only one)
   OERecipients(0).RecipClass = MAPI_TO
   OERecipients(0).Address = StrConv("smtp:" & strEmailAddress, vbFromUnicode)
   OERecipientCount = 1
   ReDim Preserve OERecipients(0 To OERecipientCount - 1)
   OEmessage.RecipCount = OERecipientCount
   OEmessage.Recipients = VarPtr(OERecipients(0))


  For I = 0 To UBound(varFileName())
         OEFiles(I).PathName = StrConv(varFileName(I), vbFromUnicode)
  Next I
   OEFileCount = UBound(varFileName())
   ReDim Preserve OEFiles(0 To OEFileCount)
   OEmessage.FileCount = OEFileCount + 1
   OEmessage.Files = VarPtr(OEFiles(0))
' Send the message
   Junk = MAPISendMail(0, 0, OEmessage, 0, 0)
  If Junk <> 0 Then MsgBox "OE SendMail failure (" & Format$(Junk) & ")"
End Sub


вызывать так:

 Call SendEMail("os2mor@mail22.ru", "Привет", "Высылаю файлы", "c:\1.txt", "c:\2.xls")

остальной код без изменения

  Ответить  
 
 автор: Чайник2007   (23.11.2007 в 15:55)   личное сообщение
 
 

Спасибо OSMOR! я как раз нашел рабочую альтернативу как раз под мои требования, поставил работает прекрасно т через outглюк express . Это вариант тоже попробую. Но теперь встала другая головная боль нужно чтобы на другом компе РОССИИ при проверке почты прога извлекла эти два файла "c:\1.txt", "c:\2.xls") и закинула в определенную юзером папку.

  Ответить  
 
 автор: Чайник2007   (21.12.2007 в 07:36)   личное сообщение
12 Кб.
 
 

Этот который нашел глючит. Вставил ваш код и он не работает в чем может быть причина . Access 2003.Высылаю базу.

  Ответить  
 
 автор: osmor   (21.12.2007 в 08:50)   личное сообщение
 
 

У вас нет объявления функций MAPI
Нужно вставить весь код из
http://hiprog.com/index.php?option=com_content&task=view&id=449
заменив только Sub SendEMail на код который я привел выше.

  Ответить  
 
 автор: Чайник2007   (21.12.2007 в 09:16)   личное сообщение
 
 

Все равно не работает ругается на процедуру нажатия кнопки

  Ответить  
 
 автор: osmor   (21.12.2007 в 09:38)   личное сообщение
28 Кб.
 
 

Это я с просонья не там слешики в статье постаил , уже поправил.
Вот код

  Ответить  
 
 автор: Чайник2007   (21.12.2007 в 18:45)   личное сообщение
 
 

Все нормально работает

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList