С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/102: Рейтинг темы: голосов - 102, средняя оценка - 4.82
Заблокирован

Отправка электронной почты в VB 6.0

23.04.2012, 20:41. Показов 20351. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Такой вопрос, как реализовать отправку сообщений пользователям используя список получателей. К примеру нашел такой код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim o_Mess As Object, v_Conf As String
Set o_Mess = CreateObject("CDO.Message")
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
With o_Mess
    .To = "КОМУ"
    .From = "ОТ КОГО"
    .Subject = "ТЕМА"
    .TextBody = "ТЕЛО СООБЩЕНИЯ"
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2
    .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
    .Item(v_Conf & "smtpauthenticate") = 1
    .Item(v_Conf & "sendusername") = "E-MAIL"
    .Item(v_Conf & "sendpassword") = "Пароль"
    .Item(v_Conf & "smtpserverport") = 25
    .Item(v_Conf & "smtpusessl") = False
    .Item(v_Conf & "smtpconnectiontimeout") = 60
    .Update
End With
    .send
End With
Если я ставлю в поле .To = "КОМУ" через запятые адреса, программа виснет. То есть отправка сообщений не происходит. Как реализовать подстановку адресов получателей, можно из заранее готового текстового файла, что-то типа APP.Path & "\E-mail.txt" подскажите пожалуйста, в голову что-то вообще не идет мысль....
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.04.2012, 20:41
Ответы с готовыми решениями:

Отправка электронной почты с поддержкой HTML тегов
Всем привет. В прошлой теме мне помогли написать отправку почты со списком адресов из файла. Люди такой вопрос, через какой контрол можно...

Отправка электронной почты
Добрый день. Пытаюсь отправить электронное письмо. После соединения с smtp.list.ru ("94.100.177.4") порт 25 получаю...

Отправка электронной почты
Есть функция, которая отвечает за отправку сообщений. (Если не отправилась - сохраняет файл) Проблема в том, что отправляется только с...

29
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
23.04.2012, 20:54
А что вместо
Цитата Сообщение от inv.DS Посмотреть сообщение
"КОМУ"
переменную использовать не получается?
Даже массив.
Спрашиваю, потому что не пробовал.
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
23.04.2012, 20:59
Может быть, в этом причина?
Цитата Сообщение от ГУГЛ
' Получатели письма указываются через " ; "
objMessage.To = "КОМУ1 ; КОМУ2 ; КОМУ3"
0
23.04.2012, 21:01

Не по теме:

Апострофф, красивые цифры

Миниатюры
Отправка электронной почты в VB 6.0  
0
Заблокирован
23.04.2012, 21:05  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Может быть, в этом причина?
Господи! Я не настолько "НУБ", мне просто не идет в голову как сделать цикл для прокручивания списка E-Mail из загружаемого текстового файла. Даже если он будет временно прочитыватьсяя каждая строчка в переменной типа "s". Как организовать цикл ?
0
Заблокирован
24.04.2012, 07:10  [ТС]
Да подскажите цикл )))) Блин реально тупняк )

Добавлено через 12 минут
Нет вариантов ?

Добавлено через 9 часов 48 минут
ААААААААААААААААААААААААААА НУ ПОМОГИТЕ ! ! ! !
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
24.04.2012, 08:15
Цитата Сообщение от inv.DS Посмотреть сообщение
...ААА НУ ПОМОГИТЕ ! ! ! !
Приложи пример загружаемого файла со списком E-Mail.
0
 Аватар для Kogb
367 / 128 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
24.04.2012, 12:16
Проверил, работает. Два адреса своих подставил через запятую и пробел!
0
Заблокирован
24.04.2012, 14:31  [ТС]
Цитата Сообщение от Kogb Посмотреть сообщение
Проверил, работает. Два адреса своих подставил через запятую и пробел!
Я знаю что она работает с запятыми! К примеру есть текстовый файл с адресами:

proba@mail.ru
proba@yandex.ru
proba@rambler.ru
probaproba@mail.ru
klient@mail.ru

