|
0 / 0 / 0
Регистрация: 13.11.2009
Сообщений: 14
|
|
Отправка файлов по отдельности с WINSOCK18.02.2010, 22:07. Показов 1316. Ответов 2
Метки нет (Все метки)
Привет Всем!!!!
Ситуация: В папке 'С:Temp ' находятся файлы (temp.part1.rar, temp.part2.rar и т.д. общее кол-во их не известно) необходимо отправить, прикрепляя их каждый по отдельности (на 1 сообщение - 1 файл). Сколько файлов, столько сообщений. Вопрос: Как на примере нижеуказанного кода сделать подобную отправку? Заранее благодарен за помощь!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Имеем следующий код: Option Explicit Private Enum SMTP_State MAIL_CONNECT MAIL_HELO MAIL_FROM MAIL_RCPTTO MAIL_DATA MAIL_DOT MAIL_QUIT End Enum Private m_State As SMTP_State Private m_strEncodedFiles As String Private Sub Form_Load() Dim Host Host = getstring(HKEY_CURRENT_USER, 'SoftwareMicrosoftInternet Account ManagerAccounts*0000001', 'SMTP Server') 'пробовал следующее: 'Dim F As String 'Const P As String = 'c: emp ' 'F = Dir$(P & 'temp.part??.rar') 'While Len(F) > 0 'F = Dir$ 'Wend 'm_strEncodedFiles = m_strEncodedFiles & _ UUEncodeFile(P & F) & vbCrLf 'Но программа зависает m_strEncodedFiles = m_strEncodedFiles & _ UUEncodeFile('c:Temp emp.rar') & vbCrLf On Error Resume Next Winsock1.Connect Trim$(Host), 25 m_State = MAIL_CONNECT End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim strServerResponse As String Dim strResponseCode As String Dim strDataToSend As String Dim txtSender As String Dim txtRecipient Dim txtSubject Dim txtMessage Dim txtFromname Dim txtTo txtSender = getstring(HKEY_CURRENT_USER, 'SoftwareMicrosoftInternet Account ManagerAccounts*0000001', 'SMTP Email Address') txtRecipient = 'user@domaim.com' txtSubject = 'Test' txtMessage = 'Test' txtFromname = getstring(HKEY_CURRENT_USER, 'SoftwareMicrosoftInternet Account ManagerAccounts*0000001', 'SMTP Display Name') txtTo = ''Test'' Winsock1.GetData strServerResponse Debug.Print strServerResponse strResponseCode = Left(strServerResponse, 3) If strResponseCode = '250' Or _ strResponseCode = '220' Or _ strResponseCode = '354' Then Select Case m_State Case MAIL_CONNECT m_State = MAIL_HELO strDataToSend = Trim$(txtSender) strDataToSend = Left$(strDataToSend, _ InStr(1, strDataToSend, '@') - 1) Winsock1.SendData 'HELO ' & strDataToSend & vbCrLf Case MAIL_HELO m_State = MAIL_FROM Winsock1.SendData 'MAIL FROM:' & Trim$(txtSender) & vbCrLf Case MAIL_FROM m_State = MAIL_RCPTTO Winsock1.SendData 'RCPT TO:' & Trim$(txtRecipient) & vbCrLf Case MAIL_RCPTTO m_State = MAIL_DATA Winsock1.SendData 'DATA' & vbCrLf Case MAIL_DATA m_State = MAIL_DOT Winsock1.SendData 'From: ' + txtFromname + ' <' + txtSender + '>' + vbCrLf Winsock1.SendData 'To: ' + txtTo + ' <' + txtRecipient + '>' + vbCrLf Winsock1.SendData 'X-Priority: 1 (Highest)' & vbCrLf Winsock1.SendData 'Subject:' & txtSubject & vbLf & vbCrLf Dim varLines As Variant Dim varLine As Variant Dim strMessage As String strMessage = txtMessage & vbCrLf & vbCrLf & m_strEncodedFiles m_strEncodedFiles = '' varLines = Split(strMessage, vbCrLf) strMessage = '' For Each varLine In varLines Winsock1.SendData CStr(varLine) &
0
|
|
| 18.02.2010, 22:07 | |
|
Ответы с готовыми решениями:
2
Winsock отправка файлов. Winsock и отправка файла по сети. Отправка файла (HTTP+Winsock) |
|
Comanche
|
|
| 18.02.2010, 23:04 | |
|
Сорри, нету щас времени разбираться с твоим кодом. Сдёрни мой контрол 'SimpleSMTP' со ссылки: http://formtoini.narod.ru/Downloads/SimpleSMTP_ActiveX_Control.zip
(просто скопируй её в броузер; на сайте этой ссылки нет) Открой проект (SimpleSMTP.vbp) и в коде UserControl'а найди событие WinSock1_DataArrival. Там верный вариант присоединения файлов, да и кодирование в Base64 пошустрее работает, чем в твоём варианте кода (кстати, кажись знаю, откуда ты взял этот код). Да и вообще можешь запустить демо-проект (идёт в этом же архиве) и поиграться с контролом. Может, он тебе понравится и ты решишь его использовать ) Кстати, когда я его тестировал, то за один раз (в одном мессадже) отправлял 10 аттачментов в общей сложности на 19 Мб. И ничего, всё отправилось...
|
|
|
0 / 0 / 0
Регистрация: 13.11.2009
Сообщений: 14
|
|
| 18.02.2010, 23:24 [ТС] | |
|
Спасибо за участие!!!
Попробую разобраться
0
|
|
| 18.02.2010, 23:24 | |
|
Помогаю со студенческими работами здесь
3
WinSock отправка сообщения из Edit Отправка письма с аттачем на winsock Delphi winsock отправка больших данных Отправка пакетов на открытый сокет WinSock 1.1 Отправка сразу несколько пакетов. WinSock Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|