当前位置: 首页 > news >正文

南阳企业网站排名优化百度指数的主要功能有

南阳企业网站排名优化,百度指数的主要功能有,网站域名怎么快速备案,免费网页软件java集成短信服务 注册一个帐号 使用的是容联云,百度搜一下官网 用手机注册一个帐号就行,免费体验不需要认证 注册后会有八块钱送,可以使用免费的给自己设置三个固定手机号发送短信,不需要认证。 此页面的 三个信息需要在代码中…

java集成短信服务

注册一个帐号

使用的是容联云,百度搜一下官网

用手机注册一个帐号就行,免费体验不需要认证
注册后会有八块钱送,可以使用免费的给自己设置三个固定手机号发送短信,不需要认证。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T2UjPY6t-1690897179638)(E:\personboke\blog\source_posts\java集成短信服务\image-20230801213129678.png)]

此页面的 三个信息需要在代码中去进行填写认证

主账户

账户授权令牌

访问的Rest URl

APP id

绑定用于接收短信的手机号

控制台—管理—号码管理—测试号码"绑定 测试号码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T2UjPY6t-1690897179638)(E:\personboke\blog\source_posts\java集成短信服务\image-20230801213129678.png)]

添加maven依赖

jdk要使用8以上

<dependency><groupId>com.cloopen</groupId><artifactId>java-sms-sdk</artifactId><version>1.0.3</version>
</dependency>

测试代码

我们需要把以上四个信息填入,还有接收短信的手机号码验证码需要自己手动生成,(这里使用四位随机整数),然后将这些信息传到短信服务平台帮我们发送。

@Component
public class SendMessage {public static String message(String phone){//返回产生的验证码String code= null;//生产环境请求地址:app.cloopen.comString serverIp = "app.cloopen.com";//请求端口String serverPort = "8883";//主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENString accountSId ="自己的";String accountToken = "自己的";//请使用管理控制台中已创建应用的APPIDString appId = "自己的";CCPRestSmsSDK sdk = new CCPRestSmsSDK();sdk.init(serverIp, serverPort);sdk.setAccount(accountSId, accountToken);sdk.setAppId(appId);sdk.setBodyType(BodyType.Type_JSON);//手机号码String to = phone;String templateId= "1";//使用的模板id//生成四位随机数int random=(int)(Math.random()*10000);code = String.valueOf(random);String[] datas = {code,"2"};//格式:你的验证码是{code},请于{2}分钟内正确输入//HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);if("000000".equals(result.get("statusCode"))){//正常返回输出data包体信息(map)HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");Set<String> keySet = data.keySet();for(String key:keySet){Object object = data.get(key);System.out.println(key +" = "+object);}}else{//异常返回输出错误码和错误信息System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));}return code;}
}

调用方法一并附上防止有看不懂的

package com.atheima.reggie.controller;import com.atheima.reggie.Utils.SendMessageUtils;
import com.atheima.reggie.Utils.ValidateCodeUtils;
import com.atheima.reggie.common.R;
import com.atheima.reggie.common.SendMessage;
import com.atheima.reggie.entity.User;
import com.atheima.reggie.service.UserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.TimeoutUtils;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RedisTemplate redisTemplate;@Autowiredprivate SendMessage sendMessage;@PostMapping("/sendMsg")public R<String> sendMessage(@RequestBody User user, HttpSession session){String phone=user.getPhone();//获取手机号
//        if (StringUtils.isNotEmpty(phone)){
//            //生成随机的四位验证码
//            Integer integer = ValidateCodeUtils.generateValidateCode(4);
//            String code = integer.toString();SendMessageUtils.message(phone);
//            //调用api短信
//            //需要生成的验证码保存到sessionsession.setAttribute(phone,code);
//            //将生成的验证码缓存到redis中并且设置有效期5分钟
//            redisTemplate.opsForValue().set(phone,code,5,TimeUnit.MINUTES);
//            log.info("Sent message"+code);
//        SendMessage()String code=sendMessage.message(phone);if (StringUtils.isNotEmpty(code)){session.setAttribute(phone,code);//将生成的验证码缓存到redis中并且设置有效期5分钟redisTemplate.opsForValue().set(phone,code,5,TimeUnit.MINUTES);log.info("Sent message"+code);return R.success("验证码登录成功");}return R.success("验证码登录失败");}@PostMapping("/login")public R<User> login(@RequestBody Map map,HttpSession session){log.info(map.toString());String phone = map.get("phone").toString();String code = map.get("code").toString();//从cookie中
//        String phonecodeinsessoin =(String) session.getAttribute(phone);//从Redis中获取缓存验证码String phonecodeinsessoin=(String) redisTemplate.opsForValue().get(phone);if (phonecodeinsessoin!=null&&phonecodeinsessoin.equals(code)){LambdaQueryWrapper<User> lambdaQueryWrapper=new LambdaQueryWrapper<>();lambdaQueryWrapper.eq(User::getPhone,phone);User user = userService.getOne(lambdaQueryWrapper);if (user==null){user=new User();user.setPhone(phone);user.setStatus(1);userService.save(user);}session.setAttribute("user",user.getId());//如果用户登陆成功则删除缓存验证码redisTemplate.delete(phone);return R.success(user);}return R.error("登陆失败");}@PostMapping("/loginout")public R<String> loginout(@RequestBody Map map,HttpSession session){session.removeAttribute("user");return R.success("退出成功");}
}

示例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29o1C7li-1690897334327)(E:\personboke\blog\source_posts\java集成短信服务\image-20230801213715539.png)]

