欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

用MAIL函数发带附件的邮件的例子_PHP

程序员文章站 2024-01-29 20:17:22
...
class mime_mail

{

var $parts;

var $to;

var $from;

var $headers;

var $subject;

var $body;



/* * void mime_mail() * class constructor */

function mime_mail()

{

$this->parts = array();

$this->to = "";

$this->from = "";

$this->subject = "";

$this->body = "";

$this->headers = "";

}



/* * void add_attachment(string message, [string name], [string ctype]) * Add an attachment

to the mail object */


function add_attachment($message, $name = "", $ctype = "application/octet-stream")

{

$this->parts[] = array ( "ctype" => $ctype, "message" => $message, "encode" => $encode,

"name" => $name );

}



/* * void build_message(array part= * Build message parts of an multipart mail */

function build_message($part)

{

$message = $part["message"];

$message = chunk_split(base64_encode($message));

$encoding = "base64";

return "Content-Type: ".$part["ctype"]. ($part["name"]?"; name = "".$part["name"].""" : "").

"nContent-Transfer-Encoding: $encodingnn$messagen";

}



/* * void build_multipart() * Build a multipart mail */

function build_multipart()

{

$boundary = "b".md5(uniqid(time()));

$multipart = "Content-Type: multipart/mixed; boundary = $boundarynnThis is a MIME

encoded message.nn--$boundary"
;

for($i = sizeof($this->parts)-1; $i >= 0; $i--)

{

$multipart .= "n".$this->build_message($this->parts[$i])."--$boundary";

}

return $multipart.= "--n";

}



/* * void send() * Send the mail (last class-function to be called) */

function send()

{

$mime = "";

if (!empty($this->from))

$mime .= "From: ".$this->from."n";

if (!empty($this->headers))

$mime .= $this->headers."n";

if (!empty($this->body))

$this->add_attachment($this->body, "", "text/plain");

$mime .= "MIME-Version: 1.0n".$this->build_multipart();

mail($this->to, $this->subject, "", $mime);

}

}; // end of class



/* * Example usage *

$attachment = fread(fopen("test.jpg", "r"), filesize("test.jpg"));

$mail = new mime_mail();

$mail->from = "foo@bar.com";

$mail->headers = "Errors-To: foo@bar.com";

$mail->to = "bar@foo.com";

$mail->subject = "Testing...";

$mail->body = "This is just a test.";

$mail->add_attachment("$attachment", "test.jpg", "image/jpeg");

$mail->send();

*/


?&g