Deem |
Отправлено: 12.01.2005, 17:06 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Я понимаю, что эта тема всем надоела, и в нете я нарыл дофига примеров (все строчка — в строчку одинаковые). Т.е. просто все и понятно. Но У МЕНЯ НЕ РАБОТАЕТ!
В нет выхожу из локальной сети. Могу через шлюз, а могу и через проксю. Чаще через шлюз (предпочитаемый DNS провайдера указан)
WIN2000 4 SP. Да и почтовые серваки выдергиваются: вот недавно узнал, что для коннекта на newmail.ru надо не логин указывать, а ящик целиком. Они же требуют и пароль. Но у компонента NMSMTP некуда его совать. И.т.д.
Скажите, через какой сервак (чтобы на 100%) можно хоть одно письмо отправить, ну и с учетом моей домашней сети. Я уже не знаю, что делать. Блин. Спасите.
PS. До отправки , собтвенно, письма не доходит. Приконектиться не могу. А ошибка всегда одна: Connection Failed. Иногда проскакивает превышение времени ожидания.
|
|
Deem |
Отправлено: 12.01.2005, 17:42 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Вот же блин. Как написал, пошел на mail.ru почитал. Там пароль не нать, но от кого надо указывать свое. И еще: порт 25 либо 2525. Так на 25 не пошло. А на 2525 соединился и отправил с аттачем! Ну не ######? Посмотрю, как получу еще.
Хотя не отправилось. Без аттача пошла. А с маленьким файлом 8к сдохло. Зависло, а потом вылетело в Билдер: Connection reset by peer.
Отредактировано Deem — 12/01/2005, 19:03
|
|
Gedeon |
Отправлено: 12.01.2005, 17:58 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
тут 90% прокси виновато, попробуйте телнетом на 25 и 2525 порты сходить и отправить письмо руками, если получится, тада билдер, нет — тада прокси надо рыть, попробуйте, дальше подумаем.
ЗЫ Как переезд? Сори за офтоп.
|
|
Deem |
Отправлено: 12.01.2005, 18:32 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Переезд в Россию? Отделался легким испугом. И опять я в Одессе.
А письмеца уже идеут классно. Через шлюз. Но без аттачей. пишет 56536 байт из 118567 отправлено. И умирает. Потом вылетает по приведенному выше ругательству.
И если файл 6789 — то отправляет первый пакет 6789.... и на этом усе.
10054 Connection reset by peer — что воно таке?
Удалось переправить файл boot.ini (он мизерный 235 б) с диска С:
Ушел файл 512 байт.
А вместе эти два файла не пошли.
Отредактировано Deem — 12/01/2005, 20:05
|
|
Gedeon |
Отправлено: 13.01.2005, 12:57 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Я так понимаю почтовик на юникс-системе, Connection reset by peer выдается когда демон не слушает смтп порт, дальше 10054 от этот порт часто выбирается как промежуточный для прогона почты через антивирус. Получается ли нормально отправлять письма обычным почтовым клиентом?
И еще пожелание возьмите лучше инди.
|
|
Deem |
Отправлено: 13.01.2005, 13:23 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Gedeon, чего все время на Вы.... Оно, конечно, круто. Но мы — не они. У нас есть "ты".
Да, попробую инди. А бат работает. И прицепленными файлами. И у меня малкие файлы (~ 1Кб) проезжают. Черт знает.....
|
|
Deem |
Отправлено: 13.01.2005, 13:33 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
А как TIdSMTP заставить прицеплять файлы? Сходу так не понял.
|
|
Gedeon |
Отправлено: 13.01.2005, 14:01 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Почему на Вы? Ну такой у меня стиль общения .
По поводу аттачментов, вот кусок кода сразу выдрал при отправке письма, тут разберешся.
CODE |
TIdSMTP *SMPT = new TIdSMTP(NULL);
SMPT->Host = "90.0.0.3";
SMPT->Port = 25;
SMPT->UserId = "gedeon";
SMPT->Connect();
if(SMPT->Connected()){
WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
Date().FormatString("dd.mm.yyyy ") + "Starting Send\n");
TIdMessage* M = new TIdMessage(NULL);
M->From->Text = "gedeon@bigenergy.zp.ua";
M->Recipients->Add();
M->Recipients->Items[0]->Text = "katya@bcs.zp.ua";
M->Recipients->Add();
M->Recipients->Items[1]->Text = "smir@bcs.zp.ua";
M->Subject = "Êóðñû âàëþò è äðàã ìåòàëëîâ";
M->Body->Add("See the attachment file(s)");
TIdAttachment* att = new TIdAttachment(M->MessageParts,
"C:\\Program Files\\Common Files\\Gedeon Shared\\BCS\\ValGold.txt");
M->MessageParts->Add();
M->MessageParts->Items[0] = att;
WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
Date().FormatString("dd.mm.yyyy ") + "ValGold.txt Attached\n");
if(NeedSoftMoney()){
if(FileExists(SoftMoneyName)){
CopyFile(SoftMoneyName.c_str(),
"C:\\Program Files\\Common Files\\Gedeon Shared\\BCS\\SoftVal.txt",false);
TIdAttachment* soft_att = new TIdAttachment(M->MessageParts,
"C:\\Program Files\\Common Files\\Gedeon Shared\\BCS\\SoftVal.txt");
M->MessageParts->Add();
M->MessageParts->Items[1] = soft_att;
WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
Date().FormatString("dd.mm.yyyy ") + "SoftVal.txt Attached\n");
}
}
try{
SMPT->Send(M);
}
//ExceptionHappaned = false;
catch(Exception &E){
ExceptionHappaned = true;
WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
Date().FormatString("dd.mm.yyyy ") + E.Message + "\n");
}
SMPT->Disconnect();
delete att;
delete M;
}
delete SMPT; |
ЗЫ Вот ведь лень иногда к чему приводит, везде по коду SMPT, а правильно то SMTP назвал млин неправильно и давай дальше городить .
Отредактировано Gedeon — 13/01/2005, 15:07
|
|
Deem |
Отправлено: 13.01.2005, 14:32 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Ой, я тут рою.... А меня уже лакомый кусок ждет. Аж неудобно. Вроде напросился. Спасибо.
|
|
Deem |
Отправлено: 13.01.2005, 15:03 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Оч. Интересно, инди матюкается Socket Error 10054. А ведь NMSMTP ту же ошибку давал. Это и есть Connection reset by peer.
Отредактировано Deem — 13/01/2005, 16:08
|
|
Gedeon |
Отправлено: 13.01.2005, 15:25 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Вот что по этому поводу МСДН говорит
QUOTE |
Connection reset by peer.
An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, the host or remote network interface is disabled, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket). This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET. |
А у тебя настройки портов на почтовике и на компоненте совпадают? Вообще странно должно работать, не пойму, тут похоже всеж что-то с ... а хрен его знает с чем. Блин, ну как так почтовик работает, а инди нет, не пойму, что всеж получается через телнет?
|
|
Deem |
Отправлено: 13.01.2005, 15:41 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Порты совпадают. Иначе коннект не происходит. Вот с newmail.ru не сконектился. Хотя прочитал их требования к авторизации. Ошибка 11001. Пойду с прамой машины пошлю попробую в нет. И с другим сервером свяжусь.
|
|
Deem |
Отправлено: 13.01.2005, 16:29 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Пообчался с вебпрограммером, послал через наш SMTP, через провайдера. Полетели файлы. Просто аттачи чего-то застревали. Хотел, чтоб работало полюбому. Ну ладно, пусь будет так.
Но теперь другая фигня — файлы покалеченные. Кто их кодирует? Сервер или моя прога? Я тут как бы совсем нифига не понимаю. Подскажите.
|
|
Gedeon |
Отправлено: 13.01.2005, 16:48 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Честно говоря прога не калечит, да и сервер не должен, тут уже чет помочь не могу, попробуйте письмо прислать самому себе т.е. через смтп и себе он должен локально переслать кое-чего исключается из цепочки.
|
|
Deem |
Отправлено: 13.01.2005, 17:07 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Не.... Спасибо, все работает. И то, что я вчера с NMSMTP написал, и Ваш пример. То был обрезанный файл. Я на размер не посмотрел. Видимо, обрыв коннекта или еще что.
|
|
Gedeon |
Отправлено: 13.01.2005, 17:27 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
QUOTE (Deem @ 13/01/2005, 18:09) | и Ваш пример. |
Ну вот, я на ты перешел, а ты на Вы
Ну и зашибись, что работает, мы ведь к этому и стремимся все.
К слову Задача программиста: намагнитить быстро вращающиеся диски в нужных местах.
|
|
Deem |
Отправлено: 13.01.2005, 18:30 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Да... Я уже обалдел с этой почтой. У меня три проги: пример билдера, моя с NMSNTP и Ваша. В тело русский язык ни одна не передает. Две передают в теме русский. И одна непонятным образом режет файлы. Конешно же это мой вариант. Но порывшись вижу только, что от борландовского примера она не опличается. А файлы передает нормально. События на передачу пакетов приходят и статус. А вот с ящика сливаю файл, а от драный. Ну ладно с файлом. А русский в инди (народ пишет) может так и не появиться. Одна морока.
|
|
Deem |
Отправлено: 14.01.2005, 15:09 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Но можно же тут закодить русский, чтоб на ящик он прилетел в правильном виде. А в какую таблицу перевести?
|
|
Deem |
Отправлено: 14.01.2005, 16:54 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
M — IdMessage
M->ContentType = "text/plain";
M->CharSet = "Windows-1251";
- не проходит.
В NMSNTP написал
NMSMTP1->Charset = "windows-1251";
и все обалденно. А c Indy чего делать?
Отредактировано Deem — 14/01/2005, 17:57
|
|
unknow |
Отправлено: 17.01.2005, 15:11 |
|
Не зарегистрирован
|
У меня при отправке используя TNMSMTP вылазит "Incomplete header" — т. е. неполные данные. СС , BCC, какой-нибудь текст в письме — это все необходимо?
Или же делема в чем то другом! |
|
Deem |
Отправлено: 18.01.2005, 11:03 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Не, уже все нормално. Вернулся я к примеру 6 Билдера для NMSNTP. Добавил MSMTP1->Charset = "windows-1251"; и все классно работает. И русский — везде, и файлы нормально аттачатся. В нет выхожу из локалки через шлюз. И почтовик использую самый ближний — провайдера. Через, например, smtp.mail.ru, который во всех примерах в инете приаттаченные файлы отправить так и не смог. Просто письма шли нормально. Тут все дело в локалке.
|
|
Deem |
Отправлено: 19.01.2005, 12:04 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Сори, Unknow, я не понял, что это вопрос по твоим делам.
Все поля заполнять необязятельно. Последний раз я заполнил набором адресов поле "скрытая копия", а в "кому" ваще ничего. Все прекрасно дошло.
|
|
Nick |
Отправлено: 19.01.2005, 13:42 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
У меня был баг с NMPOP.
Вложенные файлы принимались урезанными 5-3 байта,
"вылечил" добавлением 10 байт с контрольной длиной файла там же,
В indy кажется такого бага нет.
Точно NMPOP — так как отправленые письма все почтовики принимали правильео. |
|