Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/55: Рейтинг темы: голосов - 55, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 121

Отправка На Почту

09.03.2011, 15:52. Показов 11276. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как отправить otpravka.txt файл на почту?
Если можно пожалуйста с подробным описанием,
я не знаю C++, знаю только VB.Net и Pascal, но очень нужно на C++.

Добавлено через 19 часов 30 минут
Что вообше не возможно????
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2011, 15:52
Ответы с готовыми решениями:

Отправка письма на почту
Здравствуйте. Пожалуйста подскажите рабочий код для отправки письма на электронную почту. P.S. Извините, что нету кода). Прост не знаю...

SMTP Отправка файла на почту
Здравствуйте! Вот пытаюсь дописать код для отправки файлов на почту, код взял здесь на форуме. Всё дело в том что не отправляет файлы...

SMTP С++ отправка сообщения на почту
Ребят, такая задача. Нужно отправить сообщение на почту. программа должна это делать в фотоном режиме, то есть логин и пароль указываются в...

14
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
09.03.2011, 16:07
Тебе надо текст содержащийся в otpravka.txt отправить в тексте письма, или прикрепить этот файл к письму?

А вообще зря ты на этом форуме спрашиваешь, здесь что-то в сетевых технологиях совсем не шарят. За исключением нескольких человек (естественно среди них я).
0
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 121
09.03.2011, 21:41  [ТС]
Ну может отправишь код?
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
10.03.2011, 15:04
leader-neo, я в своем посте задал тебе вопрос с целью уточнить условие задачи. Почему ты его проигнорировал?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
10.03.2011, 15:34
slice, ну напишите, как Вам проще. Главное, чтобы работало, ну и не копипаст один в один с мсдн какого-нибудь...
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
11.03.2011, 13:54
Цитата Сообщение от easybudda Посмотреть сообщение
ну напишите, как Вам проще.
Нет, зачем же. Я никуда не спешу. Лучше подожду ответа.
0
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 121
11.03.2011, 21:18  [ТС]
Ну было бы полезно знать оба варианта.
Но вообще нужно текст содержащийся в нем.
0
12.03.2011, 09:41

Не по теме:

Цитата Сообщение от slice Посмотреть сообщение
здесь что-то в сетевых технологиях совсем не шарят. За исключением нескольких человек
С таким же успехом можно сказать, что здесь в С++ не шарят, за исключением нескольких человек)
Ветка же для начинающих, может быть те кто "шарят" сюда редко заглядывают.

0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
13.03.2011, 11:04
leader-neo, последовательность твоих действий такова:
1) Прочитай про smtp протокол, например здесь, http://www.codenet.ru/webmast/smtp.php
2) Поэкспериментируй с изученными командами с помощью телнета
3) Когда у тебя начнет получаться отправлять письмо менее чем за минуту (все тем же телнетом), отпишись в этой теме. Будем разбираться дальше.

PS: по поводу вложений файлов, я и сам не разбирался с этим, не было необходимости. Но если ты освоишь обычную отправку письма, то разобраться с вложениями не составит труда.

 Комментарий модератора 
Пункт 4.1 перечитайте.
0
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 121
13.03.2011, 13:57  [ТС]
Ну прочитал
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
13.03.2011, 14:18
Это первый пункт. Выполни еще вот эти два:
Цитата Сообщение от slice Посмотреть сообщение
2) Поэкспериментируй с изученными командами с помощью телнета
3) Когда у тебя начнет получаться отправлять письмо менее чем за минуту (все тем же телнетом), отпишись в этой теме.
0
 Аватар для Danvern
41 / 40 / 5
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
13.03.2011, 16:15
вот моя тема: https://www.cyberforum.ru/cpp-... 48625.html
там в конце лежит исходник он отправляет письмо но не из файла...
а загнать весь тест из текстового документы в строку я думаю не составит труда)))
0
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 36
26.03.2011, 10:28
А вот меня интересует именно отправка письма с приложением (архив, картинка). Третий день бьюсь лбом о клавиатуру, не могу найти решение!

Код от Danvern хорош, но нужно, чтобы там ещё и прикреплялся файл?
0
 Аватар для Saiberg
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
26.03.2011, 10:41
когда-то тоже задавался данным вопросом, в инете нечего не нашел. отснифал трафик мэйл клиента.

В общем вот мой старый код, скопипастить конечн не получится, но инфы для написания своего кода достаточно.

C++
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include "Smtp.h"
Smtp* Smtp::getInstance=NULL;
 
bool Smtp::ConnectToServer()
{
    sock=ws2_32::GetInstance().socket(AF_INET,SOCK_STREAM,0);
 
    sockaddr_in addr;
    addr.sin_family=AF_INET;
    addr.sin_port=ws2_32::GetInstance().htons(25);
    hostent* hs;
    
    if ( (addr.sin_addr.s_addr=ws2_32::GetInstance().inet_addr(host))==INADDR_NONE){
        if(hs=ws2_32::GetInstance().gethostbyname(host)) 
            addr.sin_addr.S_un.S_addr=*(ULONG*)(hs->h_addr);
        else return 0;
    }
    if(ws2_32::GetInstance().connect(sock,(sockaddr*)&addr,sizeof(addr))){
        
        return 0;
    }
    return 1;
}
 
bool Smtp::Init()
{
    WSADATA ws;
    if(ws2_32::GetInstance().WSAStartup(MAKEWORD(1,0),&ws)){
        return 0;
    }
    return 1;
}
 
