php发送邮件(mail)的类
$header。
$this-strip_comment($to)); if ($cc != ) { $TO = array_merge($TO, ,25,[email protected], 512); $this-log_write(Error: Remote host returned \.$response.\\n); return FALSE; } return TRUE; } function smtp_putcmd($cmd, explode(,, $subject = 。
$from, $cc = , \\1.\\3。
php发送邮件(mail)的类 复制代码 代码如下: ?php class smtp { /* Public Variables */ var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; /* Private Variables */ var $sock; /* Constractor */ function smtp($relay_host = , \r\n.\r\n); $this-smtp_debug(. [EOM]\n); return $this-smtp_ok(); } function smtp_ok() { $response = str_replace(\r\n, $response)) { fputs($this-sock, $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(^.+@([^@]+)$。
LOCK_EX); fputs($fp, a))) { $this-smtp_debug(Warning: Cannot open log file \.$this-log_file.\\n); return FALSE; } flock($fp, $address); } return $address; } function get_address($address) { $address = ereg_replace(([ \t\r\n])+。
$arg = ) { if ($arg != ) { if($cmd==) $cmd = $arg; else $cmd = $cmd. .$arg; } fputs($this-sock,$smtpusermail。
512)); $this-smtp_debug($response.\n); if (!ereg(^[23], $this-smtp_port, $smtp_port = 25, $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(,$user。
\\1, $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, $helo)) { return $this-smtp_error(sending HELO command); } #auth if($this-auth){ if (!$this-smtp_putcmd(AUTH LOGIN, $additional_headers = ) { $mail_from = $this-get_address($this-strip_comment($from)); $body = ereg_replace((^|(\r\n))(\\.), $mailsubject, $cmd.\r\n); $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。
, $address); if (!@getmxrr($domain, base64_encode($this-user))) { return $this-smtp_error(sending HELO command); } if (!$this-smtp_putcmd(,$pass) { $this-debug = FALSE; $this-smtp_port = $smtp_port; $this-relay_host = $relay_host; $this-time_out = 30; //is used in fsockopen() # $this-auth = $auth;//auth $this-user = $user; $this-pass = $pass; # $this-host_name = localhost; //is used in HELO command $this-log_file = ; $this-sock = FALSE; } /* Main Function */ function sendmail($to,$auth = false, $header, $header.\r\n.$body); $this-smtp_debug(; .str_replace(\r\n。
$body)) { $this-log_write(E-mail has been sent to .$rcpt_to.;\n); } else { $this-log_write(Error: Cannot send email to .$rcpt_to.;\n); $sent = FALSE; } fclose($this-sock); $this-log_write(Disconnected from remote host\n); } return $sent; } /* Private Functions */ function smtp_send($helo,$smtpemailto, $sec) = explode( ,$smtpuser, $smtpusermail, $to,title,, $body) { fputs($this-sock,true, \\1, $address); $address = ereg_replace(^.*(.+);.*$。
TO:.$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 = , fgets($this-sock, $body); $header .= MIME-Version:1.0\r\n; if($mailtype==HTML){ $header .= Content-Type:text/html\r\n; } $header .= To: .$to.\r\n; if ($cc != ) { $header .= Cc: .$cc.\r\n; } $header .= From: $from.$from.;\r\n; $header .= Subject: .$subject.\r\n; $header .= $additional_headers; $header .= Date: .date(r).\r\n; $header .= X-Mailer:By Redhat (PHP/.phpversion().)\r\n; list($msec。
$body = ) { if (!$this-smtp_putcmd(HELO,$smtpuser, $message); fclose($fp); return TRUE; } function strip_comment($address) { $comment = \\([^()]*\\); while (ereg($comment, $mailbody){ $smtp = new smtp($smtpserver, $MXHOSTS).)\n); return FALSE; } function smtp_message($header, FROM:.$from.;)) { return $this-smtp_error(sending MAIL FROM command); } if (!$this-smtp_putcmd(RCPT, $this-strip_comment($cc))); } if ($bcc != ) { $TO = array_merge($TO, $rcpt_to, $errstr,$smtppass, HTML); } //such as //sendmail(smtp.126.com, microtime()); $header .= Message-ID: .date(YmdHis, $mail_from,[email protected], $body)) { return $this-smtp_error(sending message); } if (!$this-smtp_eom()) { return $this-smtp_error(sending CR;LF;.CR;LF; [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, $header.\n; .$body.\n; )); return TRUE; } function smtp_eom() { fputs($this-sock, ,[email protected]。
$from, $bcc = ,password, \n.; , QUIT\r\n); fgets($this-sock, $sec)...($msec*1000000)...$mail_from.;\r\n; $TO = explode(, $mailtype。
base64_encode($this-pass))) { return $this-smtp_error(sending HELO command); } } # if (!$this-smtp_putcmd(MAIL,,body); ? 。
$errno, , $address)) { $address = ereg_replace($comment,$smtppass); //$smtp-debug = TRUE; $smtp-sendmail($smtpemailto, $mailsubject, $address); return $address; } function smtp_debug($message) { if ($this-debug) { echo $message; } } } function sendmail($smtpserver, explode(, $this-smtp_port, $mailbody, $errstr。
$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。
$errno,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/shell/10461.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Centos下PHP5升级为PHP7的方法
时间:2021-01-03
-
在php当中常量和变量的区
时间:2020-12-29
-
PHP中经典的四大排序算法
时间:2020-12-29
-
dw怎么运行php文件?
时间:2020-12-29
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
Python3爬虫进阶:MongoDB存储
时间:2020-12-29
-
python如何运行一个python程
时间:2020-12-29
-
用PHP写一个计算器(附完
时间:2020-12-29
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
php文档怎么打开
时间:2020-12-29
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
浅谈Linux Shell的管道与重定向
时间:2020-12-23
-
如何检测Django是否安装成功
时间:2020-12-29
-
tp5如何引入公共部分header和footer文件
时间:2020-12-28
-
东北大学校园网登录登出shell脚本
时间:2020-12-24
