![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите как отправить письмо используя сокеты? [D7, WinXP]
Lamer666 © (2008-09-07 13:11:00)Подскажите как отправить письмо используя сокеты?
Задача стоит так, с локального компьютера хочу отправлять письма, но не используя SMTP Сервера.
Dennis I. Komarov (2010-09-27 10:30:00) [1]
> И SMTP руками реализовывать, да. Получится, вне сомнения,
> проще, быстрее, дешевле и надёжнее.
>
> А ещё хорошо картошку самому сажать, и сапоги себе шить.
> Из шкуры собственноручно забитой свиньи.
Ну, как получится я не знаю, но кому что...
Да, и аналогия не очень :)
DiamondShark (2010-09-24 11:10:00) [2]
> Dennis I. Komarov © (02.09.10 17:07) [44]
> Юзайте TCPClient и никаких претензий. Там все только от
> вас зависит :)
И SMTP руками реализовывать, да. Получится, вне сомнения, проще, быстрее, дешевле и надёжнее.
А ещё хорошо картошку самому сажать, и сапоги себе шить. Из шкуры собственноручно забитой свиньи.
DiamondShark (2010-09-24 11:07:00) [3]
> grisme © (26.08.10 08:42) [42]
Не путайте "белый"/"зелёный" и динамический/статический.
Строго говоря, термина "белый" нет вообще.
Dennis I. Komarov (2010-09-02 17:07:00) [4]Юзайте TCPClient и никаких претензий. Там все только от вас зависит :)
Anatoly Podgoretsky (2010-08-26 19:07:00) [5]> grisme (26.08.2010 08:42:42) [42]
При любой отправки в Интернет есть "белый" адрес, иначе работа с Интернет
невозможна.
grisme (2010-08-26 08:42:00) [6]Хм. наличие "белого" IP-адреса вовсе и не обязательно. (:
удавалось поднять сервак на дин.IP с no-ip.доменом, письма вполне так доставлялись. yandex принимал письма с сервака. и только, по-моему, mail.ru отказал в передаче из-за динамического адреса.
Anatoly Podgoretsky (2010-08-23 19:39:00) [7]> Сергей М. (23.08.2010 16:53:40) [40]
Вообще то она даже не копия.
Сергей М. (2010-08-23 16:53:00) [8]
> как можно отправить копю собщении ?
Точно так же ка и оригинал.
На то она и копия, что от оригинала ничем не отличается.
Данияр (2010-08-21 23:48:00) [9]Здраствуйте , я новичок и хотел спросить , как можно отправить копю собщении ? Я исползую компоненты smtp и id message из Indy
Сергей М. (2009-08-28 15:40:00) [10]
> пробовал и ничего не получилось
Значит не то или не так пробовал, оттого и не получилось
> письма кстати приходят иногда в папку "Входящие", а иногда
> в сомнительные "Сомнительные"
Значит они заведомо не одинаковые
belousov (2009-08-28 14:12:00) [11]
> Отправляй в кодировке KOI8-R или Win1251, тогда проблем
> не будет.
Да пробовал и ничего не получилось... может с опытом придет)
...и письма кстати приходят иногда в папку "Входящие", а иногда в сомнительные "Сомнительные" несмотря на то что и заголовок и тело у них одинаковые!
Сергей М. (2009-08-28 13:37:00) [12]
> когда захожу в почтовый ящик через сайт mail.ru
Отправляй в кодировке KOI8-R или Win1251, тогда проблем не будет.
> 403 You have exceeded message sending limit, and i will
> not accept any messages from you within 1 minute
Поятно.
mail.ru smtp-сервер справедливо подозревает тебя в распространении спама)
belousov (2009-08-28 13:20:00) [13]
> Пока ты не забрал почту из "ящика", рассуждать про "отображается
> коряво" бессмысленно .
> Вот я и спрашиваю, где ты наблюдаешь "корявость", в каком
> почтовом клиенте ? В самодельном ?
Нет, когда захожу в почтовый ящик через сайт mail.ru
> Вот и я не понял, где ты посмотрел про таймаут в 1 минуту)
Сделал лог отправки письма:
procedure TMainForm.SmtpRequestDone(Sender: TObject; RqType: TSmtpRequest;
ErrorCode: Word);
var s: string;
begin
case RqType of
smtpConnect: Log.Add('connect');
smtpHelo: Log.Add('helo');
smtpMailFrom: Log.Add('mailfrom');
smtpVrfy: Log.Add('vrfy');
smtpRcptTo: Log.Add('rcptto');
smtpData: Log.Add('data');
smtpQuit: Log.Add('quit');
smtpRset: Log.Add('rset');
smtpOpen: Log.Add('open');
smtpMail: Log.Add('mail');
smtpEhlo: Log.Add('ehlo');
smtpAuth: Log.Add('auth');
smtpCustom: Log.Add('custom');
end;
s := inttostr(ErrorCode);
Log.Add(s);
Log.SaveToFile('log.txt');
end;
и
procedure TMainForm.SmtpResponse(Sender: TObject; Msg: string);
begin
Log.Add(Msg);
Log.SaveToFile('log.txt');
end;
Вот что получилось в логе:
....
220 mail.ru ESMTP Fri, 28 Aug 2009 13:19:28 +0400
250-mx38.mail.ru Hello smtp.mail.ru [80.240.220.103]
250-SIZE 31457280
250-8BITMIME
250-AUTH PLAIN LOGIN
250 PIPELINING
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 Authentication succeeded
open
0
250 OK
250 Accepted
403 You have exceeded message sending limit, and i will not accept any messages from you within 1 minute
500 unrecognized command
500
500 unrecognized command
500 unrecognized command
500 Too many unrecognized commands
quit
0
....
Сергей М. (2009-08-27 16:45:00) [14]
> не понял)
>
Вот и я не понял, где ты посмотрел про таймаут в 1 минуту)
> e-mail(почтовый ящик)...)
Пока ты не забрал почту из "ящика", рассуждать про "отображается коряво" бессмысленно .
Вот я и спрашиваю, где ты наблюдаешь "корявость", в каком почтовом клиенте ? В самодельном ?
belousov (2009-08-27 16:32:00) [15]
> сравнить заголовок и тело одного и того же письма
попробую
> А как же Аутлук ?
> Он тоже "посмотрел" ?)
не понял)
> Что значит "на почту" ?
e-mail(почтовый ящик)...)
Сергей М. (2009-08-27 16:17:00) [16]
> как можно это узнать, чтобы в дальнейшем исправить?
>
Достаточно сравнить заголовок и тело одного и того же письма, отправляемого ICS и попадающего в сомнительные и отправляемого любым иным клиентом, при котором письмо туда не попадает.
> там таймаут надо 1 минуту ставить после определенного количества
> писем
А как же Аутлук ?
Он тоже "посмотрел" ?)
> На почту
Что значит "на почту" ?
> как не старался текст письма все равно отображается иероглифами
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1233223566&n=4
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1239719308&n=4
belousov (2009-08-27 15:59:00) [17]
> отходит от каких-то требований RFC 2822
А как можно это узнать, чтобы в дальнейшем исправить?
> посмотреть Msg в OnResponse и RqType,ErrorCode в OnRequestDone
Кстати спасибо ещё раз уже посмотрел... оказалось, что там таймаут надо 1 минуту ставить после определенного количества писем...
> Приходило куда ?
На почту... С заголовком письма я там разобрался - все по русски нормально приходит, а вот сам текст(тело) письма отображается коряво. Пробовал и исходники исправлять как пишут на форумах и кодировать по разному, но как не старался текст письма все равно отображается иероглифами.
Сергей М. (2009-08-27 15:52:00) [18]
> если не пытаться что либо делать с кодировкой
А что-то мешает этим попыткам ?
Сергей М. (2009-08-27 15:48:00) [19]
> отправленные с помощью ICS письма(которые дошли) попадают
> на mail.ru в папку "Сомнительные"
Значит ICS-клиент в отправляемых заголовках писем где-то как-то отходит от каких-то требований RFC 2822, а smtp-сервер на mail.ru, напротив, ожидает их соблюдения ... Или сервер расценивает твои письма как потенциальный спам или небезопасную корреспонденцию ..
> чтобы тело письма приходило нормальным текстом
Приходило куда?
belousov (2009-08-27 15:34:00) [20]Спасибо, попробую) и ещё такой вопросик... отправленные с помощью ICS письма(которые дошли) попадают на mail.ru в папку "Сомнительные", если же использовать Indy, то приходят как и положено в папку "Входящие", но в Indy сколько я не мучался так и не смог добиться чтобы тело письма приходило нормальным текстом, а не иероглифами или же вопросиками(если не пытаться что либо делать с кодировкой). Вот интересно как бы на ICS сделать так, чтобы письма приходили в папку "Входящие", а не в "Сомнительные"?