A
Alex_Bamuner
Всем привет.
Стоит задача - отправить письмо по электронной почте из приложения, написанного на VC++. Написал я следующее:
#define SMTP_PORT 25 //порт почтового сервера
#define SMTP_ADDR "..........." //Айпишник почтового сервера - я пытался на yandex
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:<",
"RCPT TO:<vasya@pupkin.ru>\r\n",
"DATA\r\n",
"",
"QUIT\r\n",
NULL
};
lstrcat(MailMessage[1], "vasja@pupkin.ru>\r\n");
lstrcat(MailMessage[4],"Hello world\r\n\r\n.\r\n");
nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);
if(nSMTPServerSocket != INVALID_SOCKET) {
smtp_address.sin_family = AF_INET;
smtp_address.sin_addr.s_addr = inet_addr(SMTP_ADDR);
smtp_address.sin_port = htons(SMTP_PORT);
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);
}
Требуется авторизация - это ответ с сервера. Я почитал о протоколе - там черт ногу сломит, особенно когда я добрался до 64-coding. Тут я решил уже обратиться за помощью сюда... Благодарю за любые советы и комментарии.
С уважением,
Александр.
Стоит задача - отправить письмо по электронной почте из приложения, написанного на VC++. Написал я следующее:
#define SMTP_PORT 25 //порт почтового сервера
#define SMTP_ADDR "..........." //Айпишник почтового сервера - я пытался на yandex
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:<",
"RCPT TO:<vasya@pupkin.ru>\r\n",
"DATA\r\n",
"",
"QUIT\r\n",
NULL
};
lstrcat(MailMessage[1], "vasja@pupkin.ru>\r\n");
lstrcat(MailMessage[4],"Hello world\r\n\r\n.\r\n");
nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);
if(nSMTPServerSocket != INVALID_SOCKET) {
smtp_address.sin_family = AF_INET;
smtp_address.sin_addr.s_addr = inet_addr(SMTP_ADDR);
smtp_address.sin_port = htons(SMTP_PORT);
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);
}
Требуется авторизация - это ответ с сервера. Я почитал о протоколе - там черт ногу сломит, особенно когда я добрался до 64-coding. Тут я решил уже обратиться за помощью сюда... Благодарю за любые советы и комментарии.
С уважением,
Александр.