Re: [PHP] sending attachements with mail

2001-05-21 Thread py

Here is a nice class that handles e-mail attachment.
Works fine for me.
py

// ==
// start code
// ==
subject = $subject;
 $this->addr_to = $to;
 $this->smtp_headers = $this->write_smtpheaders($from);
 $this->text_body = $this->write_body($msg);
 $this->text_encoded =
$this->attach_file($filename,$mimetype,$mime_filename);
 $this->mime_headers = $this->write_mimeheaders($filename, $mime_filename);
}

function attach_file($filename,$mimetype,$mime_filename) {
 $encoded = $this->encode_file($filename);
 if ($mime_filename) $filename = $mime_filename;
 $out = "--" . $this->mime_boundary . "\n";
 $out = $out . "Content-type: " . $mimetype . "; name=\"$filename\";\n";
 $out = $out . "Content-Transfer-Encoding: base64\n";
 $out = $out . "Content-disposition: attachment;
filename=\"$filename\"\n\n";
 $out = $out . $encoded . "\n";
 $out = $out . "--" . $this->mime_boundary . "--" . "\n";
 return $out;
 // added -- to notify email client attachment is done
}

function encode_file($sourcefile) {
 if (is_readable($sourcefile)) {
  $fd = fopen($sourcefile, "r");
  $contents = fread($fd, filesize($sourcefile));
  $encoded = chunk_split(base64_encode($contents));
  fclose($fd);
 }
 return $encoded;
}

function sendfile() {
 $headers = $this->smtp_headers . $this->mime_headers;
 $message = $this->text_body . $this->text_encoded;
 mail($this->addr_to,$this->subject,$message,$headers);
}

function write_body($msgtext) {
 $out = "--" . $this->mime_boundary . "\n";
 $out = $out . "Content-Type: text/plain; charset=\"us-ascii\"\n\n";
 $out = $out . $msgtext . "\n";
 return $out;
}

function write_mimeheaders($filename, $mime_filename) {
 if ($mime_filename) $filename = $mime_filename;
 $out = "MIME-version: 1.0\n";
 $out = $out . "Content-type: multipart/mixed; ";
 $out = $out . "boundary=\"$this->mime_boundary\"\n";
 $out = $out . "Content-transfer-encoding: 7BIT\n";
 $out = $out . "X-attachments: $filename;\n\n";
 return $out;
}

function write_smtpheaders($addr_from) {
 $out = "From: $addr_from\n";
 $out = $out . "Reply-To: $addr_from\n";
 $out = $out . "X-Mailer: PHP3\n";
 $out = $out . "X-Sender: $addr_from\n";
 return $out;
}
}

// usage - mimetype example "image/gif"
// $mailfile = new
CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype);
// $mailfile->sendfile();

// Splits a string by RFC2045 semantics (76 chars per line, end with \r\n).
// This is not in all PHP versions so I define one here manuall.
function my_chunk_split($str){
 $stmp = $str;
 $len = strlen($stmp);
 $out = "";
 while ($len > 0) {
  if ($len >= 76) {
   $out = $out . substr($stmp, 0, 76) . "\r\n";
   $stmp = substr($stmp, 76);
   $len = $len - 76;
  }
  else {
   $out = $out . $stmp . "\r\n";
   $stmp = ""; $len = 0;
  }
 }
 return $out;
} // end script
?>
// ==
// end code
// ==
- Original Message -
From: Tolga "thorr" Orhon <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, May 21, 2001 3:47 PM
Subject: Re: [PHP] sending attachements with mail


> Yes you can do it, but it takes some time as you need to know MIME
> extensions. It took 2 hours to implement just picture attachments. It will
> surely be easier to use some kind of script but I couldnt find any that
gets
> attachments direcly (as I am getting attachments from MySql DB) so I did
my
> own.
>
> --
> Tolga 'thorr' Orhon
>
> "Mark Wouters" <[EMAIL PROTECTED]> wrote in message
> [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > Nobody knows if it's possible to send attachements with mail()??
> >
> > Thanks,
> >
> > --
> > Mark Wouters
> > eXpanded Media
> > Web Designer
> > Parijsstraat 74, B-3000 Leuven - Louvain
> > Tel: +32 (16) 31.10.12
> > Fax: +32 (16) 31.10.19
> > E-mail: [EMAIL PROTECTED]
> > URL: http://www.expandedmedia.be
> >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP] sending attachements with mail

2001-05-21 Thread Tolga \"thorr\" Orhon

Yes you can do it, but it takes some time as you need to know MIME
extensions. It took 2 hours to implement just picture attachments. It will
surely be easier to use some kind of script but I couldnt find any that gets
attachments direcly (as I am getting attachments from MySql DB) so I did my
own.

--
Tolga 'thorr' Orhon

"Mark Wouters" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> Nobody knows if it's possible to send attachements with mail()??
>
> Thanks,
>
> --
> Mark Wouters
> eXpanded Media
> Web Designer
> Parijsstraat 74, B-3000 Leuven - Louvain
> Tel: +32 (16) 31.10.12
> Fax: +32 (16) 31.10.19
> E-mail: [EMAIL PROTECTED]
> URL: http://www.expandedmedia.be
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP] sending attachements with mail

2001-05-19 Thread Mark Wouters

Nobody knows if it's possible to send attachements with mail()??

Thanks,

--
Mark Wouters
eXpanded Media
Web Designer
Parijsstraat 74, B-3000 Leuven - Louvain
Tel: +32 (16) 31.10.12
Fax: +32 (16) 31.10.19
E-mail: [EMAIL PROTECTED]
URL: http://www.expandedmedia.be



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]