Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / отправка писем из Excel vba через lotus 8.5 / 11 сообщений из 11, страница 1 из 1
23.10.2012, 10:45
    #38009365
palado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Раньше когда была версия Lotus 7 отправлялись письма и вложения без проблем, как только сменил Лотус на 8.5 тело письма и вложения не доходят до адресата, что сделать? Вот код ниже, как его подправить под Лотус 8.5 ?

' ОТПРАВЛЯЕМ ПОЧТУ ЧЕРЕЗ ЛОТУС


Dim Maildb As Object 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'The current users notes mail database name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim Session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (Attachment)
Dim Subject As String 'The subject string
Dim Attachment As String 'The path to the attachemnt string
Dim Recipient As String 'The Recipient string (or you could use the list)
Dim Recip(10) As Variant 'The Recipient list
Dim BodyText As Object 'The body text
Dim SaveIt As Boolean 'Save to sent mail
Dim WasOpen As Integer 'Checking to see if the Mail DB was already
'open to determine if session should be
'closed (0) or left alone (1)
Dim ClipBoard As DataObject 'Data object for getting text from clipboard

Subject = Subject_put

Recipient = email





' Тело сообщения
Worksheets("Sheet2").Range("A1:A30").Copy

Set ClipBoard = New DataObject
ClipBoard.GetFromClipboard
SaveIt = True
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
WasOpen = 1 'Already open for mail
Else
WasOpen = 0
Maildb.OPENMAIL 'This will prompt you for password
End If
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = Recipient 'Or use Racip(10) for multiple
MailDoc.Subject = Subject
MailDoc.Body = ClipBoard.GetText(1)
MailDoc.SAVEMESSAGEONSEND = SaveIt

Filenamesend = "C:\MY\Отходы и лом\Получение отходов\Контракты\" + Filename + "\Работа с Договором и документами\" + _
Filename + "-СМКТС от " + Format(Date, "dd-mm-yyyy") + ".pdf"
fl = Dir(Filenamesend)


Attachment1 = Filenamesend ' Required File Name

If Attachment1 <> "" Then
On Error Resume Next
Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
Set EmbedObj1 = AttachME.EMBEDOBJECT(1454, "attachment1", Filenamesend, "") 'Required File Name
On Error Resume Next
End If


MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.SEND 0, Recipient

Range("A1").Select
Application.CutCopyMode = False
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set EmbedObj = Nothing
If WasOpen = 1 Then
Set Session = Nothing
ElseIf WasOpen = 0 Then
Session.Close
Set Session = Nothing
End If

'MsgBox "Заказ успешно отправлен:) ", vbOKOnly
...
Рейтинг: 0 / 0
23.10.2012, 10:53
    #38009395
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
23.10.2012, 13:06
    #38009769
palado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Shocker.Pro,

? не нашел никакого ответа на свою проблему
...
Рейтинг: 0 / 0
23.10.2012, 13:27
    #38009812
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Кто сказал, что там есть ответ на вашу проблему. Я лишь прошу оформлять код наглядно, тогда желающих помочь с вашей проблемой будет гораздо больше

Код: vbnet
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.
' ОТПРАВЛЯЕМ ПОЧТУ ЧЕРЕЗ ЛОТУС
    
    
    Dim Maildb As Object        'The mail database
    Dim UserName As String      'The current users notes name
    Dim MailDbName As String    'The current users notes mail database name
    Dim MailDoc As Object       'The mail document itself
    Dim AttachME As Object      'The attachment richtextfile object
    Dim Session As Object       'The notes session
    Dim EmbedObj As Object      'The embedded object (Attachment)
    Dim Subject As String       'The subject string
    Dim Attachment As String    'The path to the attachemnt string
    Dim Recipient As String     'The Recipient string (or you could use the list)
    Dim Recip(10) As Variant    'The Recipient list
    Dim BodyText As Object      'The body text
    Dim SaveIt As Boolean       'Save to sent mail
    Dim WasOpen As Integer      'Checking to see if the Mail DB was already
                                'open to determine if session should be
                                'closed (0) or left alone (1)
    Dim ClipBoard As DataObject 'Data object for getting text from clipboard
   
    Subject = Subject_put