То есть они идут по списку вниз. Теперь данный файл лежит в каталоге с исполняемым файлом программы, к примеру, «отправка почты клиентам.exe», при открытии программы происходит загрузка файла с адресами. Который будет добавлен в массив или куда подскажите, далее будет отправляться сообщения по очереди каждому адресу из списка адресов. То есть отправилось 1 сообщение на адрес идем далее и так до конца. Да еще необходимо отправлять именно по 1 сообщению на 1 адрес, то есть если вы знаете, почтовики не поддерживают длинный список адресов, а всего определенное кол-во, к примеру, 100 адресов точно не помню, после просят сократить список получателей. Вот для этого хочу отправку сделать по каждому адресу.
0
 Аватар для Kogb
367 / 128 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
24.04.2012, 16:37
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Ну, если теперь вопрос звучит так, что не нужно умещать все адреса в поле То, а надо считывать их из файла, при этом поле То содержит только один адрес из файла со списком и сам файл является текстовым, где каждый адрес располагается на новой строке, то код будет такой:
Visual Basic
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
Private Sub Form_Load()
Dim o_Mess As Object, v_Conf As String, email As String
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
Open "c:\emails.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, email
With o_Mess
    .To = email
    .From = "ОТ КОГО"
    .Subject = "ТЕМА"
    .TextBody = "ТЕЛО СООБЩЕНИЯ"
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2
    .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
    .Item(v_Conf & "smtpauthenticate") = 1
    .Item(v_Conf & "sendusername") = "E-MAIL"
    .Item(v_Conf & "sendpassword") = "Пароль"
    .Item(v_Conf & "smtpserverport") = 25
    .Item(v_Conf & "smtpusessl") = False
    .Item(v_Conf & "smtpconnectiontimeout") = 60
    .Update
End With
    .send
End With
Loop
Close #1
Set o_Mess = Nothing
End Sub
ЗЫ. Код лично-провененно-рабочий.
3
Заблокирован
24.04.2012, 19:05  [ТС]
Оверквотинг удален.
Добавлено:
Kogb

Я ПРЕКЛОНЯЮСЬ ПЕРЕД ТОБОЙ О ГУРУ ПРОГРАММИРОВАНИЯ ! О СПАСИБО ТЕБЕ ВЕЛИКИЙ, ЗА ТО, ЧТО ТЫ МЕНЯ НУБА ПРОСВЕТИЛ !

НЕТ ПРАВДА СПАСИБО ! ! ! !
0
 Аватар для Апострофф
9908 / 3923 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
24.04.2012, 19:40
inv.DS, а ещё есть кнопка [+1Спасибо].
Весит она больше, чем UCASE(Дифирамбы)! Тоже кстати наказуемы...
0
3 / 3 / 1
Регистрация: 15.12.2009
Сообщений: 25
17.07.2014, 11:57
Цитата Сообщение от dev.Free Посмотреть сообщение
для прокручивания списка E-Mail из загру
могу помочь вот так сделать
Вложения
Тип файла: zip Universal_sending_mail.zip (3.23 Мб, 135 просмотров)
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
17.07.2014, 23:05
ilimdar, укажите происхождение данного установщика.
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
17.07.2014, 23:42
Тема устарела, 2012 год,
файл не закачивал, можно узнать что это за файл, безвреден ли ?

Добавлено через 5 минут
Дело в том, что недавно я и не только я,
уже выкладывали коды, без всяких файлов

итак, отправка сообщения, пример:

Visual Basic
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
Option Explicit
 
 
Private Sub Form_Load()
    '
    '
    '
    '
 
    Stop
    Dim txt$
    SaveAccountData
    txt = "Это письмо сформировано макросом" & vbNewLine & "без использования внешних программ и подключения дополнительных библиотек"
    If Send_Mail("FelixMacintosh@yandex.ru", "FelixMacintosh@yandex.ru", "проверка отправки почты_2", _
    txt) Then
        MsgBox "Письмо успешно отправлено", vbInformation
    Else
        MsgBox "Не удалось отправить письмо", vbExclamation
    End If
End Sub
 
