Valery V shmeleff Moscow / Russia icon

Valery V shmeleff Moscow / Russia



НазваниеValery V shmeleff Moscow / Russia
Дата конвертации09.07.2012
Размер74.28 Kb.
ТипДокументы
1. /VB_mail.doc
2. /Windows-Script-Components.doc
3. /about-mail.txt
4. /asp-example-mail.txt
5. /asp-mail.txt
6. /cdo-mail.txt
7. /cdo-send-message.txt
8. /delphi-mail.txt
9. /js-mail.txt
10. /js2-mail.txt
11. /mail-programming.txt
12. /mapi-vba-mail.txt
13. /script-mail.txt
14. /vb-mail.txt
15. /vbs-mail.txt
16. /vbscript.txt
Valery V shmeleff Moscow / Russia
А. Л. kochurov@narod ru

Valery V Shmeleff Moscow / Russia www.oflameron.ru www.oflameron.com






Пишем программу для почтовых рассылок на Visual Basic


Почтовые программы могут использовать различные механизмы отправки почты и получения почты (POP3, SMTP, IMAP). Некоторая документация – «Общие принципы работы почтового сервера», «…программа, принимающая почту с сервера…». Однако, есть другой способ отправки почты (т.к. программа пишется для почтовой рассылки).

Для выполнения почтовой рассылки желательно следующее – простота программы, возможность работы с любого компьютера, имеющего настроенную почту, возможность работы с фалами-архивами адресов и писем. Для программистов рекламных технологий может представлять интерес возможность интеграции кода с кодом других программистов.


CDO - Collaboration Data Object


Collaboration Data Objects (CDO), представляет набор объектов, обеспечивающих передачу данных средствами Microsoft Windows 2000 (Cdosys.dll). Имеется ввиду версия 2.0 спецификации CDO API, которая входит в Component Object Model (COM). Основной целью CDO является упрощение программирования почтовых возможностей, создание и управление сообщениями Internet.
Windows 2000 CDO добавляет Вам новые классы COM, которые Вы можете использовать в прикладных программах, написанных на языках, поддерживающих COM и Automation, такие, как Microsoft Visual Basic, Microsoft Visual C++, Microsoft Visual J++, или языки создания сценария типа Visual Basic Scripting Edition. Вы получаете инструмент для создания клиентских или серверных приложений, которые будут иметь возможность создания, форматирования и управления сообщениями Internet, например, стандарта Multipurpose Internet Mail Extensions (MIME). Также, CDO поддерживает сообщения протоколов
SMTP и NNTP, RFC 822 Message Format и UUENCODE Attachment Format. Модель объектов CDO основана на этих форматах, и обеспечивает объектно-ориентированную среду разработки для каждого формата. С помощью CDO Вы легко сможете, как отформатировать полученное сообщение, так и преобразовать его в другую форму, записать его в поток или сохранить в файл.


  • Массовые рассылки. Создание шаблонов сообщений.

  • Репликации, основанные на почтовых сообщениях.

  • Проверка на наличие вирусов в почтовых сообщениях и новостя.

  • Отправка Web - страниц, включая ссылки и графику по запросам пользователей.

  • Автоматическая пересылка входящей почты.


Информация с сайта Микрософт - http://support.microsoft.com/kb/286431/EN-US/ - This article describes how to send HTML formatted mail using CDO for Windows 2000 (CDOSYS) or CDO for Exchange 2000 (CDOEX) using a remote computer's SMTP service.


К документу приложено много примеров скриптов для отправки почты с использованием CDO. Чтобы найти больше примеров, задайте в Яндексе строку для поиска CreateObject CDO.Message


Вариант отправки почты через WSC (Windows Script Components) приведен в документе Windows-Script-Components.doc


Программа на Visual Basic


  1. Напишем процедуру чтения списка email адресов из текстового файла.



Создадим форму и разместим на ней 4 метки Label1 – Label4





Создадим текстовый файл с списком email адресов. Каждый адрес на новой строке. Файл разместим по адресу d:/email.txt (просто для удобства отладки).


Напишем простейший код чтения файла и вывода на экран в Label1 – Label4


Dim ns As String

Private Sub Form_Load()

Open "d:/email.txt" For Input As #1

Line Input #1, ns ‘Читать одну строку файла в переменную NS

Label1.Caption = ns

Line Input #1, ns

Label2.Caption = ns

Line Input #1, ns

Label3.Caption = ns

Line Input #1, ns

Label4.Caption = ns


Close #1


End Sub


Результат работы программы





Напишем цикл чтения текстового файла без ограничения его длины:


Dim ns As String

Private Sub Form_Load()

Open "d:/email.txt" For Input As #1

Do While Not EOF(1) ‘Читать все строки файла

Line Input #1, ns

Label1.Caption = ns

Loop

Close #1


End Sub


При работе такого варианта в Label1 должны быть записаны поочередно все значения из списка адресов email (реально там Вы увидите только последний). Будьте внимательны, в Вашем файле email.txt последняя строка может быть пустой (просто поставлен возврат строки). Тогда Label1 будет пустой.


Теперь введем в программу на VB текст скрипта


Private Sub Script_Write()

Str1(0) = "Dim iMsg"

Str1(1) = "Set iMsg = CreateObject(" + Chr$(34) + "CDO.Message" + Chr$(34) + ")"

Str1(2) = "With iMsg"

Str1(3) = ".To = " + Chr$(34) + "admin@mail.ru" + Chr$(34) + ""

Str1(4) = ".Subject = " + Chr$(34) + "A short message" + Chr$(34) + ""

Str1(5) = ".TextBody = " + Chr$(34) + "Text of this short message." + Chr$(34) + ""

Str1(6) = ".AddAttachment " + Chr$(34) + "a:\ln.doc" + Chr$(34) + ""

Str1(7) = ".Send"

Str1(8) = "End With"


indx = 1

For i = 0 To 8

Str1(i) = Str1(i) + Chr$(13) + Chr$(10)

Open "d:/cdo_mail.vbs" For Binary As #1 Len = Len(Str1(i))

Put #1, indx, Str1(i)

indx = indx + Len(Str1(i))

Close #1

Next i


End Sub


Где в массив строк Str1() записан текст VBS – скрипта. В принципе, Вы можете вписать туда любые другие скрипты – Java-script или Windows-script для отправки почты. Текст скрипта:


Dim iMsg

Set iMsg = CreateObject("CDO.Message")

With iMsg

.To = "admin@mail.ru"

.Subject = "A short message"

.TextBody = "Text of this short message."

.AddAttachment "a:\ln.doc"

.Send

End With


В программе на VB выглядит следующим образом:


Str1(0) = "Dim iMsg"

Str1(1) = "Set iMsg = CreateObject(" + Chr$(34) + "CDO.Message" + Chr$(34) + ")"

Str1(2) = "With iMsg"

Str1(3) = ".To = " + Chr$(34) + "admin@mail.ru" + Chr$(34) + ""

Str1(4) = ".Subject = " + Chr$(34) + "A short message" + Chr$(34) + ""

Str1(5) = ".TextBody = " + Chr$(34) + "Text of this short message." + Chr$(34) + ""

Str1(6) = ".AddAttachment " + Chr$(34) + "a:\ln.doc" + Chr$(34) + ""

Str1(7) = ".Send"

Str1(8) = "End With"


Ничего особенно сложного нет. Единственная сложность – «лишние» кавычки. Их заменяем на подстановку ASCII-кода кавычек - " + Chr$(34) + "


ASCII-коды можно посмотреть на http://www.lookuptables.com/





По нажатию кнопки |Write VBS| происходит запись скрипта в файл d:/cdo_mail.vbs


В строке программы на VB


Str1(3) = ".To = " + Chr$(34) + "admin@mail.ru" + Chr$(34) + ""


Задается адрес получателя письма. Т.е. создав цикл с заменой адреса через обычную строковую переменную, Вы получите программу для генерации скриптов для почтовой рассылки.


  1. Процедура для записи скрипта


Проще простого


Private Sub Command1_Click()

Script_Write 'Записать файл почтового скрипта

End Sub


  1. Запуск почтового скрипта – отправка почты



Добавим в VB программу еще одну строку – для запуска скрипта на выполнение – отправку почты. Скрипт запускаем через BAT – файл, в котором только строка cdo_mail.vbs


Shell ("d:/email.bat")


Полный VB проект смотрите в файле vbp1.zip


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


Удобство такого варианта работы с почтовой рассылкой в том, что:

- на основании этого руководства Вы можете легко создать почтовую программу с минимальным количеством настроек и с таким объемом сервиса, который Вам нужен (а не тот, который Вам навязывают сторонние разработчики)

- Вы можете выложить свою программу для скачивания на сайте или в архивах программного обеспечения

- Вы можете производить почтовую отправку с компьютеров, на которых установлена почта, но Вы не имеете собственного аккаунта


Гибкость


