Вот взял пример отправки, не пойму где взять IP-адрес сервера, через который пойдёт мое письмо? И еще вопрос в коментах. Подскажите если не трудно плиз.
| Код | void SendMail(void) { int rc; WSADATA WSAData;
rc = WSAStartup(MAKEWORD(1, 1), &WSAData); if(rc != 0) return ;
SOCKET nSMTPServerSocket; struct sockaddr_in smtp_address; int nConnect; int iLength; int iMsg = 0; int iEnd = 0; BYTE sBuf[4096];
char *MailMessage[] = { "HELO domain.ru\r\n", // << --- ПОЯСНИТЕ ПОЖАЛУЙСТА ЭТУ СТРОКУ
"MAIL FROM:<vasya_pupkin@cool_mail.ru>\r\n", // адрес отправителя "RCPT TO:<[email protected]>\r\n", // МОЙ АДРЕС "DATA\r\n", "мое сообщение\r\n\r\n.\r\n", // тело сообщения "QUIT\r\n", NULL };
nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);
if(nSMTPServerSocket != INVALID_SOCKET) { smtp_address.sin_family = AF_INET;
// далее вносим в структуру IP-адрес сервера, через который пойдёт письмо smtp_address.sin_addr.s_addr = inet_addr(" ?. ?. ?. ? "); //КАК ПОЛУЧИТЬ IP-адрес сервера, через который пойдёт мое письмо?
smtp_address.sin_port = htons(25);
nConnect = connect(nSMTPServerSocket, (PSOCKADDR)&smtp_address, sizeof(smtp_address));
if(nConnect) { } else { do { iLength = recv(nSMTPServerSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0); iEnd += iLength; sBuf[iEnd] = '\0'; send(nSMTPServerSocket, (LPSTR)MailMessage[iMsg], strlen(MailMessage[iMsg]), 0); iMsg++; } while(MailMessage[iMsg]); }
closesocket(nSMTPServerSocket); }
}
|
|