Recipient = email


    
    
    
    ' Тело сообщения
    Worksheets("Sheet2").Range("A1:A30").Copy
    
    Set ClipBoard = New DataObject
    ClipBoard.GetFromClipboard
    SaveIt = True
    Set Session = CreateObject("Notes.NotesSession")
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Maildb.IsOpen = True Then
         WasOpen = 1      'Already open for mail
     Else
         WasOpen = 0
         Maildb.OPENMAIL    'This will prompt you for password
     End If
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient      'Or use Racip(10) for multiple
    MailDoc.Subject = Subject
    MailDoc.Body = ClipBoard.GetText(1)
    MailDoc.SAVEMESSAGEONSEND = SaveIt
    
    Filenamesend = "C:\MY\Отходы и лом\Получение отходов\Контракты\" + Filename + "\Работа с Договором и документами\" + _
     Filename + "-СМКТС от " + Format(Date, "dd-mm-yyyy") + ".pdf"
     fl = Dir(Filenamesend)
 
    
           Attachment1 = Filenamesend '    Required File Name

    If Attachment1 <> "" Then
        On Error Resume Next
            Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
            Set EmbedObj1 = AttachME.EMBEDOBJECT(1454, "attachment1", Filenamesend, "") 'Required File Name
        On Error Resume Next
    End If


    MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
    MailDoc.SEND 0, Recipient
   
    Range("A1").Select
    Application.CutCopyMode = False
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set EmbedObj = Nothing
    If WasOpen = 1 Then
        Set Session = Nothing
    ElseIf WasOpen = 0 Then
        Session.Close
        Set Session = Nothing
    End If
    
    'MsgBox "Заказ успешно отправлен:) ", vbOKOnly
...
Рейтинг: 0 / 0
23.10.2012, 13:30
    #38009820
palado
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Shocker.Pro,

ну да спасибо за наглядность
...
Рейтинг: 0 / 0
24.10.2012, 00:36
    #38010733
отправка писем из Excel vba через lotus 8.5
> palado,
> Раньше когда была версия Lotus 7 отправлялись письма и вложения без проблем, как только сменил Лотус на 8.5
> Вот код ниже, как его подправить под Лотус 8.5 ?

Открывать список изменений в объектной модели Лотус начиная с 7+ до 8.5. Искать там имена знакомых используемых в программе объектов.
Внимательно читатать.
Делать выводы.
...
Рейтинг: 0 / 0
25.10.2012, 08:11
    #38012402
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
palado,
попробуйте сперва хотя бы перед отправкой поставить
Код: vbnet
1.
2.
3.
On Error GoTo ...
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.SEND 0, Recipient



а то может отправка и не происходит, а Вы убили обработку ошибок
Код: vbnet
1.
On Error Resume Next
...
Рейтинг: 0 / 0
08.11.2012, 15:35
    #38030465
Chumakov_JA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
HandKot,

вот кстати работающий пример
автор
Public Sub sendEmail(EMailSendTo As String, EmailSubject As String, EMailBody As String)

Dim objNotesSession As Object
Dim objNotesMailFile As Object
Dim objNotesDocument As Object
Dim objNotesField As Object
Dim sendmail As Boolean

Dim dbString As String


On Error GoTo SendMailError
Set objNotesSession = CreateObject("Notes.NotesSession")
On Error Resume Next

dbString = objNotesSession.GetEnvironmentString("MailFile", True)
Set objNotesMailFile = objNotesSession.GETDATABASE(MailServer, dbString)
'Open Mail
objNotesMailFile.OPENMAIL
On Error GoTo 0

'Create New Memo
Set objNotesDocument = objNotesMailFile.createdocument

Dim oWorkSpace As Object, oUIdoc As Object
Set oWorkSpace = CreateObject("Notes.NotesUIWorkspace")
Set oUIdoc = oWorkSpace.CurrentDocument

'Create 'Subject Field'
Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject)

'Create 'Send To' Field
Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo", EMailSendTo)


'Create 'Blind Copy To' Field
Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject)

'Create 'Body' of memo
Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body")

With objNotesField
.APPENDTEXT EMailBody
.ADDNEWLINE 1
End With

'Send the e-mail

Call objNotesDocument.Save(True, False, False)
objNotesDocument.SaveMessageOnSend = True
'objNotesDocument.Save
objNotesDocument.Send (0)

'Release storage
Set objNotesSession = Nothing
Set objNotesMailFile = Nothing
Set objNotesDocument = Nothing
Set objNotesField = Nothing

'Set return code
sendmail = True

Exit Sub

SendMailError:
Dim Msg
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
sendmail = False
End Sub
...
Рейтинг: 0 / 0
08.11.2012, 15:37
    #38030475
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Chumakov_JA, вы не первый день на форуме, прошу научиться пользоваться тэгами оформления кода.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.03.2014, 14:38
    #38582977
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Доброго дня господа !

Имею еще проблему по Lotus
Как и где именно ввести пароль (на базу на сессию)

Set Session = CreateObject("Notes.NotesSession")
Call Session.Initialize("MyPassword") - ругаеться !!!!!!!!!!!!

Но вываливаеться окно с запросмо на пароль ?
...
Рейтинг: 0 / 0
01.04.2014, 17:00
    #38602138
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отправка писем из Excel vba через lotus 8.5
Код: vbnet
1.
2.
3.
Set Session = CreateObject("Notes.NotesSession")
Session.hashpassword (Password)
Set Maildb = Session.GETDATABASE(MailServer, File.nsf)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / отправка писем из Excel vba через lotus 8.5 / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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