当前位置:首页 » 编程语言 » php匹配邮箱

php匹配邮箱

发布时间: 2023-11-12 07:30:00

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 '邮箱格式错误!';
}
?>

㈡ PHP输入邮箱,最后如何显示邮箱的类型

通过正则匹配获取到@后面的后缀。

然后就是根据写好的字典进行选择,比如qq. com 就是腾讯邮箱,如果是126.com 就是网易邮箱,如此类推。

㈢ 如何通过一个php程序给不同的邮箱发送不同的邮件

1.需要一个用来发送电子邮件的文件的程序,也就是一个php文件,流行的phpmail有很多,今天以smtp.php为例演示。
2.将其复制到你的项目文件内,具体路径根据自己的实际情况,这里建了一个test文件,用来设置邮件参数,大家也可以自定义邮件参数文件。(PS:一般都是通过表单接受的)
3.smtp.php文件引入。
4.设置邮件参数,具体代码如下:
//引入发送邮件类
require("smtp.php");
$smtpserver = "smtp.163.com";
$smtpserverport = 25;
//你的163服务器邮箱账号
$smtpusermail = "@163.com";
//收件人邮箱
$smtpemailto = "@qq.com";
//你的邮箱账号(去掉@163.com)
$smtpuser = "";//SMTP服务器的用户帐号
//你的邮箱密码
$smtppass = ""; //SMTP服务器的用户密码
5.设置邮件内容,代码如下:
//邮件主题
$mailsubject = "测试邮件发送";
//邮件内容
$mailbody = "PHP+MySQL";
//邮件格式(HTML/TXT),TXT为文本邮件
$mailtype = "TXT";
//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);
//是否显示发送的调试信息
$smtp->debug = TRUE;
//发送邮件
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);
刷新页面后邮件发送,参数不出错的话1分钟左右即可发送成功。
至于发几个人,如何发自己定义下就行

㈣ 在PHP里面if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))表示是什么意思

这是正则表达式,匹配的是邮箱的格式,用来判定你输入的邮箱是否合法

㈤ 邮箱正则表达式+正则基本知识点

一般程序员的姿势

正则表达式正确的运用姿势

今天来搞几个邮箱正则表达式,匹配多级域名,包括中文域名

从上图可以得出,除去“.”号,域名既有英文(最多是6个字符),也有中文(最多是3个汉字)
而现在有很多影子邮箱/百变邮箱,是使用二级域名或者三级域名,所以,我们先列举如下几个邮箱,然后写一个正则表达式,去匹配、判断

不管是什么邮箱,确定会有的字符是“@”和至少一个“.”(这里特指最后一个),那么我们就以这两个确定的符号为分界点,将每个邮箱拆分成3段,对每一段进行正则匹配,最终组成整个邮箱的正则匹配。当然进入下一步之前,先理一理基本知识点。

定义:一个正则可以匹配的字符串的长度不是固定的,使用量词可以达到这种目的。

量词:比如{m , n} :表示连续出现最少 m 次,最多 n 次;跟在一个字符的后面就表示对该字符的限定。

比如邮箱的校验:/^w+@[a-z0-9]+.[a-z]{2,4}$/,写在了[a-z]后面,表示可以有2到4位的字母

又比如手机号的校验: /^1[3456789]d{9}$/,跟在了d后面,表示需要出现9个数字

对于量词的总结:

定义:正则匹配的字符串对于某一位置上的字符来说,它可以有多种可能,不局限于某一类型,使用字符组可以达到这种目的。

字符组:比如[abc],表示该字符是可以字符 "a"、"b"、"c" 中的任何一个。对于这一位置来说,我们可以有3种可能性。

比如手机号的校验: /^1[3456789]d{9}$/,它在第二个位置,根据一般手机运营商来说,提供手机第二位的数字可以是3到9的任意一个,才符合规范。

如果字符组里表示的字符特别多,可以使用范围表示法,用连字符-来省略和缩写。

比如邮箱的校验:/^w+@[a-z0-9]+.[a-z]{2,4}$/,它跟在@后面,根据我们邮箱的规范可知,@后面的 [a-z0-9]+ 表示:数字0到9和字母a-z中的至少一个字符

这里简单解析一下:

对于js正则: ([a-z]{2,6}|[u2E80-u9FFF]{2,3})

js正则的中文汉字正则表达式来源于手册: https://tool.oschina.net/uploads/apidocs/jquery/regexp.html

对于php正则: ([a-z]{2,6}|[x7f-xff]{6,9})

在utf-8编码中,用ASCII码表中的第128~255编码中的3个编码表示一个汉字,这里用十六进制表示

验证一下:

运行结果:

运行结果

全部通过

当然,php正则匹配邮箱,还可以这样子

原理与 /^w+@([da-z.-]+).([a-z]{2,6}|[x7f-xff]{6,9})/ 类似。

最后,上面的几个正则表达式是居于当前市面上现存的域名进行匹配的,下面提供几个更加宽松的邮箱正则匹配