Sub SaveAccountData() 'запускать один раз - для записи в реестр Windows параметров почтового аккаунта
    SaveSetting App.EXEName, "mail", "smtpserver", "smtp.yandex.ru" 'Ваш SMTPServer
    SaveSetting App.EXEName, "mail", "sendusername", "FelixMacintosh@yandex.ru" 'Ваша учетная запись
    SaveSetting App.EXEName, "mail", "sendpassword", "123" 'Ваш пароль
End Sub
 
Function Send_Mail(ByVal MailTo As String, ByVal MailFrom As String, ByVal MailSubject As String, _
ByVal MailText As String, Optional ByVal MailAttachment As String = "") As Boolean
    'функция для отправки почты без использования внешних почтовых программ
    '----------------------------------------------------------------------
    'в качестве параметров получает:
    'MailTo - адрес получателя письма
    'MailFrom - адрес отправителя письма
    'MailSubject - тема письма
    'MailText - текст письма
    'MailAttachment - полный путь к файлу вложения (необязательный параметр)
    '----------------------------------------------------------------------
    'возвращает TRUE, если отправка почты произошла успешно, и FALSE в обратном случае
    Const cdoConfigURL = "http://schemas.microsoft.com/cdo/configuration/"
    Dim smtpserver$, sendusername$, sendpassword$
    Dim cdoConfig As Object, cdoMessage As Object
    On Error Resume Next: Err.Clear
    smtpserver = GetSetting(App.EXEName, "mail", "smtpserver", "")
    sendusername = GetSetting(App.EXEName, "mail", "sendusername", "")
    sendpassword = GetSetting(App.EXEName, "mail", "sendpassword", "")
    If Len(smtpserver) = 0 Or Len(sendusername) = 0 Or Len(sendpassword) = 0 Then Exit Function
    Set cdoConfig = CreateObject("CDO.Configuration")
    With cdoConfig.Fields
        .Item(cdoConfigURL & "sendusing") = 2
        .Item(cdoConfigURL & "smtpauthenticate") = 1
        .Item(cdoConfigURL & "smtpserver") = smtpserver
        .Item(cdoConfigURL & "sendusername") = sendusername
        .Item(cdoConfigURL & "sendpassword") = sendpassword
        'для отправки почты с аккаунта @gmail.com
        .Item(cdoConfigURL & "smtpserverport") = 465 'порт для SSL: 465
        .Item(cdoConfigURL & "smtpusessl") = 1 'использовать аутентификацию: да
        .Update
    End With
    Set cdoMessage = CreateObject("CDO.Message")
    With cdoMessage
        Set .Configuration = cdoConfig
        .BodyPart.Charset = "koi8-r"
        .From = MailFrom:
        .To = MailTo
        .Subject = MailSubject
        .TextBody = MailText
        If Len(MailAttachment) > 0 Then .AddAttachment MailAttachment
        .Send
    End With
    Set cdoMessage = Nothing: Set cdoConfig = Nothing
    'If Err.Number = -2147220973 Then MsgBox ("Отсутствует связь с интернетом")
    'If Err.Number = -2147220975 Then MsgBox ("SMTP сервер ответил отказом")
    'If Err.Number = 0 Then MsgBox ("Письмо отправлено")
    Send_Mail = Err = 0
End Function
2
3 / 3 / 1
Регистрация: 15.12.2009
Сообщений: 25
18.07.2014, 15:22
вот ссылка к файлу. http://www.ilim.kz/load/progra... -1-0-17532
Файл безвредный. Описание что бы посмотреть пройдите по ссылке
Встроенные библиотеки
COMDLG32.OCX
MSWINSCK.OCX
OWC10.DLL
richtx32.ocx
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
18.07.2014, 17:55
Многообещающий клиент
Цитата Сообщение от автор
в программе есть встроенна база около 3 тысяч рабочих почтовых адресов.
Особенно кнопочка "Бомбить"
Миниатюры
Отправка электронной почты в VB 6.0  
0
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
24.11.2017, 12:31
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim o_Mess As Object, v_Conf As String
Set o_Mess = CreateObject("CDO.Message")
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
With o_Mess
    .To = "КОМУ"
    .From = "ОТ КОГО"
    .Subject = "ТЕМА"
    .TextBody = "ТЕЛО СООБЩЕНИЯ"
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2
    .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
    .Item(v_Conf & "smtpauthenticate") = 1
    .Item(v_Conf & "sendusername") = "E-MAIL"
    .Item(v_Conf & "sendpassword") = "Пароль"
    .Item(v_Conf & "smtpserverport") = 25
    .Item(v_Conf & "smtpusessl") = False
    .Item(v_Conf & "smtpconnectiontimeout") = 60
    .Update
