<?
<span
class
</span><span CMailFile {
</span><span
var
</span> <span
$subject
</span><span ;
</span><span
var
</span> <span
$addr_to
</span><span ;
</span><span
var
</span> <span
$text_body
</span><span ;
</span><span
var
</span> <span
$text_encoded
</span><span ;
</span><span
var
</span> <span
$mime_headers
</span><span ;
</span><span
var
</span> <span
$mime_boundary
</span> =
"--==================_846811060==_"
<span ;
</span><span
var
</span> <span
$smtp_headers
</span><span ;
</span><span
function
</span> CMailFile(<span
$subject
</span>,<span
$to
</span>,<span
$from
</span>,<span
$msg
</span>,<span
$filename
</span>,<span
$downfilename
</span>,<span
$mimetype
</span> =
"application/octet-stream"
,<span
$mime_filename
</span> = <span false</span><span ) {
</span><span
$this
</span>->subject = <span
$subject
</span><span ;
</span><span
$this
</span>->addr_to = <span
$to
</span><span ;
</span><span
$this
</span>->smtp_headers = <span
$this
</span>->write_smtpheaders(<span
$from
</span><span );
</span><span
$this
</span>->text_body = <span
$this
</span>->write_body(<span
$msg
</span><span );
</span><span
$this
</span>->text_encoded = <span
$this
</span>->attach_file(<span
$filename
</span>,<span
$downfilename
</span>,<span
$mimetype
</span>,<span
$mime_filename
</span><span );
</span><span
$this
</span>->mime_headers = <span
$this
</span>->write_mimeheaders(<span
$filename
</span>, <span
$mime_filename
</span><span );
}
</span><span
function
</span> attach_file(<span
$filename
</span>,<span
$downfilename
</span>,<span
$mimetype
</span>,<span
$mime_filename
</span><span ) {
</span><span
$encoded
</span> = <span
$this
</span>->encode_file(<span
$filename
</span><span );
</span><span
if
</span> (<span
$mime_filename
</span>) <span
$filename
</span> = <span
$mime_filename
</span><span ;
</span><span
$out
</span> =
"--"
. <span
$this
</span>->mime_boundary .
"\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Content-type: "
. <span
$mimetype
</span> .
"; name=\"<span $filename</span>\";\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Content-Transfer-Encoding: base64\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Content-disposition: attachment; filename=\"<span $downfilename</span>\"\n\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> . <span
$encoded
</span> .
"\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"--"
. <span
$this
</span>->mime_boundary .
"--"
.
"\n"
<span ;
</span><span
return
</span> <span
$out
</span><span ;
}
</span><span
function
</span> encode_file(<span
$sourcefile
</span><span ) {
</span><span
if
</span> (<span
is_readable
</span>(<span
$sourcefile
</span><span )) {
</span><span
$fd
</span> = <span
fopen
</span>(<span
$sourcefile
</span>,
"r"
<span );
</span><span
$contents
</span> = <span
fread
</span>(<span
$fd
</span>, <span
filesize
</span>(<span
$sourcefile
</span><span ));
</span><span
$encoded
</span> = <span
chunk_split
</span>(<span
base64_encode
</span>(<span
$contents
</span><span ));
</span><span fclose</span>(<span
$fd
</span><span );
}
</span><span
return
</span> <span
$encoded
</span><span ;
}
</span><span
function
</span><span sendfile() {
</span><span
$headers
</span> = <span
$this
</span>->smtp_headers . <span
$this
</span>-><span mime_headers;
</span><span
$message
</span> = <span
$this
</span>->text_body . <span
$this
</span>-><span text_encoded;
</span><span mail</span>(<span
$this
</span>->addr_to,<span
$this
</span>->subject,<span
$message
</span>,<span
$headers
</span><span );
} www</span>.jbxue.<span com
</span><span
function
</span> write_body(<span
$msgtext
</span><span ) {
</span><span
$out
</span> =
"--"
. <span
$this
</span>->mime_boundary .
"\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Content-Type: text/plain; charset=\"us-ascii\"\n\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> . <span
$msgtext
</span> .
"\n"
<span ;
</span><span
return
</span> <span
$out
</span><span ;
}
</span><span
function
</span> write_mimeheaders(<span
$filename
</span>, <span
$mime_filename
</span><span ) {
</span><span
if
</span> (<span
$mime_filename
</span>) <span
$filename
</span> = <span
$mime_filename
</span><span ;
</span><span
$out
</span> =
"MIME-version: 1.0\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Content-type: multipart/mixed; "
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"boundary=\"<span $this</span>->mime_boundary\"\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Content-transfer-encoding: 7BIT\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"X-attachments: <span $filename</span>;\n\n"
<span ;
</span><span
return
</span> <span
$out
</span><span ;
}
</span><span
function
</span> write_smtpheaders(<span
$addr_from
</span><span ) {
</span><span
$out
</span> =
"From: <span $addr_from</span>\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"Reply-To: <span $addr_from</span>\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"X-Mailer: PHP3\n"
<span ;
</span><span
$out
</span> = <span
$out
</span> .
"X-Sender: <span $addr_from</span>\n"
<span ;
</span><span
return
</span> <span
$out
</span><span ;
}
}
</span><span
</span>
?>