Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массовая рассылка писем 
V
    Опции темы
mihanik
Дата 12.12.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Данный скрипт можно использовать для массовой рассылки писем по нескольким адресам 

Код

'Скрипт, осуществляющий массовую рассылку электронной почты
'Список рассылки берётся из текстового файла email.txt
'Текст письма берётся из файла text.htm
'Пишется лог событий в файл mailer.log 

Option Explicit

Const ForAppending = 8

Dim HTMLBody
Dim Emails
Dim I

    AppendToFile ".\mailer.log", "Start at " & CStr(Now)
    
    If MyFileExist ("text.htm") Then
        AppendToFile ".\mailer.log", "Считываем текст письма."
        HTMLBody = TextFromFile ("text.htm")        
    Else
        AppendToFile ".\mailer.log", "Файла с текстом письма не обнаружено!" & vbCrLf & "Finish at " & CStr(Now)
    End If

    If MyFileExist ("email.txt") Then
        AppendToFile ".\mailer.log", "Считываем e-mail адреса."
        Emails = Split (TextFromFile ("email.txt"), vbCrLf)
    Else
        AppendToFile ".\mailer.log", "Файла с адресами не обнаружено!" & vbCrLf & "Finish at " & CStr(Now)
    End If

    AppendToFile ".\mailer.log", "Начинаем отправку писем."

    For I = 0 To UBound (Emails) - 1
    
        AppendToFile ".\mailer.log", "Письмо №-" & (I + 1) & " для '" & Emails(I) & "'"
        AppendToFile ".\mailer.log", "Результат отправки: " & SendEMail  ("[email protected]", "login",   "password", "smtp.provider.ru", Emails(I), HTMLBody)
    
    Next

    AppendToFile ".\mailer.log", "Finish at " & CStr(Now) & vbCrLf

WScript.Quit
 
'********************************************************************
'*
'*  Функция   : SendEMail
'*  Описание  : Функция отправляет письмо по указанному адресу
'*  Вход      : 
'*            strFrom - e-mail отправителя
'*            strLogin - логин на smtp-сервер
'*            strPass - пароль на smtp-сервер
'*            SMTPServer - smtp-сервер
'*            strTo - e-mail адресата
'*            strTextbody - текст письма
'*  Выход     : 0 - ошибок при отправке не произошло
'*                номер ошибки + расшифровка при ошибке отправки
'*
'********************************************************************

Function SendEMail ( byval strFrom, byval strLogin, byval strPass, byval SMTPServer, byval strTo, byval strTextbody)

Dim intSMTPPort, bSMTPUseSSL, intUseAuth, objEmail

intSMTPPort = 25        '    Порт SMTP Сервера
bSMTPUseSSL = False        '    При соединении с SMTP через SSL, необходимо изменить значение на True
intUseAuth = 1            '    Если SMTP-аутентификация не требуется, можно установить значение 0. Для NTLM аутентификации -  значение  2
 
On Error Resume Next

    Err.Clear

    Set objEmail = CreateObject("CDO.Message")
    
        objEmail.From = strFrom
        objEmail.To = strTo
        objEmail.Subject = "Robot's report."
         
        objEmail.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        objEmail.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
        objEmail.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = intUseAuth
        objEMail.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = bSMTPUseSSL
        objEmail.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = intSMTPPort
        objEmail.Configuration.Fields.Item _
            ("http://schemas.microsoft.com/cdo/configuration/sendusername") = strLogin
        objEmail.Configuration.Fields.Item _ 
            ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strPass
        
        objEmail.HTMLBody = strTextbody
        objEmail.Configuration.Fields.Update
        objEmail.Send
    
    Set objEmail = Nothing
    
    If Err.Number Then
        SendEMail = Err.Number & " - " & Err.Description
    Else 
        SendEMail = 0
    End If
    
    On Error Goto 0

End Function

'********************************************************************
'*
'*  Процедура   : AppendToFile
'*  Описание    : Дописывает в файл текстовую информацию
'*  Вход        : strFileName - имя файла, в который нужно дописать информацию
'*                strString   - дописываемая информация
'*
'********************************************************************
Sub AppendToFile(ByVal strFileName, ByVal strString)

Dim fso, f

    Err.Clear
    On Error Resume Next

    Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.OpenTextFile(strFileName, ForAppending, True)
            f.WriteLine strString
            f.Close
        Set f = Nothing
    Set fso = Nothing
    
End Sub

'********************************************************************
'*
'*  Функция   : MyFileExist
'*  Описание  : Функция проверки существования файла
'*  Вход      : Имя файла
'*  Выход     : true, если файл существует, и false, если файл отсутствует.
'*
'********************************************************************
Function MyFileExist (ByVal FileName)
dim fso

    Err.Clear
    On Error Resume Next
    
   Set fso = WScript.CreateObject("Scripting.FileSystemObject")

        MyFileExist = (fso.FileExists(FileName)) 
    
    Set fso = Nothing
    
end Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'#
'# Процедура TextFromFile
'# Описание: Возвращает текст из текстового файла
'# Вход    : полное имя к текстовому файлу
'# Выход   : нет
'#
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function TextFromFile (byval strFileName)

Const ForReading = 1

Dim objFSO, objTextFile

    Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objTextFile = objFSO.OpenTextFile ( strFileName, ForReading)
        
            TextFromFile = objTextFile.ReadAll
        
        Set objTextFile = Nothing
    Set objFSO = Nothing

End Function



Подробней тут - http://wiki.mihanik.net/index.php/%D0%9C%D...%81%D0%B5%D0%BC



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0590 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.