原理都相似,可以对照理解下。如有误,欢迎留言区批评指正。

㈥ 如何用PHP里的IMAP函数,实现邮件的发送,希

//以腾讯企业邮箱做了测试
$mailServer="imap.exmail.qq.com";//IMAP主机
$mailLink="{{$mailServer}:143}INBOX";//imagp连接地址:不同主机地址不同
$mailUser='***';//邮箱用户名
$mailPass='***';//邮箱密码
$mbox=imap_open($mailLink,$mailUser,$mailPass);//开启信箱imap_open
$totalrows=imap_num_msg($mbox);//取得信件数
for($i=1;$i<$totalrows;$i++){
$headers=imap_fetchheader($mbox,$i);//获取信件标头
$headArr=matchMailHead($headers);//匹配信件标头
$mailBody=imap_fetchbody($mbox,$i,1);//获取信件正文
}
/**
*
*匹配提取信件头部信息
*@paramString$str
*/
functionmatchMailHead($str){
$headList=array();
$headArr=array(
'from',
'to',
'date',
'subject'
);
foreach($headArras$key){
if(preg_match('/'.$key.':(.*?)[ ]/is',$str,$m)){
$match=trim($m[1]);
$headList[$key]=$key=='date'?date('Y-m-dH:i:s',strtotime($match)):$match;
}
}
return$headList;
}

㈦ PHP用正则表达式做注册页面

// 定义正则表达式
$username_pattern = "/^[a-zA-Z0-9_-]{3,16}$/"; // 用户名必须是 3-16 位英文字母、数字、下划线或短横线
$password_pattern = "/^[a-zA-Z0-9_-]{6,18}$/"; // 密码必须是派竖型 6-18 位英文字母、数字、下划线或短横线
$email_pattern = "/^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$/"; // 邮箱必须符合常规格式
// 获取表单数据
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
// 验证用户名
if (!preg_match($username_pattern, $username)) {
echo "用户名不合法";
exit;
}
// 验证密码尘猜
if (!preg_match($password_pattern, $password)) {
echo "密码不合法";
exit;
}
// 验证邮箱
if (!preg_match($email_pattern, $email)) {
echo "邮箱不合法";
exit;
}
// 如果所有表单数据都合法,就将数据纤老插入数据库或执行其他操作
上述代码中,使用了 PHP 的 preg_match 函数来进行正则表达式匹配。如果正则表达式匹配成功,函数返回 1,否则返回 0。通过判断返回值来确定表单数据是否合法。
当然,这只是一个示例,具体的正则表达式和表单验证逻辑需要根据实际情况进行调整。

㈧ 一个验证邮箱格式是否正确的php函数的例子

//首先确认是否有一个@符号的存在,同时验证邮箱长度是否正确 if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { //如果@符号的个数不对,或者邮箱每部分的长度不对则输出错误 return false;}//把邮箱按“@”符号和“.”符号分割成几个部分分别用正则表达式匹配 $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false;}}if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { //检查域名部分是否是IP地址,如果不是则应该是有效域名 $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { //域名部分的长度不能太短,否则输出错误 return false; } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { //域名部分如果不是字母和数字,或者允许的其他字符,则输出错误 return false;}}} //所有检测通过,输出邮箱格式正确 return true; }?><?//邮箱格式验证函数调用示例if(!valid_email($myeml)){

㈨ php mail函数到底怎么配置

你要用mail就得用smtp服务软件,然后配送smtp的用户名和密码,端口号,然后在php mail的配置文件里配置一下SMTP的地址,用户名密码端口号等。

㈩ PHP中如何实现手机号或邮箱登录高手指点

是否是用户注册时,填写手机和邮箱还有密码,手机号和邮箱在表不同字段下,而登录时只需要在一个输入框填写,实现无论手机号还是邮箱都能登录是吗?
简单笨点的方法就是取到这个值,分别和手机号字段\邮箱字段匹配,找到了就是这个用户,没找到就是手机号或邮箱错误.
在一个方法,这个值在控制层表单验证时判断是否是正确的手机号,或者邮箱,然后判断后去进行用户验证就可以了啊

热点内容
requestdatapython 发布:2025-01-31 08:02:01 浏览:44
javades加密工具 发布:2025-01-31 07:54:04 浏览:244
电话如何配置ip 发布:2025-01-31 07:48:48 浏览:300
2021奔驰e300l哪个配置性价比高 发布:2025-01-31 07:47:14 浏览:656
sqlserver2008光盘 发布:2025-01-31 07:32:13 浏览:578
sql查询小时 发布:2025-01-31 07:23:00 浏览:423
新车鉴别时怎么查看汽车配置 发布:2025-01-31 07:19:37 浏览:881
linux驱动程序开发 发布:2025-01-31 06:56:03 浏览:771
nlms算法 发布:2025-01-31 06:55:56 浏览:900
结束服务器怎么操作 发布:2025-01-31 06:54:17 浏览:394