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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Averbuh                    2:4625/69.123  13 Jan 2001  23:54:00
 To : All
 Subject : Как вставить поле Subj
 -------------------------------------------------------------------------------- 
 
                                                                      і   АДЩ ДБ
 Hello, All! Как поживает твой hерц?
 
 Иммется скрипт для отправки почты через smtp.
 Hо вот письма приходят без поля "subj".
 Как сделать так, чтобы оно присутствовало?
 
 === Cut ===
 #!/usr/local/bin/perl -w
 
 use strict;
 use Socket;
 
 my $inet_EOL = "\x0d\x0a";
 
 my $host = my $username = my $password = my $server = my $answer = '';
 my $port = my $iaddr = my $paddr = my $index = 0;
 
 sub smtp {
 
 my %db = ( 'mail' => 'smtp.svitonline.com:25', 'chat' =>
 'waf:passwd1:chat.ru:25', 'rbc' => 'waf:passwd2:mail.rbc.ru:25' );
 
 my $configfile = 'mailer.con';
 my $from = my $to = my $subj = my $body = my $sign = my $date = '';
 my $answer_file = 'smtp.ans';
 
  return( -1 ) unless( open( CONF, "<$configfile" ) && -r $configfile );
  $body = '';
  while( <CONF> ) {
   chomp;
   $_ =~ s/^FROM\s(.*)/$from = $1/e;
   next if( $1 );
   $_ =~ s/^TO\s(.*)/$to = $1/e;
   next if( $1 );
   $_ =~ s/^SUBJ\s(.*)/$subj = $1/e;
   next if( $1 );
 #  $_ =~ s/^BODY\s(.*)/$body .= "$1\n"/e;
 #  next if( $1 );
   $_ =~ s/^SIGN\s(.*)/$sign = $1/e;
   next if( $1 );
   $_ =~ s/^DATE\s(.*)/$date = $1/e;
   next if( $1 );
   $body .= "$_\n" if( defined( $_ ))
  }
  close( CONF );
  $body .= "\n\n$sign" if( $sign );
  $body .= "\n$date" if( $date );
 
 print "$from\n";
 print "$to\n";
 print "$subj\n";
 print "$body\n";
 $username=''; $password='';
 $host='smtp.svitonline.com'; $port=25;
 
  return( -2 ) unless( open( OUT, ">$answer_file" ) || -w $answer_file );
  return( -3 ) unless( defined( $iaddr = inet_aton( $host )));
  return( -4 ) unless( socket( SERVER, PF_INET, SOCK_STREAM, getprotobyname(
 'tcp' )));
 
  $paddr = sockaddr_in( $port, $iaddr );
  return( -5 ) unless( connect( SERVER, $paddr ));
  select( OUT ); $| = 1; select( SERVER ); $| = 1; select( STDOUT );
  binmode( OUT ); binmode( SERVER );
 
  $server = <SERVER>;
  $answer .= $server;
  unless( $server =~ /^220/ ) {
   print OUT $answer;
   return( -6 )
  }
 
  print SERVER "MAIL FROM:$from$inet_EOL";
  $answer .= "MAIL FROM:$from$inet_EOL";
  $server = <SERVER>;
  $answer .= $server;
  unless( $server =~ /^250/ ) {
   print OUT $answer;
   return( -8 )
  }
  print SERVER "RCPT TO:$to$inet_EOL";
  $answer .= "RCPT TO:$to$inet_EOL";
  $server = <SERVER>;
  $answer .= $server;
  unless( $server =~ /^250/ ) {
   print OUT $answer;
   return( -9 )
  }
  print SERVER "DATA$inet_EOL";
  $answer .= "DATA$inet_EOL";
  $server = <SERVER>;
  $answer .= $server;
  unless( $server =~ /^354/ ) {
   print OUT $answer;
   return( -10 )
  }
  print SERVER $body;
  $answer .= $body;
  print SERVER "$inet_EOL.$inet_EOL";
  $answer .= "$inet_EOL.$inet_EOL";
  $server = <SERVER>;
  $answer .= $server;
  unless( $server =~ /^250/ ) {
   print OUT $answer;
   return( -11 )
  }
  print SERVER "QUIT$inet_EOL";
  $answer .= "QUIT$inet_EOL";
  $server = <SERVER>;
  $answer .= $server;
  unless( $server =~ /^221/ ) {
   print OUT $answer;
   return( -12 )
  }
  print OUT $answer;
  close( OUT );
  close( SERVER );
  return( 0 )
 }
 
 print 'result: \'' . smtp() . "'\n"
 
 === Cut ===
 
   С уважением, Alexander
 
 Так, идите мыть руки, All!
 
 mailto: alav@gmx.net                          http://alhome.virtualave.net
                                               http://haverim.virtualave.net
 
 > Если ты будешь бройгес, я тебе сделаю такой цурыс, что ты всю жизнь будешь
 > иметь нахес!
 
 --- GoldED 2.50+
  * Origin: An apple a day keeps the doctor way. (2:4625/69.123)
 
 

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

 Тема:    Автор:    Дата:  
 Как вставить поле Subj   Alexander Averbuh   13 Jan 2001 23:54:00 
 Re: Как вставить поле Subj   Vladimir Podgorny   14 Jan 2001 14:18:31 
 Как вставить поле Subj   Alexander Averbuh   16 Jan 2001 20:20:00 
 Re: Как вставить поле Subj   Vladimir Podgorny   18 Jan 2001 11:42:56 
 Re: Как вставить поле Subj   Oleg Dynnikov   19 Jan 2001 16:22:39 
 Re: Как вставить поле Subj   Vladimir Podgorny   19 Jan 2001 17:24:00 
 Re: Как вставить поле Subj   Oleg Dynnikov   19 Jan 2001 18:19:59 
 Re: Как вставить поле Subj   Vladimir Podgorny   19 Jan 2001 18:34:26 
 Re: Как вставить поле Subj   Artem Chuprina   18 Jan 2001 20:02:59 
 Как вставить поле Subj   Alexander Averbuh   19 Jan 2001 08:59:00 
 Re: Как вставить поле Subj   Artem Chuprina   22 Jan 2001 16:13:08 
Архивное /ru.perl/39713a60dd50.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional