繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 例子:用PHP3发送MIME格式的邮件(可以发附件了哦)

例子:用PHP3发送MIME格式的邮件(可以发附件了哦)

2005-02-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:这有个例子: /* * Class mime_mail * Original implementation by Sascha Schumann * Modified by Tobias Ratschiller : * - General code clean-up * - separate body- and from-property * ...

这有个例子:

/*

* Class mime_mail

* Original implementation by Sascha Schumann

* Modified by Tobias Ratschiller :

* - General code clean-up

* - separate body- and from-property

* - killed some mostly un-necessary stuff

*/

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: $encoding".

"\nContent-Disposition: inline".

($part["name"]?"; filename=\"".$part["name"]."\"":"").

"\n\n$message\n";

}

/*

* void build_multipart()

* Build a multipart mail

*/

function build_multipart()

{

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

$multipart = "Content-Type: multipart/mixed; boundary = \"$boundary\"\n\nThis

is a MIME encoded message.\n\n--$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.0\n".$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();

*/

?>

责任编辑:admin
相关文章