Есть еще один существенный момент – Вы можете текст скрипта не размещать «жестко» в программе, а считывать его из текстового файла, заменять в нем адреса, заголовок письма и текст письма на свой и отправлять. В этом случае Ваша программа будет крайне легко приспосабливаться к новым сервисам следующих поколений OS Windows. Вам достаточно будет только корректировать текст скрипта, а программа при этом будет неизменной.


Особенности VB для Windows 2000 и XP


Раньше для распространения программ на Visual Basic нужно было прикладывать громадную динамическую библиотеку. Начиная с Windows 2000 этого делать не надо. Обработка необходимых вызовов изначально включена в состав Windows 2000 и Windows XP. Т.е. Ваши программы на VB стали такими же компактными и эффективными как, например, на Delphi.


В следующем руководстве будет опубликован процесс разработки программы для сбора почтовых email-адресов. Планируется вторая часть руководства по разработке VB программ для web promotion (продвижения вебсайтов).


Чтобы получать информацию о выходе новой документации рекомендуется оформить подписку на рассылку на странице http://freeproject.narod.ru


ee@oflameron.ru


Безусловно, в этом руководстве и в таком варианте рассылки почты можно найти множество недостатков. Но посмотрите сами на Yandex.ru – тема разработки почтовых сервисов на CDO востребована.


На сайте http://web-tekila.narod.ru (продолжение – на http://users5.nofeehost.com/nappel ) выложено нетривиальное руководство по раскрутке web-сайтов. Один из пунктов в этом руководстве - настоящая почтовая программа на Visual Basic. Выложены все листинги, есть описание.


Лицензионное соглашение


Автор выложил этот документ для свободного распространения. Вы можете использовать руководство совершенно бесплатно. Некоторые из моих руководств предлагаются к продаже в Интернете.


http://www.digiseller.net/info.php?idd=47980


http://exaccess.org.ru/info.php?idd=47980


http://www.platno.info/info.php?idd=47980


и так далее – сеть зеркал Интернет-магазина, продающего руководство по раскрутке web-сайтов. Подход пиратский, но предъявлять претензии не планирую, т.к. этот же документ все желающие могут получить совершенно бесплатно.


Другие курсовые работы и руководства:


http://card.oflameron.ru/ - бесплатные настольные игры. Карточные игры - описание и материалы для скачивания.

http://www.oflameron.ru/ee/ - бесплатные игры на листочке бумаги. Описание и материалы для скачивания

http://unicode.shmeleff.com/ - бесплатная курсовая работа по программированию на Visual Basic

http://gallery.shmeleff.com/ - галерея вязаной одежды для кукол Барби

http://freeweb.shmeleff.com/ - каталог бесплатных шаблонов веб сайтов

http://webpage.shmeleff.com/ - бесплатные готовые веб сайты (с контентом)

http://language.oflameron.com/ - каталог программ для изучения английского языка

http://music.shmeleff.com/ - коллекция каталогов бесплатной музыки в формате MP3

http://webdoc.shmeleff.com/ - коллекция бесплатных курсовых работ

http://gamebuilder.narod.ru – генератор настольных игр

http://builder.oflameron.ru – листинг генератора игр на Visual Basic

http://vbcomponent.narod.ru/ - как из программы на VB вызывать функции редактора Word



Похожие:

Valery V shmeleff Moscow / Russia iconНастольная игра "Oflameron" © by Valery V shmeleff
Настольная игра “Oflameron” © by Valery V shmeleff
Valery V shmeleff Moscow / Russia iconНастольная игра "Oflameron" © by Valery V shmeleff
Настольная игра “Oflameron” © by Valery V shmeleff
Valery V shmeleff Moscow / Russia iconНастольная игра "Oflameron" © by Valery V shmeleff
Настольная игра “Oflameron” © by Valery V shmeleff
Valery V shmeleff Moscow / Russia iconНастольная игра "Oflameron" © by Valery V shmeleff
Настольная игра “Oflameron” © by Valery V shmeleff
Valery V shmeleff Moscow / Russia iconFree board game "Oflameron" © by Valery V shmeleff

Valery V shmeleff Moscow / Russia iconFree board game "Oflameron" © by Valery V shmeleff

Valery V shmeleff Moscow / Russia iconFree board game "Oflameron" © by Valery V shmeleff

Valery V shmeleff Moscow / Russia iconFree board game "Oflameron" © by Valery V shmeleff

Valery V shmeleff Moscow / Russia iconAddress: Moscow, Russia

Valery V shmeleff Moscow / Russia iconAddress: Moscow, Russia

Valery V shmeleff Moscow / Russia iconAlexandr Podossinov, Moscow Classical education in Russia today

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы