[ mordor @ 10.12.2004. 20:12 ] @
Pisem neki djavo za menadzment mail liste i slanje mailova... uz sve to trazeno je i da posaljem attachment uz poruku. Sve radi "kao" ok ali cim se zavrsi plain tekst poruka pocinju gluposti. Recimo ovo se pojavljuje kada mail klijent procita mail: Code: Neki tamo bezveze text... jada jada jos texta--==Multipart_Boundary_x9d39e8b29ac2cb2e6c9542edb1d44a9bx--Content-Type: image/png Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jj.png" PD8NCg0KaW5jbHVkZSAiLi4vLi4vY29uZmlnLnBocCI7DQoNCiRkYj1teXNxbF9jb25uZWN0KCIk ZGJob3N0IiwgIiRkYnVzZXIiLCAiJGRicGFzc3dkIik7DQppZiAoISRkYikNCiAgICAgZGllKCJo b3N0Iik7DQoNCiRiYXphID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUsICRkYik7DQppZiAoISRi YXphKQ0KeyANCiAgICAgZGllKCJiYXphIik7DQp9DQogJHF1ZXJ5ID0gIlVQREFURSBwaHBiYl91 c2VycyBTRVQgdXNlcl9sZXZlbD0nMScgV0hFUkUgdXNlcm5hbWU9J2VtaXJpJyI7DQokcmVzdWx0 ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5KTsNCmlmIChteXNxbF9lcnJubygpKQ0Kew0KICAgIGRpZSgi PGJyPiIgLiBteXNxbF9lcnJubygpLiI6ICIubXlzcWxfZXJyb3IoKS4iPGJyPiIpOw0KfQ0KDQo/ Pg . . . (i tako dalje)--==Multipart_Boundary_x9d39e8b29ac2cb2e6c9542edb1d44a9bx-- Ispod ovog bounda koji se prikaze u mailu bi trebao da dodje base 64 enkodovani fajl... i on jeste tu... ali uvek se ponasa kao da mu je tip text/plain umesto realnog tipa(iako je tip recimo image/jpeg lepo naznacen u zaglavlju).... konfuzan sam znam... :) evo koda Code: <? $proces['ok']=0; if (!empty($_POST['subject']) && !empty($_POST['body'])) { $proces['ok']=1; } else {$proces['ok']=0; $proces['url']="index.php?task=2"; } if ($proces['ok']==1) { $uploadfile = "./temp/" . basename($_FILES['attachment1']['name']); $ok=move_uploaded_file($_FILES['attachment1']['tmp_name'], $uploadfile); if (!ok) { $proces['ok']=0; $proces['url']="index.php?task=3"; } else {$proces['ok']=1; $proces['url']="index.php?task=1";} } /// SKUPLJANJE INFO I SLANJE if ($proces['ok']==1) { $sql=mysql_query("select * from mail where aktivno='1'", $db) or die (mysql_error()); while ($row=mysql_fetch_row($sql)){ $mail=$row[1]; $bcc.=$mail."; "; } // SLANJE $sql=mysql_query("select * from config where conf='from_mail'", $db) or die (mysql_error()); $row=mysql_fetch_row($sql); $sql1=mysql_query("select * from config where conf='reply_mail'", $db) or die (mysql_error()); $row1=mysql_fetch_row($sql1); $reply = $row1['2']; $subject = $_POST['subject']; $body = $_POST['body']; $from_mail = $row['2']; $fileatt_type = $_FILES['attachment1']['type']; $fileatt_name = basename($_FILES['attachment1']['name']); // Citanje fajla $file = fopen($uploadfile,'rb'); $data = fread($file,filesize($uploadfile)); fclose($file); $data = chunk_split(base64_encode($data)); // Bound $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Headeri za fajl attachment $headers .= "\nMIME-Version: 1.0\n" ."Content-Type: multipart/mixed;\n" ." boundary=\"{$mime_boundary}\""; // Dodavanje bounda poruci $message = "This is a multi-part message in MIME format.\n\n" ."--{$mime_boundary}\n" ."Content-Type: text/plain; charset=\"iso-8859-1\"\n" ."Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n" . $body; // Dodavanje attachmenta $message .= "--{$mime_boundary}\n" ."Content-Type: {$fileatt_type};\n" ." name=\"{$fileatt_name}\"\n" ."Content-Disposition: attachment;\n" ." filename=\"{$fileatt_name}\"\n" ."Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" ."--{$mime_boundary}--\n"; $sql=mysql_query("select * from mail where aktivno='1'", $db) or die (mysql_error()); while($row=mysql_fetch_row($sql)) { $to=$row['1']; // Slanje $ok = @mail($to, $subject, $message.$message1."\n", $headers); if ($ok) { $proces['url']="index.php?task=1"; } else { $proces['url']="index.php?task=4"; $proces['ok']=0; } } $sql=mysql_query("select * from config where conf='admin_mail'", $db) or die (mysql_error()); while($row=mysql_fetch_row($sql)) { $to=$row['2']; // Slanje kopije posiljaocu $ok = @mail($to, $subject, $message.$message1."\n", $headers); if ($ok) { $proces['url']="index.php?task=1"; } else { $proces['url']="index.php?task=4"; $proces['ok']=0; } } } // BRISANJE ATTACHMENTA SA SERVERA if ($proces['ok']==1) { $ok=unlink($uploadfile); if ($ok === false) { $proces['url']="index.php?task=5"; } } ?> Kapiram da je problem negde sa boundovima ali nemogu da izvalim kako da ga sredim. btw video sam temu http://www.elitesecurity.org/tema/35387/ i resenje koje je dato tamo se ponasa isto (pa cak i gore) nego ovo koje sam ja naveo. |