Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : HB                                   2:5020/400     16 Jul 2001  23:48:45
 To : All
 Subject : Re: Как можно ускорить отправку через SMTP
 -------------------------------------------------------------------------------- 
 
 Sasha Rudenko wrote in <995306632@p16.f57.n468.z2.FidoNet.ftn>...
 
 >Юзаю Net::SMTP
 
 Hапрасно.
 
 perldoc -q send mail
 
 не пробовали? А очень поучительно, должен вам сказать. А кусочек маленький я
 даже процитировать не поленюсь:
 
 Avoid raw SMTP commands. There are many reasons to use a mail transport
 agent like sendmail. These include queueing, MX records, and security.
 
 Чем более низкоуровневые модули использовать, тем больше геморроя. Лучше
 (гораздо! лучше) использовать (программу) sendmail. Если дело под Win32 и
 sendmail нет, то (модуль) Mail::Sendmail
 
 > вот кусочек, пускаю с командной строки
 > что бы видно было какое письмо уходит
 >
 >#!perl -w
 >use Net::SMTP;
 >open DATA, "email.dat";
 >@ALL=<DATA>;
 >close DATA;
 >open DATA, "data.dat";
 >@MSG=<DATA>;
 >close DATA;
 >print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nProgress:\n";
 >
 >foreach $key (@ALL){
 
 Hапрасно вы в цикле 1 письмо многим рассылаете. Это ж сумасшедший трафик.
 Hужно либо всем сразу посылать, либо (если SMTP-сервер не позволяет по
 такому кол-ву адресов сразу посылать) разбивать "всех" на порции по 10-100
 человек (в завис. от того, сколько адресатов SMTP-сервер позволяет).
 Соответственно, трафик уменьшится почти в 10-100 раз.
 
 >$smtp = Net::SMTP->new('smtp.host',Hello => 'Hello');
 >
 >$smtp->mail($ENV{USER});
 >$smtp->to($key);
 >
 >$smtp->data();
 >$smtp->datasend("To: Name <$key>\n");
 >$smtp->datasend("From: From <mail\@net.com>\n");
 >$smtp->datasend("Subject: Perl SMTP subs\n");
 >$smtp->datasend("\n");
 
 Ужас. Во-первых, вот так и появляются уродливые письма, не соответствующие
 никаким спецификациям. Без Date, без Message-ID (хорошо, если SMTP сервер
 его добавит!), без Content-type, без Content-transfer-encoding (или у вас
 все строго по RFC 822, т. е. подразумевается us-ascii и 7bit, никакой
 кириллицы, никакой псевдографики ?).
 
 Во-вторых, вы разбили посылку 60 байт на 4 посылки. Какая у вас проблема?
 Медленно? Hу, если так сделать, то, пожалуй, еще медленнее будет:
 
 $smtp->datasend("T");
 $smtp->datasend("o");
 $smtp->datasend(":");
 $smtp->datasend(" ");
 $smtp->datasend("N");
 $smtp->datasend("a");
 $smtp->datasend("m");
 $smtp->datasend("e");
 
 и т. д.
 
 >foreach $key2 (@MSG){
 > $smtp->datasend($key2);
 >}
 
 Ужас.
 
 >$smtp->dataend();
 >$smtp->quit;
 >print "Send to: $key";
 
            ^
 Уже sent
 
 >но вот что-то долго отправляет, письма вообще понтовые по 1-2к да и линия
 
 до
 
 >SMTP 10Mbit/s А отправляет по 3-4 сек письмо :(
 >можно ли как ускорить этот процес?
 
 Для начала -- переписать все по-человечески, а там и будет видно, что дальше
 ускорять.
 
 --
 HB      mailto:npecca@yahoo.com?subject=Usenet
 --- ifmail v.2.15dev5
  * Origin: VoronezhSvyazInform ISP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Как можно ускорить отправку через SMTP   Sasha Rudenko   16 Jul 2001 17:57:15 
 Re: Как можно ускорить отправку через SMTP   HB   16 Jul 2001 23:48:45 
 Как можно ускорить отправку через SMTP   Sasha Rudenko   19 Jul 2001 15:26:22 
 Re: Как можно ускорить отправку через SMTP   Artem Chuprina   06 Aug 2001 16:58:08 
 Как можно ускорить отправку через SMTP   Sasha Rudenko   24 Jul 2001 13:57:08 
Архивное /ru.perl/6307fd0ce25b.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional