Home >Backend Development >PHP Tutorial >Example of sending email with attachments in php_PHP tutorial
PHP sends emails. There are many related articles on the Internet. This article introduces sending emails with attachments. Friends who don’t know about it can refer to it
emailclass.php The code is as follows: classCMailFile { 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($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: base64n"; $out = $out . "Content-disposition: attachment; filename="$downfilename"nn"; $out = $out . $encoded . "n"; $out = $out . "--" . $this->mime_boundary . "--" . "n"; return $out; } 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"nn"; $out = $out . $msgtext . "n"; return $out; } function write_mimeheaders($filename, $mime_filename) { if ($mime_filename) $filename = $mime_filename; $out = "MIME-version: 1.0n"; $out = $out . "Content-type: multipart/mixed; "; $out = $out . "boundary="$this->mime_boundary"n"; $out = $out . "Content-transfer-encoding: 7BITn"; $out = $out . "X-attachments: $filename;nn"; return $out; } function write_smtpheaders($addr_from) { $out = "From: $addr_fromn"; $out = $out . "Reply-To: $addr_fromn"; $out = $out . "X-Mailer: PHP3n"; $out = $out . "X-Sender: $addr_fromn"; return $out; } } /*Usage - For example: mimetype is "image/gif" $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype); $mailfile->sendfile(); $subject -- subject $sendto -- recipient address $replyto -- Reply address $message -- message content $filename -- attachment file name $downfilename -- Downloaded file name $mimetype -- mime type */ ?> Demo Copy the code The code is as follows: sendfile(); ?>