1. php如何实现邮箱验证
这是一个可以发送邮件的程序。程序是直接使用SMTP协议进行发送,用到了经典的phpMailer库。
请阅读apply.php文件。
发邮件之前你需要一个用来发送邮件的邮箱账号。但不能使用这个账号发送太多的邮件,否则会被当做垃圾邮件屏蔽。如果发送量较大,可以多申请几个邮箱。
关键变量说明:
subject: 邮件的主题
email: 邮件的内容
host: SMTP主机,与你申请的邮箱的服务商有关,详见代码内注释
fromname: 发件人的名字,可以任意写,对方收到时能看到这个名字
from: 发件人地址
to: 收件人地址,代码中写了$to = $from,请自行更改
username和password: 你邮箱的账号和密码,一般username都等于发件人地址。必须提供,否则无法发送邮件。
PHPMailer说明:
$mailer = new PHPMailer(true);
$mailer->IsHTML(true); // 这是一封HTML邮件
$mailer->IsSMTP(true); // 连接SMTP服务发送邮件
# $mailer->SMTPDebug = true; // 是否开启调试模式
$mailer->CharSet = 'UTF-8'; // 邮件内容的编码,和你程序的编码保持一致
$mailer->Encoding = 'base64'; // 邮件传递过程使用的编码
$mailer->FromName = $fromname; // 发件人
$mailer->Host = $host; // SMTP服务地址
$mailer->AddAddress($to); // 添加收件人
$mailer->From = $from; // 设置发件人
$mailer->Subject = $subject; // 设置主题
$mailer->MsgHTML($email); // 设置HTML邮件内容
$mailer->SMTPAuth = true; // 开启SMTP验证
$mailer->Username = $username; // 设置用户名
$mailer->Password = $passwd; // 设置密码
$mailer->Send(); // 发送邮件
2. 关于php正则验证邮箱
[-+.]这里面的+好像是不行的吧[-.]
(qq)|(yahoo)|(souhu)|(sina)|(gmail)|(hotmail)|(21cn)要写成(qq|yahoo|souhu|sina|gmail|hotmail|21cn)
{1}这个是多余的
同样(com)|(cn)要写成(com|cn)
^\w+([-.]\w+)*@(126|139|163|qq|yahoo|souhu|sina|gmail|hotmail|21cn)\.(com|cn)$
另外此正则不能精确匹配,如你本来是要匹配163.com的邮箱,但163.cn也可以匹配了
再改造如下
^\w+([-.]\w+)*@(126\.com|139\.com|163\.com|qq\.com|yahoo\.com|sohu\.com|sina\.cn|gmail\.com|hotmail\.com|21cn\.cn)$
这些.com/.cn是我瞎写的,你可以自己整理一下
3. php邮件发送验证码问题
你的if语句有问题
肢解开来是这样的
if(存在验证码)
{
if(验证码不正确)
{
提示错误
}
else
{
发送邮件
}
}
然后不存在验证码没有相关操作。。。
4. 有一个“PHP用户注册邮箱验证激活帐号”代码 运行时报错请给修复
[email protected]
你发的代码没有错, 但里面没有数据库的链接啊!
你要根据你自己的具体情况, 填写数据库链接参数, 并建立相应的数据库啊!
5. PHP中如何实现常用邮箱的基本判断
<?php
//封装邮箱验证函数
function check_email($email){
if (ereg('^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+',$email)){
return true;
}else{
return false;
}
}
//调用示例
$email="[email protected]";
$re=check_email($email);
if($re){
echo "邮箱格式正确!";
}else{
echo "错误格式!";
}
?>
运行结果:邮箱格式正确
6. PHP邮件验证找回密码
给你举个例子, 就拿找回密码来说吧.
当用户请求找回密码的时候, 用户根据用户提供的用户名或邮箱到数据库查找这个用户的信息, 如果相关用户名或者邮箱存在就可以进行密码找回, 如果不存在提示用户输入错误.
当在数据库中找到相关记录的时候, 首先要生成一个随机的验证码(这里我们假设生成了ABCDE), 将验证码,请求时间和相关用户信息(可能只是用户id或者也可以将验证码存在用户信息表中)存到数据库中, 然后想记录中的邮箱发送一封信, 信中提供一个验证码或者携带验证码的url类似这样,a.php?code=ABCDE.
用户如果是这个邮箱的所有者就可以收到这封信, 点击链接访问a.php ?code=ABCDE, a.php 接到code=ABCDE 然后到数据库里查找这个找回密码的请求, 并取得用户相关信息然后提供一个表单用来修改密码.
用户输入新密码之后程序根据验证码和新密码将指定用户的密码修改掉.
7. php验证邮箱格式
PHP正则表达式验证邮箱示例如下:
<?php
$email='[email protected]';
$pattern="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
if(preg_match($pattern,$email)){
echo '邮箱验证通过!';
} else{
echo '邮箱格式错误!';
}
?>
8. PHP如何通过SMTP验证发送邮件
PHP mail()与SMTP验证
缺乏灵活性是PHP的mail()函数显得过于简单的部分原因。最重要而且令人沮丧的是,死板的mail()函数通常还不允许你使用你选择的SMTP服务器,并且它也根本不支持如今已被众多邮件服务器采用的SMTP验证。
幸运的是,克服PHP本身的缺陷既不困难,也不麻烦,更不痛苦。对于大多数情况下的邮件应用,免费的PEAR Mail包足够提供全部的所需功能与灵活性,并且它也能够与你期望的外部邮件服务器进行验证。在提高安全性的方面,它也支持SSL连接。
通过SMTP验证在PHP脚本中发送邮件
在PHP脚本中通过SMTP验证连接外部SMTP服务器并且发送邮件的方法如下:
确保PEAR Mail包已经安装。
通常,它已经安装到了PHP之中,尤其在PHP 4及以后的版本中。放手一试吧。
<?php
require_once"Mail.php";
$from="SandraSender<s>";
$to="RamonaRecipient<r>";
$subject="Hi!";
$body="Hi, Howareyou?";
$host="mail.example.com";
$username="smtp_username";
$password="smtp_password";
$headers=array('From'=>$from,
'To'=>$to,
'Subject'=>$subject);
$smtp=Mail::factory('smtp',
array('host'=>$host,
'auth'=>true,
'username'=>$username,
'password'=>$password));
$mail=$smtp->send($to,$headers,$body);
if(PEAR::isError($mail)){
echo("<p>".$mail->getMessage()."</p>");
}else{
echo("<p>Messagesuccessfullysent!</p>");
}
?>
9. PHP 验证邮箱输入格式错误的
你的正则没什么问题的,我测了下是可以判断的,另外给一个我们项目中通用的表单验证,很好扩展:
http://..com/question/150844190.html
测试代码:
<script>
function validate()
{
var pattern=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]w+)*$/;
var email = document.getElementById("mail").value;
if(!pattern.test(email))
alert("Wrong");
else
alert('Right')
}
</script>
<INPUT TYPE="text" NAME="mail" ID="mail">
<INPUT TYPE="button" VALUE="" ONCLICK="validate()">
10. PHP怎么实时验证邮箱是否被注册了
比如用jquery实现:
$(document).ready(function(){
$.ajax({
type:"GET",
url:"*.php处理路径="+ name;(如果有中文,escape(name))
dataType:""
success:function(msg)
{
alert(msg);//是否存在
},
});