保持输入较少的内容但尽量获取更多的信息的原则
获取当前的URL和来源的URL的方法
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>获取当前的URL和来源的URL的方法</title> </head> <body> <script> var fromurl = document.referrer; var nowurl = document.URL; document.writeln("来源的URL:"+fromurl+"<br>"); document.writeln("当前的URL:"+nowurl); </script> </body> </html>
效果图:
开始发送邮箱
<meta charset="UTF-8"> <?php if(!$_POST){ exit; } require_once "email.class.php"; $smtpserver = "smtp.163.com"; $smtpserverport =25; $smtpusermail = "onestopweb@163.com";//发送人 $smtpemailto = "onestopweb@qq.com";//接收人 $smtpuser = "onestopweb"; $smtppass = "123456"; $mailtype = "HTML"; $genre = strFilter($_POST['genre']);//类别 $username = strFilter($_POST['username']);//姓名 $tel = strFilter($_POST['tel']);//电话 $datetime = strFilter($_POST['datetime']);//日期时间 $fromurl = strFilter($_POST['fromurl']);//来源URL $nowurl = strFilter($_POST['nowurl']);//当前的URL function strFilter($str){ //过滤HTML的标记和分号 $str = str_replace('\'', ''', $str); $str = str_replace('\'', ''', $str); $str = str_replace('\\', '', $str); $str = str_replace('"', '"', $str); $str = str_replace('<', '<', $str); $str = str_replace('>', '>', $str); return trim($str); } $mailtitle = $username."发送邮箱"; $mailcontent = "<style>.guahao{ width:100%; border-top:1px solid #333; border-left:1px solid #333;}.guahao td{ border-bottom:1px solid #333; border-right:1px solid #333; padding:0 8px; width:50%;}.guahao tr:nth-child(even){ background:#ffc;}</style>"; $mailcontent .= '<table cellpadding="0" cellspacing="0" class="guahao">'; $mailcontent .= '<tr><td colspan="2" align="center" style="font-weight:bold;">'.$username.'发送邮箱</td></tr>'; $mailcontent .= '<tr><td align="right">类 别:</td><td>'.$genre.'</td></tr>'; $mailcontent .= '<tr><td align="right">姓 名:</td><td>'.$username.'</td></tr>'; $mailcontent .= '<tr><td align="right">电 话:</td><td>'.$tel.'</td></tr>'; $mailcontent .= '<tr><td align="right">日 期:</td><td>'.$datetime.'</td></tr>'; $mailcontent .= '<tr><td align="right">来源URL</td><td>'.$fromurl.'</td></tr>'; $mailcontent .= '<tr><td align="right">当前URL</td><td>'.$nowurl.'</td></tr>'; $mailcontent .= '</table>'; $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证. $smtp->debug = false;//是否显示发送的调试信息 $state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype); echo "<div style='width:300px; margin:36px auto;'>"; if($state==""){ echo "对不起,信息提交失败!请检查信息是否填写完整。"; echo "<script type='text/javascript'>alert('对不起,信息提交失败,请重新填写信息。');location.href='".$nowurl."';</script>"; exit(); } echo "恭喜!信息提交成功。"; echo "<script type='text/javascript'>alert('恭喜!信息提交成功。');location.href='".$nowurl."';</script>"; echo "</div>"; ?>
效果图:
email.class.php 是发邮箱方法的核心,网上有
<?php class Smtp { var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; var $sock; function Smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass) { $this->debug = FALSE; $this->smtp_port = $smtp_port; $this->relay_host = $relay_host; $this->time_out = 3600; $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("(^|(\r\n))(\.)", "\1.\3", $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, $sec) = explode(" ", microtime()); $header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n"; $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 <".$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; } function smtp_send($helo, $from, $to, $header, $body = "") { if (!$this->smtp_putcmd("HELO", $helo)) { return $this->smtp_error("sending HELO command"); } if($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:<".$from.">")) { return $this->smtp_error("sending MAIL FROM command"); } if (!$this->smtp_putcmd("RCPT", "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)) { 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, $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."\r\n".$body); $this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> ")); return TRUE; } function smtp_eom() { fputs($this->sock, "\r\n.\r\n"); $this->smtp_debug(". [EOM]\n"); return $this->smtp_ok(); } function smtp_ok() { $response = str_replace("\r\n", "", fgets($this->sock, 512)); $this->smtp_debug($response."\n"); if (!ereg("^[23]", $response)) { fputs($this->sock, "QUIT\r\n"); 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."\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, "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("([ \t\r\n])+", "", $address); $address = ereg_replace("^.*<(.+)>.*$", "\1", $address); return $address; } function smtp_debug($message) { if ($this->debug) { echo $message; } } } ?>
相关推荐
PHPMailer是一个广泛使用的开源邮件发送类,它支持SMTP验证、HTML邮件、附件等多种功能,使得开发者能够方便地在PHP应用中添加邮件发送功能。 首先,让我们了解一下PHPMailer的核心概念。PHPMailer支持通过SMTP协议...
最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送。下面用qq邮箱作为演示,一步一步来解释: 代码下载地址 首先,就是做到邮件的发送,代码如下: <?PHP //邮件发送 require './mailer/class....
本文将深入探讨如何使用PHP实现邮件发送功能,重点是包含附件的邮件发送。我们将基于PHP的`PHPMailer`库进行讨论,这是一个强大且广泛使用的邮件发送类。 `PHPMailer`是一个开源的PHP类库,它提供了丰富的功能,...
1. PHPMailer库:PHPMailer是一个广泛使用的PHP类库,它提供了完整的邮件发送功能,包括使用SMTP服务器进行验证和加密。通过使用PHPMailer,我们可以方便地添加发件人、收件人、主题和邮件正文,并设置抄送和密送。 ...
PHPMailer是一个流行的PHP库,专门用于帮助开发者轻松地完成邮件发送功能。这个压缩包“php实现邮件发送(内含PHPMailer).zip”显然包含了使用PHPMailer库来发送邮件的相关代码示例。 PHPMailer库提供了丰富的功能...
- 在调试时,这个文件可以作为测试邮件发送功能的入口。 为了使用这些文件,你需要了解`mail.class.php`类的API,包括构造函数、设置属性、方法等,并在`sendmail.php`中正确地实例化和调用。确保根据你的需求配置...
本文将深入探讨如何使用PHP实现邮件发送功能,重点是介绍一个无需额外组件支持的SMTP邮件发送类。 首先,我们来看`mail.inc.php`这个文件,它通常包含一个名为`Mail`的类,该类封装了邮件发送的相关逻辑。在这个类...
标题"php发送邮件,php发送邮件插件"指的是使用PHPMailer这个库来实现邮件的发送功能。PHPMailer是一个强大的邮件发送库,它支持SMTP验证,可以发送HTML邮件,甚至可以添加附件,极大地增强了PHP处理邮件的能力。 ...
本文将详细探讨如何使用PHP实现发送邮件的功能,这在许多网站应用中是必不可少的,例如用户注册验证、忘记密码重置提醒等场景。 首先,要发送邮件,PHP需要借助一个叫做"PHPMailer"的库,这是一个广泛使用的邮件...
PHPMailer 是一个全功能的 PHP 邮件发送类库,支持多种邮件发送方式(包括SMTP),并可以发送HTML格式的邮件。它提供了丰富的API,使得开发者能够轻松地构建复杂的邮件发送逻辑。 #### 三、代码解析 下面我们将对...
PHP实现发送邮件的功能; 不受服务器空间的影响,在任何PHP环境下都能发送邮件; 用的wp的发送邮件的类库; 需要准备一个发件箱和收件箱,发件箱的用户名密码需要写在程序里面 使用方法:进入email.php ,修改$mail-...
本文将深入探讨如何使用PHP通过SMTP实现邮件发送,并结合提供的“phpmailer邮件发送示例”进行详细讲解。 首先,我们需要理解SMTP是什么。SMTP是互联网上传输电子邮件的标准协议,它允许程序将邮件发送到指定的邮件...
echo '邮件发送失败:' . $mail->ErrorInfo; } else { echo '验证码已发送,请查收邮箱'; } ``` 以上就是使用PHP发送QQ邮箱验证码的基本流程。实际应用中,你可能还需要处理验证码的生成、存储、过期和验证等一...
在PHP中,使用QQ邮箱发送邮件是一个常见的任务,尤其对于网站通知、...通过理解以上概念和步骤,你可以使用PHP结合QQ邮箱实现邮件发送功能。这个压缩包中的代码将提供具体实现的参考,有助于你在实际项目中快速上手。
首先获取当前时间戳,然后从数据库中查询设置的邮件发送条件,如邮件标题、内容、小时和分钟字段以及是否开启自动发送功能的标志。以下是一个简单的查询示例: ```php $now_time = time(); $one_data = "SELECT `...
本篇文章将详细探讨如何在PHP中实现邮件发送功能,以及在实际项目开发中的应用。 首先,我们需要了解PHP中的邮件发送原理。PHP的mail()函数是内置的邮件发送功能,它允许开发者直接通过服务器的SMTP(Simple Mail ...
在PHP中实现一个用于发送邮件的类,特别是与Gmail邮箱集成,是常见的需求,尤其在网站通知、用户注册验证或客户服务中。...通过这种方式,我们可以轻松地在PHP应用中实现高效、可靠的邮件发送功能。
总结来说,使用PHP发送邮件,特别是带有附件的邮件,推荐使用PHPMailer这样的库,结合QQ邮箱的SMTP服务,可以轻松实现功能并确保邮件发送的可靠性。通过正确配置和使用这些工具,你可以构建出高效且稳定的邮件系统。