Форум программистов, компьютерный форум CyberForum.ru

Нужно отправить данные письмом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Игра "Угадай слова" через массивы! http://www.cyberforum.ru/cpp-beginners/thread703007.html
Получил такое задание! Помогите разобраться! Хотя бы какие то наброски подскажите! Написать игру! Создать массив с 20 словами. В начале игры с помощью случайного генератора чисел выбрать одно. Буквы выводить точками - "." соответственно числу букв в слове после удачного попадания точку заменить на букву ( во всех местах где эта буква ) Буквы вводить без помощи ENTER! За неправильную...
C++ Кто посмотрит как сделать несколько задач?) Задача 1 Заданы числа a,b,c. Удвоить эти числа a>=b>=c и заменить их на абсолютные значения, если это не так. Задача 2 Задано целое число n. Вычислить S=1+1/1!+1/2!+...+1/n! Задача 3 Задано целое положительное число. Определить количество цифр в этом числе и их сумму. Задача 4 Задан массив целых чисел. Увеличить все элементы этого массива начиная с первого положительного элемента в... http://www.cyberforum.ru/cpp-beginners/thread702972.html
C++ Ошибка в коде
#include <fstream> using namespace std; ifstream fin ("input.txt"); ofstream fout ("output.txt"); int x,y,x1,y1,x2,y2,x3,y3,p1,p2,p3; int main() { fin>>x>>y;
C++ Указатель на 2мерный массив в функцию
Добрый день, уважаемые. Столкнулся вот с какой проблемой. Хотелось бы отправлять в функцию указатель на свой 2х мерный массив чтоб после ее отработки массив содержал данные. На сайтах много примеров исполняющих подобное действо, но я так и не смог добиться положительных результатов(( Пришел к выводу что лучше использовать vector < int > > указатель на который можно в функцию послать, но как...
C++ 16ые цифры, поразрядные операции. Максимальное число http://www.cyberforum.ru/cpp-beginners/thread702945.html
Вот мои наработки, помогите из них собрать рабочую версию..#include <vcl.h> #include <stdio.h> #include <conio.h> int str_ch (int n1,int n2); void main() { int n1,n2; printf ( "\n Rabota 8 \n");
C++ Напечатать только те символы, которые встречаются только в одном из слов Даны два слова, напечатать только те символы, которые встречаются только в одном из слов. Например, для слов процессор и информация. Ответом должно быть: пессифмая. Я создал: #include "stdafx.h" #include "clocale" #include "string.h" #include "conio.h" #include "windows.h" void num_of_char(char *word1, char *word2, int len1, int len2, int *count) подробнее

Показать сообщение отдельно
teramik
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 11
03.07.2013, 15:46     Нужно отправить данные письмом
Цитата Сообщение от igorrr37 Посмотреть сообщение
вот вместе с чтением
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <fstream>
#include <time.h>
#include <stdio.h>
#include <windows.h>
#include <winsock.h>
#include <cstring>
#include <cstdio>
#include <conio.h>
#pragma pack(1)
#pragma comment(lib,"Ws2_32.lib")
using namespace std;
 
void Base64Encode(const char* pText, char* pResBuf, std::size_t bufLen)
{
    static union
    {
        char arr[3];
        struct
        {
            unsigned a1 : 6, a2 : 6, a3 : 6, a4 : 6;
        } s;
    };
    static char ini[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"};
    memset(pResBuf, '\0', bufLen);
    int size = std::strlen (pText);
    int i, j, k;
    for(i = 0, k = 0; i < size;)
    {
        arr[0] = arr[1] = arr[2] = '\0';
        for(j = 2; j >= 0 && i < size; --j, ++i)
        {
            arr[j] = pText[i];
        }
        pResBuf[k++] = ini[s.a4];
        pResBuf[k++] = ini[s.a3];
        pResBuf[k++] = (1 > j ? ini[s.a2] : '=');
        pResBuf[k++] = (0 > j ? ini[s.a1] : '=');
    }
    return;
}
 
int main ()
{
    std::ifstream ifs("in.txt", std::ios::binary);
    if(ifs.is_open())
    {
        setlocale(LC_ALL,"Russian");
        SOCKET nSMTPServerSocket;
        struct sockaddr_in smtp_address;
        int nConnect, iMsg = 0, iEnd = 0, rc;
        char sBuf[4096] = {'\0'}, buffer2[512] = {'\0'};
        char hostname[80] = "smtp.yandex.ru"; // почтовый сервер ящика отправителя
        hostent *h = NULL;
        char login[] = "Pomakaron@yandex.ru", password[] = "9814fghtkm"; // имя и пароль ящика отправителя
        char fileContent[512]; // содержимое файла
        size_t index;
        for(index = 0; ifs.get(fileContent[index]); ++index)
        ;
        fileContent[index] = 0;
        std::cout << "file content is:\n" << fileContent << "\n\n";
        char seventhString[1024] =
            "from:<Pomakaron@yandex.ru>\r\n" // ящик отправителя
            "to:<molekula602@mail.ru>\r\n"  // ящик получателя
            "subject: Оценки\r\n"
            "Mime-Version: 1.0\r\n"
            "Content-Type: multipart/mixed; boundary=bound\r\n"
            "\r\n--bound\r\n"
            "Content-type: text/plain; charset=windows-1251\r\n"
            "Content-Transfer-Encoding: quoted-printable\r\n\r\n"
            "Привет Макар!\r\n" //текст письма
            "\r\n--bound\r\n"
            "Content-Type: text/plain; name=file.txt\r\n" // имя файла
            "Content-Transfer-Encoding: base64\r\n"
            "Content-Disposition: attachment\r\n\r\n";
        char seventhStringMiddle[512];
        char seventhStringEnd[] = "\r\n--bound--\r\n.\r\n";
 
        char MailMessage[][1024] =
        {
            "EHLO mail.ru\r\n",
            "AUTH LOGIN\r\n",
            "",
            "",
            "mail from:<Pomakaron@yandex.ru>\r\n", // ящик отправителя
            "rcpt to:<molekula602@mail.ru>\r\n", // ящик получателя
            "data\r\n",
            "",
            "QUIT\r\n"
        };
 
        Base64Encode(login, buffer2, sizeof(buffer2));
        strcpy(MailMessage[2], strcat(buffer2,"\r\n"));
 
        Base64Encode(password, buffer2, sizeof(buffer2));
        strcpy(MailMessage[3], strcat(buffer2,"\r\n"));
 
        Base64Encode(fileContent, seventhStringMiddle, sizeof(seventhStringMiddle));
        strcat(seventhString, strcat(strcat(seventhStringMiddle,"\r\n"), seventhStringEnd));
        strcpy(MailMessage[7], seventhString);
 
        WSADATA WSAData;
        rc = WSAStartup(MAKEWORD(1, 1), &WSAData);
        if(rc) return __LINE__;
        nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);
        if(nSMTPServerSocket != INVALID_SOCKET)
        {
            smtp_address.sin_family = AF_INET;
            h = gethostbyname(hostname);
            if (h == NULL)
            {
                printf("error: Could not resolve ");
                getchar();
                return __LINE__;
            }
            smtp_address.sin_addr.s_addr = inet_addr(inet_ntoa(*(reinterpret_cast<in_addr*>(h->h_addr))));
            smtp_address.sin_port = htons(25);
            nConnect = connect(nSMTPServerSocket, (PSOCKADDR)&smtp_address,
                                                                sizeof(smtp_address));
            if(!nConnect)
            {
                iMsg = iEnd = 0;
                do
                {
                    iEnd = recv(nSMTPServerSocket, sBuf, sizeof(sBuf), 0);
                    sBuf[iEnd] = '\0';
                    printf("Answer: %s", sBuf);
                    printf("Request: %s", MailMessage[iMsg]);
                    send(nSMTPServerSocket, MailMessage[iMsg], strlen(MailMessage[iMsg]), 0);
                    iMsg++;
                } while(iMsg < int(sizeof(MailMessage) / sizeof(*MailMessage)));
                iEnd = recv(nSMTPServerSocket, sBuf, sizeof(sBuf), 0);
                sBuf[iEnd] = '\0';
                printf(sBuf);
            }
            closesocket(nSMTPServerSocket);
        }
        ifs.close();
    }
    else
        std::cerr << "Unable to open input file" << std::endl;
    getchar();
    return 0;
}
А как зделать чтобы оно загружало файл размером более 100 кб
 
Текущее время: 02:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru