php mail 支持UTF-8,附件

<?php
class mime_mail {
	var $parts;
	var $to;
	var $from;
	var $headers;
	var $subject;
	var $body;
	//  
	function mime_mail() {
		$this->parts = array ();
		$this->to = "";
		$this->from = "";
		$this->subject = "";
		$this->body = "";
		$this->headers = "";
	}
	//        
	function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
		$this->parts [] = array ("ctype" => $ctype, "message" => $message, "encode" => $encode, "name" => $name );
	}
	//  (multipart)
	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\n\n$message\n";
	}
	
	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";
	}
	
	//  ,    
	function send() {
		$mime = "";
		if (! empty ( $this->from ))
			$mime .= "From: " . $this->from . "\r\n";
		if (! empty ( $this->headers ))
			$mime .= $this->headers . "\r\n";
		if (! empty ( $this->body ))
			$this->add_attachment ( $this->body, "", "text/plain; charset=utf-8" );
		$mime .= "MIME-Version: 1.0 \r\n" . $this->build_multipart ();
		$this->subject = "=?UTF-8?B?".base64_encode($this->subject)."?=";
		return mail ( $this->to, $this->subject, "", $mime );
	}
}
?> 

<?php 
//例子
/*
$attachment = fread ( fopen ( "upload/200901/4az0xokifcu6k.jpg", "r" ), filesize ( "upload/200901/4az0xokifcu6k.jpg" ) );
$mail = new mime_mail ( );
$mail->from = "my@e-mail.com";
$mail->headers = "Errors-To: [EMAIL=my@e-mail.com]my@e-mail.com[/EMAIL]";
$mail->to = "conkeyn@163.com";
$mail->subject = "PHP atachment";
$mail->body = "Get your file!";
$mail->add_attachment ( "$attachment", "4az0xokifcu6k.jpg", "Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAgEASABIAAD/7QT+UGhvdG9zaG" );
$mail->send ();
*/
?>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值