Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отправить почту 
:(
    Опции темы
Гость_Serj
Дата 5.2.2004, 16:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня не получается вот это:

struct sockaddr_in A; WSADATA W; SOCKET S; struct hostent *H;

char helo[]={"HELO mail.ru\n"};
char mail[]={"MAIL FROM: <[email protected]>\n"};
char rcpt[]={"RCPT TO: <[email protected]>\n"};
char data[]={"DATA\n"};
char point[]={"\n.\n"};
char quit[]={"QUIT\n"};
char buff[2048];
char mainmail[]={"TEST"};

void main ()
{
WSAStartup (0x101, &W);
S = socket (AF_INET, SOCK_STREAM, 0);
A.sin_family = AF_INET;
A.sin_port = htons (25);
H = gethostbyname ("mail.ru");
A.sin_addr.s_addr=*((unsigned long *) H->h_addr);

connect (S, (struct sockaddr *) &A, sizeof (A));

recv (S, buff, 2048, 0);
printf("\n%s",buff);

send (S,helo,strlen(helo),0);
recv (S, buff, 2048, 0);
printf("\n%s",buff);

send (S,mail,strlen(mail),0);
recv (S, buff, 2048, 0);
printf("\n%s",buff);

и после это, сообщение 421 - SMTP command timeout.
Подскажите как правильно отправить письмо на mail.
Спасибо.

  Вверх
shedon
Дата 5.2.2004, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Код

char message[] = "Это сообщение будет отправлено";

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:<[email protected]>\r\n",   // адрес отправителя
"RCPT TO:<[email protected]>\r\n",     // адресок получателя
"DATA\r\n",
message,   // тело сообщения
"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("194.67.23.10"); //smtp.mail.ru - 194.67.23.10
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);
 }



--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 7.2.2004, 13:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











После получения сообщения 354 начинается отправка сообщения и ничего не происходит минут этак 10. Почему так и как сделать, чтобы сообщение уходило немедленно.
Спасибо.
  Вверх
Unregistered
Дата 7.2.2004, 14:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Точнее, после отправки message на строке с :
iLength = recv(nSMTPServerSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
все зависает?!

  Вверх
shedon
Дата 7.2.2004, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Зависать, не должно у тебя стоит файрвол, прокси сервер, какая винда(работать должно подо всеми, но проверял, только под Win2k) ?


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 7.2.2004, 17:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Прокси есть, внд 2000, но виснет конкретно.
  Вверх
Step
Дата 7.2.2004, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



есть прокся - есть проблемма, а какая прокся стоит....


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
shedon
Дата 7.2.2004, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Если есть прокси, то вместо 194.67.23.10 вводи IP прокси сервера. Прокся должна быть настроена, на то что бы переслать данное сообщение на нужный адресс.


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 7.2.2004, 18:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вводил адрес прокси, но до отправки mail-а дело не доходит, в RCPT TO не устраивает адрес (ощибка 554). Хотя он реальный. Я пытался отправить на другой адрес, то же самое.

Step
Цитата
а какая прокся стоит....
, как это пнять : "..какая..".

  Вверх
shedon
Дата 7.2.2004, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



А на какой порт настроена прокси для smtp, возможно не на 25, а на другой.
Скорее всего дело в настройках прокси.


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 8.2.2004, 22:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня в настройках подключения указан прокси и номер порта. Я подставлял все это, но на передаче данных виснет. Я уже весь соплями изошол...
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.