Springboot集成qq邮箱

自己以前做过就不多赘述
以下文章来自博客
https://blog.csdn.net/sdrfghb/article/details/126845550?
提示:以下是本篇文章正文内容,下面案例可供参考

邮箱设置
这边主要展示qq邮箱设置,网易或别的邮箱请自行百度设置

qq邮箱地址
打开账号POP3/SMTP服务

注意保存授权码

添加依赖,为了让验证码页面好看点,咱们可以使用thymeleaf

org.springframework.boot spring-boot-starter-mail org.springframework.boot spring-boot-starter-thymeleaf

yaml 配置
spring:
mail:
# 邮箱服务器地址
host: smtp.qq.com
# 账号
username: qq号
# 密码
password: 上面qq邮箱的授权码
# 编码格式
default-encoding: UTF-8
# 超时时间
properties:
mail:
smtp:
auth: true
enable: true
connectiontimeout: 10000
timeout: 10000
writetimeout: 10000
# 配置SSL 加密工厂
socketFactoryClass: javax.net.ssl.SSLSocketFactory
# 表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true

封装工具类
/**
* description: 使用thymeleaf模板发送邮件
*
* @param subject 主题
* @param map Thymeleaf html模板参数
* @param htmlName 模板名称
* @param addressee 收件人
* @return boolean
* @author Tigger
*/
public boolean sendThymeleafMail(String subject, Map<String, Object> map, String htmlName, String… addressee) {
boolean flag = false;
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = null;
mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
// 邮件发送者
mimeMessageHelper.setFrom(from);
// 邮件接受者
mimeMessageHelper.setTo(addressee);
// 主题
mimeMessageHelper.setSubject(subject);

        // 这里引入的是Template的ContextContext context = new Context();// 设置模板中的变量context.setVariables(map);// 第一个参数为模板的名称String process = templateEngine.process(htmlName, context);// 第二个参数true表示这是一个html文本mimeMessageHelper.setText(process,true);javaMailSender.send(mimeMessage);flag = true;}catch (MessagingException e) {e.printStackTrace();}return flag;
}

使用,这边使用了lombok和redis,需要的自己引下依赖,不需要的自行删除。
/**

  • description: 生成指定位数短信验证码
  • @param count 指定位数
  • @return java.lang.String
  • @author Tigger
    */
    private String getRandCode(int count) {
    return String.valueOf((int)((Math.random()9+1) Math.pow(10,count-1)));
    }

/**

  • description: 发送邮箱验证码
  • @param mailNumber 发送邮箱账号
  • @return java.lang.String
  • @author Tigger
    */
    public String sendCodeMailInfo(String mailNumber) {
    String sendMessage = null;
    String randCode = getRandCode(6);
    log.info(“邮箱验证码-{}”, randCode);
    Map<String, Object> stringObjectMap = new HashMap<>(1);
    stringObjectMap.put(“codeMessage”, randCode);
    boolean mail = mailUtil.sendThymeleafMail(“验证码”, stringObjectMap, “mailAssign.html”, mailNumber);
    if (mail) {
    log.info(“邮箱验证码发送成功”);
    // 将验证码放入redis
    boolean set = redisUtil.set(mailNumber + FinalCode.REDIS_Mail_SMS, randCode, FinalCode.SECOND_NUMBER);
    if (set) {
    log.info(“短信验证码缓存成功”);
    }
    sendMessage = “邮箱验证码发送成功”;
    }
    return sendMessage;
    }
登录验证
http://www.hengruixuexiao.com/news/10167.html

相关文章:

  • webform做网站 适应屏幕大小百度seo快速排名优化软件
  • 情人节给女朋友做网站身边的网络营销案例
  • oa系统网站建设方案免费创建网站
  • wordpress后台主题无法管理衡阳seo排名
  • 海口网站开发临沂seo全网营销
  • 微网站建设c各大网站提交入口网址
  • 企业网站属于哪种网站类型网络广告文案范文
  • 自己有网站怎么做点卡?怎么进行seo
  • 珠海网站建设报价广告公司推广渠道
  • 网站建设合同内容与结构网站排名优化快速
  • 团队网站建设昆明seo博客
  • 常州工厂网站建设软文网站
  • 网站汉英结合的怎么做国内营销推广渠道
  • 布恩网站删除郑州网站运营
  • 网页建站工具万能优化大师下载
  • wordpress怎么配置文件在线seo关键词排名优化
  • 综述题建设网站需要几个步骤手机百度识图网页版入口
  • 用织梦做视频网站西安网站制作建设
  • 网站项目建设建设期百度指数是什么意思
  • 哪些企业需要做网站建设查询网站相关网址
  • 响应式外贸网站建设爱站在线关键词挖掘
  • 企业网站排名要怎么做手机建立一个免费网站
  • 设计公司股权分配方案保定seo排名优化
  • 白云b2b网站建设公司seo软件推广哪个好
  • 贸易网站建设域名解析在线查询
  • 企业网站都是静态的吗网络广告策划的内容
  • wordpress footer插件seo外链工具有用吗
  • 嘉兴网站建设解决方案手机百度下载安装
  • 免费1级做看网站公司在百度怎么推广
  • 怀安县网站建设2021近期时事新闻热点事件