已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
debug = true;$this-smtp_port = $smtp_port;$this-relay_host = $relay_host;$this-time_out = 30;$this-auth = $auth;$this-user = $user;$this-pass = $pass;$this-host_name = localhost;$this-log_file =;$this-sock = FALSE;function sendmail($to, $from, $subject = , $body = , $mailtype, $cc = , $bcc = , $additional_headers = )$mail_from = $this-get_address($this-strip_comment($from);$body = ereg_replace(|(rn)(.), 1.3, $body);$header .= MIME-Version:1.0rn;if($mailtype=HTML)$header .= Content-Type:text/htmlrn; $header .= To: .$to.rn;if ($cc != )$header .= Cc: .$cc.rn;$header .= From: $fromrn;$header .= Subject: .$subject.rn;$header .= $additional_headers;$header .= Date: .date(r).rn;$header .= X-Mailer:By Redhat (PHP/.phpversion().)rn;list($msec, $sec) = explode( , microtime();$header .= Message-ID: rn;$TO = explode(, $this-strip_comment($to); if ($cc != ) $TO = array_merge($TO, explode(, $this-strip_comment($cc);if ($bcc != ) $TO = array_merge($TO, explode(, $this-strip_comment($bcc); $sent = TRUE;foreach ($TO as $rcpt_to) $rcpt_to = $this-get_address($rcpt_to);if (!$this-smtp_sockopen($rcpt_to) $this-log_write(Error: Cannot send email to .$rcpt_to.n);$sent = FALSE;continue;if ($this-smtp_send($this-host_name, $mail_from, $rcpt_to, $header, $body) $this-log_write(E-mail has been sent to n); else $this-log_write(Error: Cannot send email to n);$sent = FALSE;fclose($this-sock);$this-log_write(Disconnected from remote hostn);echo ;echo $header;return $sent; /* Private Functions */ function smtp_send($helo, $from, $to, $header, $body = )if (!$this-smtp_putcmd(HELO, $helo) return $this-smtp_error(sending HELO command);#authif($this-auth)if (!$this-smtp_putcmd(AUTH LOGIN, base64_encode($this-user) return $this-smtp_error(sending HELO command); if (!$this-smtp_putcmd(, base64_encode($this-pass) return $this-smtp_error(sending HELO command);if (!$this-smtp_putcmd(MAIL, FROM:) return $this-smtp_error(sending MAIL FROM command); if (!$this-smtp_putcmd(RCPT, TO:) return $this-smtp_error(sending RCPT TO command); if (!$this-smtp_putcmd(DATA) return $this-smtp_error(sending DATA command); if (!$this-smtp_message($header, $body) return $this-smtp_error(sending message); if (!$this-smtp_eom() return $this-smtp_error(sending . EOM); if (!$this-smtp_putcmd(QUIT) return $this-smtp_error(sending QUIT command); return TRUE; function smtp_sockopen($address)if ($this-relay_host = ) return $this-smtp_sockopen_mx($address); else return $this-smtp_sockopen_relay(); function smtp_sockopen_relay()$this-log_write(Trying to .$this-relay_host.:.$this-smtp_port.n);$this-sock = fsockopen($this-relay_host, $this-smtp_port, $errno, $errstr, $this-time_out);if (!($this-sock & $this-smtp_ok() $this-log_write(Error: Cannot connenct to relay host .$this-relay_host.n);$this-log_write(Error: .$errstr. (.$errno.)n);return FALSE;$this-log_write(Connected to relay host .$this-relay_host.n);return TRUE; function smtp_sockopen_mx($address)$domain = ereg_replace(.+(+)$, 1, $address);if (!getmxrr($domain, $MXHOSTS) $this-log_write(Error: Cannot resolve MX .$domain.n);return FALSE;foreach ($MXHOSTS as $host) $this-log_write(Trying to .$host.:.$this-smtp_port.n);$this-sock = fsockopen($host, $this-smtp_port, $errno, $errstr, $this-time_out);if (!($this-sock & $this-smtp_ok() $this-log_write(Warning: Cannot connect to mx host .$host.n);$this-log_write(Error: .$errstr. (.$errno.)n);continue;$this-log_write(Connected to mx host .$host.n);return TRUE;$this-log_write(Error: Cannot connect to any mx hosts (.implode(, , $MXHOSTS).)n);return FALSE; function smtp_message($header, $body)fputs($this-sock, $header.rn.$body);$this-smtp_debug( .str_replace(rn, n. , $header.n .$body.n ); return TRUE; function smtp_eom()fputs($this-sock, rn.rn);$this-smtp_debug(. EOMn); return $this-smtp_ok(); function smtp_ok()$response = str_replace(rn, , fgets($this-sock, 512);$this-smtp_debug($response.n); if (!ereg(23, $response) fputs($this-sock, QUITrn);fgets($this-sock, 512);$this-log_write(Error: Remote host returned .$response.n);return FALSE;return TRUE; function smtp_putcmd($cmd, $arg = )if ($arg != ) if($cmd=) $cmd = $arg;else $cmd = $cmd. .$arg; fputs($this-sock, $cmd.rn);$this-smtp_debug( .$cmd.n); return $this-smtp_ok(); function smtp_error($string)$this-log_write(Error: Error occurred while .$string.n);return FALSE; function log_write($message)$this-smtp_debug($message); if ($this-log_file = ) return TRUE; $message = date(M d H:i:s ).get_current_user().getmypid().: .$message;if (!file_exists($this-log_file) | !($fp = fopen($this-log_file, a) $this-smtp_debug(Warning: Cannot open log file .$this-log_file.n);return FALSE;flock($fp, LOCK_EX);fputs($fp, $message);fclose($fp); return TRUE; function strip_comment($address)$comment = ()*);while (ereg($comment, $address) $address = ereg_replace($comment, , $address); return $address; function get_address($address)$address = ereg_replace( trn)+, , $address);$address = ereg_replace(.*.*$, 1, $address); return $address; function smtp_debug($message)if ($this-debug) echo $message.; function get_attach_type($image_tag) / $filedata = array(); $img_file_con=fopen($image_tag,r);unset($image_data);while ($tem_buffer=AddSlashes(fread($img_file_con,filesize($image_tag)$image_data.=$tem_buffer;fclose($img_file_con); $filedatacontext = $image_data;$filedatafilename= basename($image_tag);$extension=substr($image_tag,strrpos($image_tag,.),strlen($image_tag)-strrpos($image_tag,.);switch($extension)case .gif:$filedatatype = image/gif;break;case .gz:$filedatatype = application/x-gzip;break;case .htm:$filedatatype = text/html;break;case .html:$filedatatype = text/html;break;case .jpg:$filedatatype = image/jpeg;break;case .tar:$filedatatype = application/x-tar;break;case .txt:$filedatatype = text/plain;break;cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年数字转型促进企业增长项目可行性研究报告及总结分析
- 广告物料宣传协议书
- 工厂签协议没签合同
- 康师傅厂商合同范本
- 工资讨要委托协议书
- 小饭桌与家长协议书
- 工程水电分包协议书
- 广告安全维护协议书
- 工伤赔付协议书范本
- 滑雪场劳务合同范本
- 保管人员基础技能培训手册
- 贵州省黔东南苗族侗族自治州2024-2025学年七年级下学期7月期末数学试题(含部分答案)
- 红十字救护员师资培训试讲
- 京东预算管理制度
- 单片机智能鞋柜控制系统的设计与实现
- 重庆芯片项目商业计划书
- 2025天津市滨海新区辅警考试试卷真题
- 水样采集考试题及答案
- 工艺验证检查指南2025
- 资源与运营管理-第二次形考任务-国开-参考资料
- TCSCP 0006-2024 桥梁钢结构腐蚀程度评价方法
评论
0/150
提交评论