Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: 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]
Сообщение:
Прикрепить: