Проблема с отправкой аттача
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Проблема с отправкой аттача Expand / Collapse
Автор
Сообщение
25.09.2006 12:26
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 25.09.2006 17:49
Сообщ.: 2, Visits: 9
А проблема в том что иногда, подчеркиваю не постоянно, архив в полученном письме имеет CRC = 00000000, вобщем ноль, что распознается как запорченный архив, и файлы извлеч нельзя :(. Привожу код который формирует письмо с аттачем:

$smtp = Net::SMTP->new($smtp_ip, Timeout => 30, Debug => 1 ) or die "Couldn't connect to server: $!" ;
   
$smtp->mail($from_address); 
$smtp->data();

$smtp->datasend("From: $from_address");
$smtp->datasend("To: $to_address");
$smtp->datasend("Subject: ".$subj."");
$smtp->datasend("Mime-Version: 1.0");


$smtp->datasend("X-Mailer: MyMail v1b");
$smtp->datasend("");
$smtp->datasend("Content-Transfer-Encoding: 8bit");
$smtp->datasend("");

if (length($attachname) > 3)
  {#если имеется этач
   $smtp->datasend("Content-Type: multipart/mixed; boundary=\"MyBoundary\"");
  
   open (ATTACH, "< $attachdir/$attachname");
   $attach = ATTACH;
  }
else
  {
   $smtp->datasend("Content-Type: text/plain; charset=Windows-1251");
  }

if ($attach)
  {#если имеется этач
   $smtp->datasend(" This is a multi-part message in MIME format.");
   $smtp->datasend("");
   $smtp->datasend("--MyBoundary"); #разделитель - определен в начале
   $smtp->datasend(" Content-Type: text\/plain");
  }

$smtp->datasend(" $mess"); #тут тело письма

if ($attach)
  { # а тут этачмент
   $smtp->datasend("");
   $smtp->datasend("--MyBoundary"); #разделитель - определен в начале
   $smtp->datasend("");
   $smtp->datasend("Content-Type: application/octet-stream; name=\"$attachname\"");
   $smtp->datasend("");
   $smtp->datasend("Content-Disposition: attachment; filename=\"$attachname\"");
   $smtp->datasend("");
   $smtp->datasend("Content-Transfer-Encoding: base64");

   $smtp->datasend("");
   $smtp->datasend("--MyBoundary");
   $smtp->datasend("");

   while (read($attach, $buf, 60*57))
      {
        $smtp->datasend(encode_base64($buf));
      }

   $smtp->datasend("--MyBoundary--");
 
  }

$smtp->dataend();
$smtp->quit;

Сообщ. #904797
25.09.2006 17:03
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 25.09.2006 17:49
Сообщ.: 2, Visits: 9
Файл исходный и полученный после отправки, различаются на 1 байт, куда мог потерятся, может что с чтением в буфер не то?
Сообщ. #904824
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 9:40