Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.04;
Скачать: CL | DM;

Вниз

Отправление писем из Delphi 7 через Outlook   Найти похожие ветки 

 
Виталий   (2011-11-22 21:16) [0]

У меня есть программный код в VBA, мне нужно его перевести для Delphi 7. Программный код прилагается ниже. Либо помогите написать код который из БД в Delphi 7 будет отправлять письма через Microsoft Outlook.  За ранние спасибо.

Private Sub Otpravit_Click()
On Error GoTo Err_Otpravit_Click
" Отправка писем
Dim prog As Outlook.Application  " Объект - программаOutlook
Dim baza As Database " Объект - база данных
Dim tablica As Recordset " Таблица ТаблицаПисьма
Dim i As Integer " Счетчик цикла
Dim portion As Integer " Счетчик порций
Dim zapis As Integer " Номер записи
Dim pismo As MailItem " Объект - почтовое сообщение
Dim dopfail As String " Присоединяемый файл
Dim Copies As Integer " Число копий письма
Dim pauza As Integer " Величина интервала ожидания
Dim PauseTime, Start " Переменные для таймера
Dim Konec As Boolean " Конец таблицы
Dim myNamespace As Outlook.NameSpace
" Создание объектов для письма
Set prog = New Outlook.Application
Set myNamespace = prog.GetNamespace("MAPI")
" Начальные значения переменных
dopfile = " "
If Len(Trim(Me!Text9)) > 0 Then dopfail = Me!Text9
dopfile = Trim(dopfile)
pauza = Me!Interval
Konec = False
If pauza < 0 Then pauza = 1
Copies = Me!Kopii
If Copies < 0 Then Copies = 1
" Подключение таблицы
Set baza = CurrentDb " Работаем с этой же БД
Set tablica = baza.OpenRecordset("SELECT * FROM [ТаблицаАдреса] WHERE ([Да]=True);")
" Основной цикл
 Do While Me!Check34 And Not Konec
 Me.Refresh  " Пересчет данных формы
   If tablica.RecordCount <> 0 Then " Таблица не должна быть пустой
   tablica.MoveLast " Последняя запись
   tablica.MoveFirst " Первая запись
   zapis = 1
   " Ищем новые записи
     Do While tablica!flag = 1 And zapis < tablica.RecordCount
     tablica.MoveNext " Выбор следующей записи
     zapis = zapis + 1
     Loop
     If tablica.RecordCount - zapis >= Copies Then  " Определение количества адресов
     portion = Copies
     Else
     portion = tablica.RecordCount - zapis + 1
     End If
     " Формирование письма в формате Outlook
   Set pismo = prog.CreateItem(olMailItem) " Создание объекта
   pismo.Subject = Me!Tema " Тема сообщения
   pismo.Body = Me!Tekst " Текст сообщения
   If dopfail <> "" Then pismo.Attachments.Add dopfail " Дополнительный файл
       For i = 1 To portion " Перебор очередной порции адресов
       If tablica!Да And Not Konec Then
         If tablica!flag <> 1 Then
         pismo.Recipients.Add tablica!Email " Еще один адрес
         tablica.Edit
         tablica!flag = 1 " Адрес использован
         tablica.Update
         End If
       End If
       If zapis < tablica.RecordCount Then
       tablica.MoveNext " Выбор следующего адреса
       zapis = zapis + 1
       Else
       Konec = True
       End If
     Next
   Me!Obrab = zapis  " Индикация номера записи в форме
  " pismo.Display " Показ письма в окне. Для отладки
   pismo.Send " Отправка письма
   Me!Поле93 = "РАССЫЛКА"
   Me!Поле93.BackColor = RGB(0, 250, 0)
   End If
 " Интервал ожидания
 PauseTime = pauza " Установка величины паузы
 Start = Timer    " Текущее значение таймера
   Do While Timer < Start + PauseTime And Me!Check34 " Цикл ожидания
   DoEvents    " Позволяется работать другим процессам
   Loop
 Loop
Me!Поле93 = "ОСТАНОВ"
Me!Поле93.BackColor = RGB(200, 200, 200)
tablica.Close " Закрытие таблицы
" Обработка ошибки
Exit_Otpravit_Click:
prog.Quit
Exit Sub
Err_Otpravit_Click:
MsgBox Err.Description " Сообщение об ошибке
Resume Exit_Otpravit_Click
End Sub


 
Плохиш ©   (2011-11-22 21:29) [1]

>Либо помогите написать код который

либо что?


 
Виталий   (2011-11-22 21:59) [2]

Либо помогите написать программный код который будет отправлять письма из БД в Delphi 7 через Microsoft Outlook.


 
Кщд   (2011-11-23 07:34) [3]

>Виталий   (22.11.11 21:59) [2]
Как делали, что не получилось?


 
han_malign   (2011-11-23 10:16) [4]

var prog: OleVariant;
    myNamespace: OleVariant;
    .....
begin
   try
      //" Создание объектов для письма
      prog:= CreateOLEObject("Outlook.Application");
      myNamespace = prog.GetNamespace("MAPI");
  ...........

- и так далее...


 
Anatoly Podgoretsky ©   (2011-11-23 10:19) [5]

> Виталий  (22.11.2011 21:59:02)  [2]

На многих серверах сущуствуют форумы Работа, не пробовал там заказать?


 
OW ©   (2011-11-23 11:18) [6]

по сабжу:
Помогают тем, кто что-то сделал сам и что-то не получилось/ не получается.
Вы же заказываете сделать работу. Тут и такое делают, но за деньги и под настроение.

по флуду:
мне больше

> За ранние

понравилось :)

в диктанте попадется такое слово - уже трояк, три ошибки на орфографию


 
Dennis I. Komarov ©   (2011-11-23 11:32) [7]

ключевые слова:

> У меня есть программный код в VBA, мне нужно его перевести


P.S.

> либо что?

Заспамит своим VBA


 
Виталий   (2011-11-23 23:08) [8]

А дальше можешь написать код полностью а то в это не чего не понимаю =)))


 
Омлет ©   (2011-11-23 23:43) [9]

Проще, дай номер кошелька - мы тебе денег отправим.


 
Dennis I. Komarov ©   (2011-11-23 23:55) [10]

"альпийское нищенство – святое дело"


 
Германн ©   (2011-11-24 00:48) [11]


> Виталий   (23.11.11 23:08) [8]

Ну сколько можно попрошайничать?


 
Виталий   (2011-11-24 00:53) [12]

Выручайте блин без вас не как =))


 
Плохиш ©   (2011-11-24 11:41) [13]

500 евро, предоплата.



Страницы: 1 вся ветка

Текущий архив: 2012.03.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
2-1321907625
Елена
2011-11-22 00:33
2012.03.04
TPaintBox &amp; TImage


15-1321418542
Tin52
2011-11-16 08:42
2012.03.04
Печать из Word


11-1242734651
regnied
2009-05-19 16:04
2012.03.04
Поиск в глубину


3-1271337869
Андрей Пл
2010-04-15 17:24
2012.03.04
компонент ComboBoх с отфильтрованным выпадающим списком


15-1321342175
oleg1963lora
2011-11-15 11:29
2012.03.04
Анимация *.gif объектов