大家好,我是公众号3分钟学堂的郭立员~
这期我们来做个邮箱验证功能,就是脚本激活的时候会往指定邮箱发送验证码,用户通过邮箱得到验证码,填入到脚本界面激活脚本。
先来看看效果展示,如下图所示:
这个脚本主要用到以下几个功能:
①界面内容的修改
②文本的读写
③发送邮件功能
基本上就是这些命令,做脚本的时候发现它的难点不在于命令的使用,而是整个脚本逻辑规划。
这个脚本有2个按钮,分别实现发送邮件功能和判断验证码是否正确的功能。
验证码是6位随机数字,发送给用户邮箱的同时写入到手机(模拟器)中,激活脚本时验证用户填写的验证码是否和本地存储的一致。
这里面要判断很多“意外”情况:
①用户是否激活过脚本,防止二次激活
通过本地是否有存储验证码的文本来判断有没有发过邮件;
通过本地是否有存储激活时间的文本来判断有没有激活脚本;
②用户是否填写了正确的邮箱
查找输入框内是否有@字符,通过@前面字符数量稍微判断一下是否为正常邮箱。
③用户是否填写正确的验证码
判断验证码的输入框填写内容是不是6位数字。
④邮件格式,通过\n进行换行。
下面是我写的源码:
Function 获取验证()
Dim path="/sdcard/pictures/code.txt"
If Dir.Exist(path) = 0 Then
Dim inmail=uip.GetAttribute("输入框1")
If Len(inmail["初始文本"]) = 0 or instr(1,inmail["初始文本"],"@")<5 Then
ShowMessage "请填写正确的邮箱!"
Else
Dim code=RndCode()
Dim mail=inmail["初始文本"]
file.write (path, code)
If sentmsg(mail, code) Then
ShowMessage "激活码已经发送,请尽快登录邮箱查看!"
End If
End If
Else
showmessage "已经激活过脚本"
End If
End Function
Function 激活脚本()
Dim path="/sdcard/pictures/code.txt"
Dim path_time="/sdcard/pictures/time.txt"
Dim incode=uip.GetAttribute("输入框2")
If Dir.Exist(path_time) = 1 Then
showmessage "该设备已经激活过脚本"
Exit Function
End If
If Dir.Exist(path) = 0 Then
ShowMessage "先完成邮箱激活"
Else
If Len(incode["初始文本"]) <> 6 Then
ShowMessage "请填写正确验证码"
Else
Dim code=file.read(path)
If incode["初始文本"] = code Then
ShowMessage "激活成功!"
UIP.SetAttribute "按钮2", {"显示内容":"已激活!"}
file.write(path_time,time())
Else
showmessage "验证码错误!"
End If
End If
End If
End Function
Function RndCode()
Dim str=""
For 6
str=str&int(10*rnd())
Next
RndCode=str
End Function
Function sentmsg(mail,code)
Dim 服务器="smtp.qq.com"
Dim 发件人邮箱="xxxxxx@qq.com"
Dim 密码="xxxxxxxxxx"
Dim 主题="XX脚本验证!"
Dim 内容="您好!\n欢使用册XX脚本,请将验证码填写到脚本激活页面,\n验证码:"&code
Dim 收件地址=mail
dim 返回值 = SendSimpleEmail(服务器,发件人邮箱,密码,主题,内容,收件地址)
sentmsg= 返回值
End Function
这个脚本可以用在测试版,给用户免费试用,同时限制用户反复激活,需要注意一点就是本地存储验证的文本,尽量藏得隐蔽点,以防用户手动删除,然后可以反复多次试用脚本。
好了内容就这些,觉得还行帮忙给文章点个赞。
=正文完=
声明:本站资源来自会员发布以及互联网公开收集,不代表本站立场,仅限学习交流使用,请遵循相关法律法规,请在下载后24小时内删除。 如有侵权争议、不妥之处请联系本站(发送文章标题内容至邮箱77562245@qq.com)删除处理! 请用户仔细辨认内容的真实性,避免上当受骗!