php 发邮件 上传附件,php实现邮件发送并带有附件

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($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: base64\n";

$out = $out . "content-disposition: attachment; filename=\"$downfilename\"\n\n";

$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);

} www.jb51.net

function write_body($msgtext) {

$out = "--" . $this->mime_boundary . "\n";

$out = $out . "content-type: text/plain; charset=\"us-ascii\"\n\n";

$out = $out . $msgtext . "\n";

return $out;

}

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\n";

return $out;

}

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;

}

}

/*用法 - 例如:mimetype 为 "image/gif"

$mailfile = new cmailfile($subject,$sendto,$replyto,$message,$filename,$mimetype);

$mailfile->sendfile();

$subject -- 主题

$sendto -- 收信人地址

$replyto -- 回复地址

$message -- 信件内容

$filename -- 附件文件名

$downfilename -- 下載的文件名

$mimetype -- mime类型

*/

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值