This article describes the implementation of PHP to send the message class with the attachment method, is a very useful function. Share to everyone for your reference. The specific methods are as follows:
The emailclass.php class files are as follows:
?
Class Cmailfile {var $subject;
var $addr _to;
var $text _body;
var $text _encoded;
var $mime _headers;
var $mime _boundary = "--==================_846811060==_";
var $smtp _headers; function Cmailfile ($subject, $to, $from, $msg, $filename, $downfilename, $mimetype = "Application/octet-stream", $mime _
filename = false) {$this->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, $downfilename, $mimetype, $mime _filename);
$this->mime_headers = $this->write_mimeheaders ($filename, $mime _filename); function Attach_file ($filename, $downfilename, $mimetype, $mime _filename) {$encoded = $this->encode_file ($fi
Lename);
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=\ "$downfilename \ \ n"; $out = $out. $encoded.
"\ n"; $out = $out. "--" . $this->mime_boundary. "--" .
"\ n";
return $out;
The 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); The function Write_body ($msgtext) {$out = "-". $this->mime_boundary.
"\ n"; $out = $out. "Content-type:text/plain; Charset=\ "Us-ascii\"\ n '; $out = $out. $msgtext.
"\ n";
return $out;
The 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";
return $out;
The 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-for example: MimeType is "image/gif" $mailfile = new Cmailfile ($subject, $sendto, $replyto, $message, $filename, $mime
Type);
$mailfile->sendfile (); $subject--Topic $sendto--the addressee address $replyto--reply address $message--the contents of the letter $filename--attachment file name $downfilename--Downloaded files
Name$mimetype-MIME type/?>
Demo sample files are as follows:
<?php
require_once (' emailclass.php ');
Send mail
//topic
$subject = "Test send email";
Recipient
$sendto = ' abc@163.com ';
The inventor
$replyto = ' cdf@163.com ';
Contents
$message = "Test send email content";
Annex
$filename = ' test.jpg ';
Annex Types
$mimetype = "Image/jpeg";
$mailfile = new Cmailfile ($subject, $sendto, $replyto, $message, $filename, $excelname, $mimetype);
$mailfile->sendfile ();
? >
I believe that this article in the PHP Program Design Learning has a certain reference value.