End With
    .send
End With
А как отправить вложение?
Visual Basic
1
.Attachments.Add = "C:\11111111.txt"
Прокатит?

Добавлено через 6 минут
Visual Basic
1
.AddAttachment = "C:\11111111.txt"
Добавлено через 26 минут
Отправка с вложением:

Visual Basic
1
.AddAttachment ("C:\11111111.txt")
1
4 / 4 / 1
Регистрация: 21.10.2016
Сообщений: 91
25.11.2017, 16:21
Цитата Сообщение от Kogb Посмотреть сообщение
Ну, если теперь вопрос звучит так, что не нужно умещать все адреса в поле То, а надо считывать их из файла, при этом поле То содержит только один адрес из файла со списком и сам файл является текстовым, где каждый адрес располагается на новой строке, то код будет такой:
Visual Basic
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
Private Sub Form_Load()
Dim o_Mess As Object, v_Conf As String, email As String
v_Conf = "http://schemas.microsoft.com/cdo/configuration/"
Set o_Mess = CreateObject("CDO.Message")
Open "c:\emails.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, email
With o_Mess
    .To = email
    .From = "ОТ КОГО"
    .Subject = "ТЕМА"
    .TextBody = "ТЕЛО СООБЩЕНИЯ"
With .Configuration.Fields
    .Item(v_Conf & "sendusing") = 2
    .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
    .Item(v_Conf & "smtpauthenticate") = 1
    .Item(v_Conf & "sendusername") = "E-MAIL"
    .Item(v_Conf & "sendpassword") = "Пароль"
    .Item(v_Conf & "smtpserverport") = 25
    .Item(v_Conf & "smtpusessl") = False
    .Item(v_Conf & "smtpconnectiontimeout") = 60
    .Update
End With
    .send
End With
Loop
Close #1
Set o_Mess = Nothing
End Sub
ЗЫ. Код лично-провененно-рабочий.
Все хорошо, но если прикрепить вложение
Visual Basic
1
.AddAttachment ("C:\11111111.txt")
То каждому пользователю будет вкладываться +1 файл, в итоге у 100-го в списке во вложении будет 100 одинаковых файлов. Как этого избежать???
1
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
01.12.2017, 11:54
Коллеги!
Тема стара как мир....
И увы не надежна. В частности:

1. Привязка к внешнему SMTP. в случае с Gmail. работает по настроению Gmail. Отправка с другого IP, как правило сопровождается баном этого IP. в случае с УКР.НЕТ вообще печаль...Кроме того, масса ограничений по отправке в день, в час, месяц и тд и тп..
2. Нет отклика..Отправили...И? Дошло, не дошло...

Никто не пытался искать что то более продвинутое в этом направлении?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2017, 11:54
Помогаю со студенческими работами здесь

Отправка электронной почты с ПК с русскоязычным именем
Здравствуйте! При отправки почты столкнулся с проблемой, что .net framework ниже 4 версии работает некорректно с русским именем компьютера....

Отправка электронной почты с помощью JavaScript
Помогите, как отправить электронную почту с помощью JavaScript.

Отправка скрытно сообщения электронной почты
Нашёл код в сети для скрытной отправки сообщения электронной почты, но выскакивает ошибка 10600 (в прикреплённом файле). Где ошибка??? ...

Отправка электронной почты с шифрованием Https
Доброго дня, подскажите, пожалуйста, как отправить сообщение на электронную почту (сервер отправителя yandex.ru) если они перешли на...

Отправка из приложения сообщений электронной почты с вложением
Здравствуйте. Хотелось бы спросить, как можно реализовать отправку сообщений электронной почты прямо из приложения. Ну что-то типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru