Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Вниз

Отправление писем из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
2-1322210092
Laguna
2011-11-25 12:34
2012.03.04
Цвет ячейки StringGrid по условию


2-1322215244
Aleks
2011-11-25 14:00
2012.03.04
Как определить событие OnClik в динамически созданном объекте Bu


2-1321906467
lars
2011-11-22 00:14
2012.03.04
String Grid Подскажите, пожалуйста, как получить номера выбранных


15-1321034703
Процик
2011-11-11 22:05
2012.03.04
Какие нужны книги?


6-1252927401
Дмитрий Белькевич
2009-09-14 15:23
2012.03.04
Можно ли как-то узнать, какое приложение фильтрует порт?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский