Отправка почты с помощью С++ (например в MFC)
Можете выложить исходники? У меня есть функция отправки на мыльник,
но почему-то она не пашет!
Делал так: в Visual C++ создавал проект MFC, ставил в Advanced
Features галочку Windows Sockets.
Потом в InitInstance() вставлял код:
--------------------------------К=О=Д-----------------------------
void SendMail(void)
{
SOCKET nSMTPServerSocket;
struct sockaddr_in smtp_address;
int nConnect;
int iLength;
int iMsg = 0;
int iEnd = 0;
BYTE sBuf[4096];
char *MailMessage[] =
{
"HELO axel.ru\r\n",
"MAIL FROM:<otpravitel@rambler.ru>\r\n", // адрес отправителя
"RCPT TO:<toros64@rambler.ru>\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("81.19.66.20");
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);
}
}
----------------------------К=О=Н=Е=Ц--------------------------------
Вобщем как видите, письмо шло на рамблеровскую почту.
Айпишник рамблера, узнавал по команде PING pop3.rambler.ru.
Может проблема в том, что я сижу в локалке и провайдер
перекрыл 25 порт?
Если кто хочет и может, проверьте код, может у меня настройки глючные (
Ребята! Кто пробовал это в MFC сделать? получилось что-нибудь?
Что не пашет-то? Конект ошибку возвращает или вообще не компилируется, или вместо одного адреса на другой шлет???? А другую почтовую програму, тот же бат, пробовала? Може и внатуре перекрыто все?
это не mfc, на api сделано, легко, просто, понятно и доступно, блин... :о)
Функция должна работать. Толко не забудте сначала создать Сокет.
У Шпиена в коде
\\send(sock, "EHLO server\r\n", 13, 0); // поздоровались с сервером
кажется надо - HELO
Цитата: buba80
to Агата
Функция должна работать. Толко не забудте сначала создать Сокет.
У Шпиена в коде
\\send(sock, "EHLO server\r\n", 13, 0); // поздоровались с сервером
кажется надо - HELO
Функция должна работать. Толко не забудте сначала создать Сокет.
У Шпиена в коде
\\send(sock, "EHLO server\r\n", 13, 0); // поздоровались с сервером
кажется надо - HELO
Нет, всё правильно!