Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: Fddd   (23.10.2007 в 22:12)
Спасибо.
Поправьте, так как просто неграмотно по принципу разобрал.
Вот что собственно получилось.
Письмо доходит.


#include <iostream.h>
#include <winsock.h>

#define SMTP_PORT 25 
#define SMTP_ADDR "213.180.204.38" //IP - Яндекс сервиса


int main()
{
SOCKET  servsocket;
WSADATA WSAData;
struct sockaddr_in socketaddr;

/* Инициализация библиотеки Ws2_32.dll */
if(WSAStartup(MAKEWORD(1, 1), &WSAData) != 0) return FALSE;

/* Команды SMPT */
char *MailMessage[] = {};// -Тут массив SMTP команд

/* Открыть Сокет */
servsocket = socket(PF_INET, SOCK_STREAM, 0);
if (servsocket == INVALID_SOCKET) 
{
cout << "Error Create Socket\n";
exit(1);
else {
cout << "OK Create Socket\n";
}


/* Заполняем структуру sockaddr_in */
socketaddr.sin_family      = AF_INET;
socketaddr.sin_addr.s_addr = inet_addr(SMTP_ADDR); 
socketaddr.sin_port        = htons(SMTP_PORT);


/* Соединяемся с хостом */
if (connect(servsocket,(PSOCKADDR)&socketaddr, sizeof(socketaddr))) 
{
cout << "Error Connect\n";
exit(1);
else {
cout << "OK Connect\n";
}



/* ОТПРАВКА КОМАНД SMTP (MailMessage)*/
int iLength;
    int iMsg = 0;
    int iEnd = 0;
    BYTE sBuf[4096];

    do {
iLength = recv(servsocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
iEnd += iLength;
sBuf[iEnd] = '\0';
send(servsocket, (LPSTR)MailMessage[iMsg], strlen(MailMessage[iMsg]), 0);
iMsg++;

    } while(MailMessage[iMsg]);


cout << sBuf << endl;


/* Закрыть Сокет*/
closesocket(servsocket);
/* Деинициализация библиотеки Ws2_32.dll */
WSACleanup();
return 0;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: