Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Slanje Maila sa attachmentom

[es] :: PHP :: Slanje Maila sa attachmentom

[ Pregleda: 2782 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mordor
Vladimir Cvetic
/dev/null

Član broj: 2797
Poruke: 420
*.beotel.net.

Jabber: cvele@default.co.yu
Sajt: www.knowbies.com


Profil

icon Slanje Maila sa attachmentom 10.12.2004. u 20:12 - pre 235 meseci
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.
 
Odgovor na temu

mordor
Vladimir Cvetic
/dev/null

Član broj: 2797
Poruke: 420
195.252.87.*

Jabber: cvele@default.co.yu
Sajt: www.knowbies.com


Profil

icon Re: Slanje Maila sa attachmentom 11.12.2004. u 13:44 - pre 235 meseci
dajte ljudi nije valjda da niko ne moze da mi pomogne :( ?
 
Odgovor na temu

mordor
Vladimir Cvetic
/dev/null

Član broj: 2797
Poruke: 420
195.252.87.*

Jabber: cvele@default.co.yu
Sajt: www.knowbies.com


Profil

icon Re: Slanje Maila sa attachmentom 12.12.2004. u 16:44 - pre 235 meseci
sada to izgleda ovako :)

Code:

//add From: header
$headers = "From: ".$from_mail."\r\n";
$headers .= "User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913)\r\n"; //recimo
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "$subject\r\n";
//unique boundary
$boundary = uniqid(1);

//tell e-mail client this e-mail contains//alternate versions
$headers .= "Content-Type: multipart/mixed;\r\n boundary = ".$boundary."\r\n\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n";
//plain text version of message
$headers .= "--".$boundary."\r\n" . 
"Content-Type: text/plain; charset=ISO-8859-1; format=flowed\r\n".
"Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= "This is the plain text version!\r\n\r\n";
$headers .= "--".$boundary."\r\n";
$headers .= "Content-Type: ".$fileatt_type.";\r\n".
" name=\"".$fileatt_name."\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: inline;\r\n".
" filename=\"".$fileatt_name."\"\r\n\r\n";
$headers .= "".$data."\r\n";
$headers .= "--".$boundary."--\r\n";


i nece text :( samo att
 
Odgovor na temu

ppavlovic
Pavlovic Petar
Izvođač radova na sajtovima

Član broj: 4306
Poruke: 139
*.smin.sezampro.yu.

Sajt: www.pavlovicpetar.com


+1 Profil

icon Re: Slanje Maila sa attachmentom 12.12.2004. u 18:04 - pre 235 meseci
Ljudi, tocak je odavno izmisljen. Takodje, i sve u vezi PHP-a

Potrazi na google class.phpmailer.
 
Odgovor na temu

[es] :: PHP :: Slanje Maila sa attachmentom

[ Pregleda: 2782 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.