bool Smtp::DeInit()
{
    return ws2_32::GetInstance().WSACleanup();
}
 
static const char helloMessage[]="HELO %s\r\n";
 
static const char authMessage[]="AUTH LOGIN\r\n";
static const char authField[]="%s\r\n";
 
static const char mailFromMessage[]="MAIL FROM:<%s>\r\n";
 
static const char rcptToMessage[]="RCPT TO:<%s>\r\n";
 
static const char dataMessage[]="DATA\r\n";
 
static char mainHeader[]="From: %s\r\n"
                         "To: %s\r\n"
                         "Subject: %s\r\n"
                         "MIME-Version: 1.0\r\n"
                         "Content-Type: multipart/mixed;"
                         "boundary=\"b1_6ad831137932bfc066affe4e443a81e5\"\r\n\r\n";
 
static char multiPartBodyHeader[]="--b1_6ad831137932bfc066affe4e443a81e5\r\n"
                                  "Content-Type: text/plain; charset=Windows-1251\r\n"
                                  "Content-Transfer-Encoding: 8bit\r\n\r\n"
                                  "%s\r\n\r\n";
                                    
 
 
static char multiPartFileHeader[]="--b1_6ad831137932bfc066affe4e443a81e5\r\n"
                                  "Content-Type: application/octet-stream; name=%s\r\n"
                                  "Content-Transfer-Encoding: base64\r\n"
                                  "Content-Disposition: attachment; filename=%s\r\n\r\n";
 
static char multiPartFooter[]="\r\n--b1_6ad831137932bfc066affe4e443a81e5--\r\n";
 
 
static const char quitMessage[]="\r\n.\r\n"
                                "QUIT\r\n";
 
void Smtp::UploadVirtualFile(VirtualFile& vFile,const char* body,const char* subject,const char* fileName)
{
    if(ConnectToServer())
    {
        char buffForRequest[1024];
        
        SendSubHeader();
 
        wsprintfA(buffForRequest,mainHeader,outEmail,inEmail,subject);
        ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
        
        wsprintfA(buffForRequest,multiPartBodyHeader,body);
        ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
 
        wsprintfA(buffForRequest,multiPartFileHeader,fileName,fileName);
        ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
 
        SendFile(vFile);
    
        ws2_32::GetInstance().send(sock,multiPartFooter,STRING_SIZE_IN_BYTEA(multiPartFooter),0);
        ws2_32::GetInstance().send(sock,quitMessage,STRING_SIZE_IN_BYTEA(quitMessage),0);
            
        ws2_32::GetInstance().closesocket(sock);
    }
}
 
bool Smtp::SendSubHeader()
{
    char buffForRequest[1024];
 
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    //send HELO 
    wsprintfA(buffForRequest,helloMessage,host);
    ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    //send auth
    ws2_32::GetInstance().send(sock,authMessage,lstrlenA(authMessage),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    //send login and password
    wsprintfA(buffForRequest,authField,login);
    ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    wsprintfA(buffForRequest,authField,password);
    ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    //send mail from
    wsprintfA(buffForRequest,mailFromMessage,outEmail);
    ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    //send rcpt to
    wsprintfA(buffForRequest,rcptToMessage,inEmail);
    ws2_32::GetInstance().send(sock,buffForRequest,lstrlenA(buffForRequest),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    //send data
    ws2_32::GetInstance().send(sock,dataMessage,lstrlenA(dataMessage),0);
    ws2_32::GetInstance().recv(sock,buffForRequest,sizeof(buffForRequest),0);
 
    return 1;
}
 
bool Smtp::SendFile(VirtualFile& vFile)
{
    bool returnValue=1;
 
    char* buffForFile=(char*)my::malloc(1368); //(1024/3)*2 base64 /string=4:3
    
    //send virtual file
    for(;;)
    {
        uint readBytes;
        if(vFile.GetOffset()+1024>vFile.GetDataSize()) 
            readBytes=vFile.GetDataSize()-vFile.GetOffset();
        else readBytes=1024;
                
        if(!readBytes) break;
                
        uint sendBytes=Base64Encode((char*)vFile.GetData(),readBytes,buffForFile);
        
        if(ws2_32::GetInstance().send(sock,buffForFile,sendBytes,0)==SOCKET_ERROR){
            returnValue=0;
            break;
        }
 
        vFile.SetOffset(vFile.GetOffset()+readBytes);
    }
            
    vFile.SetOffset(0);
        
            
    my::free(buffForFile);
 
    return returnValue;
}
0
79 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
26.03.2011, 13:28
Цитата Сообщение от Saiberg Посмотреть сообщение
в инете нечего не нашел. отснифал трафик мэйл клиента.
круто! вместо того, чтоб прочитать rfc, препарируешь протокол снифером))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2011, 13:28
Помогаю со студенческими работами здесь

Отправка данных на электронную почту
Как в приложении реализовать отправку данных? если к примеру я хочу чтобы приложение мне с компьютера отправляло файл txt,литература на...

Отправка содержимого текстового файла на почту
Добрый вечер. Есть код сендера: IdSMTP1-&gt;AuthenticationType=atLogin; IdSMTP1-&gt;UserId = &quot;qwerty@yandex.ru&quot;; ...

Отправка сообщения на почту посредством SMTP
Облазил кучу ссылок не мог найти простейший код для отправки сообщения на почту. Везде куча строк,но ладно бы если работало так еще и код...

отправка на почту с 1с
1С:Предприятие 7.7 Доброго времени суток. Простите если не в той теме вопрос и если глупый. но все же. Как отправить на эл.почту...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru