大家好,我是公众号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
复制代码
这个脚本可以用在测试版,给用户免费试用,同时限制用户反复激活,需要注意一点就是本地存储验证的文本,尽量藏得隐蔽点,以防用户手动删除,然后可以反复多次试用脚本。
好了内容就这些,觉得还行帮忙给文章点个赞。
=正文完=