一种发短信验证码,二种发邮件验证码

前台:

         <divclass="rightcon bgwhite">

<input type="text"name="bae017" id="bae017" />

<button class="btnbtn-success" οnclick="sendMsg();">获取手机验证码</button>

<input type="text"name="aae159" id="aae159"/>

<button class="btnbtn-success" οnclick="sendMail();">获取邮箱验证码</button>

</div>

前台JS:

<scripttype="text/javascript">

function sendMail(){

                            var aae159 =$("#aae159").val();

           if(aae159!=""){

                    $.ajax({

                            type:"POST",

                            url:"${ctxPath}/system/cms/order/sendMail",

                       data:{aae159:$("#aae159").val()},

                       async:false,

                       success: function(data){

                                data= eval("("+data+")");

                                       if(data.success== "1"){

                                                alert("验证码发送成功!")

                                       }else{

                                                alert("验证码发送失败!");

                                       }

                       }

                   });

           }else{

                    alert("请输入邮箱地址,再点此按钮!");

           }

}

//获取短信  验证码

function sendMsg(){

           var bae017 =$("#bae017").val();

           if(bae017!=""){

                    $.ajax({

                            type:"POST",

                            url:"${ctxPath}/system/cms/order/sendMsg",

                       data:{bae017:$("#bae017").val()},

                       async:false,

                       success: function(data){

                                data= eval("("+data+")");

                                       if(data.success== "1"){

                                                alert("验证码发送成功!")

                                       }else{

                                                alert("验证码发送失败!");

                                       }

                       }

                   });

           }else{

                    alert("请输入电话号码,再点此按钮!");

           }

}       

</script>

Controller:

    /**

     * 发送邮箱绑定验证码

     * @return

     */

@RequestMapping("/sendMail")

@ResponseBody

   public String sendmail(TcmsMailform,ModelMap model,HttpServletResponse resp){

           //生成6位随机数作为验证码

           Random rd = new Random();

           int num  = rd.nextInt(1000000);

           while(num < 100000){

                    num  = rd.nextInt(1000000);

           }

           String pwd = String.valueOf(num);

           if(StringUtils.isNotBlank(form.getAae159())&&StringUtils.isNotBlank(pwd)){

                    //发邮件

                    try {

MailUtil.send_mail(form.getAae159(),"邮箱验证"+"您于"+ DateUtil.now()+"进行邮箱绑定操作"+"验证码为"+pwd+",请输入验证码,完成邮箱绑定");

                    } catch (MessagingExceptione) {

                             e.printStackTrace();

                    }

                    return"{success:1}";

           }

           return "{success:-1}";

}

/**

 *Description 发送手机绑定验证码

 * @paramform

 * @parammodel

 * @paramresp

 *@return

 */  

@ResponseBody

@RequestMapping("/sendMsg")

public String sendmsg(TcmsMail form,ModelMapmodel,HttpServletResponse resp){

           //生成6位随机数作为验证码

           Random rd = new Random();

           int num  = rd.nextInt(1000000);

           while(num < 100000){

                    num  = rd.nextInt(1000000);

           }

           String pwd = String.valueOf(num);

    String bae017 = form.getBae017();

if(StringUtils.isNotBlank(bae017)&&StringUtils.isNotBlank(pwd)){

String msg = "手机验证"+"您于"+DateUtil.now()+"进行手机绑定操作"+"验证码为"+pwd+",请输入验证码,完成手机绑定";

      // 发短信

      SmsService.sendMessage(bae017,"a", msg);

             return "{success:1}";

           }

    return"{success:-1}";

}

邮箱接口(MailUtil )

packagecom.neusoft.module.web.cms.service;

 

importjavax.mail.*;

importjavax.mail.internet.InternetAddress;

importjavax.mail.internet.MimeMessage;

importjava.util.Properties;

 

/**

 * 邮件工具类

 */

publicclass MailUtil {

    /**

     * 发送邮件

     * @param to 给谁发

     * @param text 发送内容

     */

    public static void send_mail(Stringto,String text) throws MessagingException {

        //创建连接对象 连接到邮件服务器

        Properties properties = newProperties();

        //设置发送邮件的基本参数

        //发送邮件服务器

       properties.put("mail.smtp.host", "smtp.163.com");

        //发送端口

        properties.put("mail.smtp.port","25");

       properties.put("mail.smtp.auth", "true");

        //设置发送邮件的账号和密码

        Session session =Session.getInstance(properties, new Authenticator() {

            @Override

            protected PasswordAuthenticationgetPasswordAuthentication() {

                //两个参数分别是发送邮件的账户和密码

                return newPasswordAuthentication("1308413****@163.com","*********");

            }

        });

 

        //创建邮件对象

        Message message = newMimeMessage(session);

        //设置发件人

        message.setFrom(newInternetAddress("大连****"));

        //设置收件人

       message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));

        //设置主题

        message.setSubject("这是一份测试邮件");

        //设置邮件正文  第二个参数是邮件发送的类型

       message.setContent(text,"text/html;charset=UTF-8");

        //发送一封邮件

        Transport.send(message);

    }

}


service(短信)

package com.neusoft.module.web.cms.service;

public interface SmsService extends Service {


void sendMessage(String busicode, String smsMob, String smsText);


void sendMessage(String busicode, String smsMob, String smsText, boolean log);


}

serviceImpl(短信)

package com.neusoft.module.web.cms.service.impl;
import java.util.Properties;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.springframework.stereotype.Service;
import com.neusoft.module.web.cms.service.SmsService;
@SuppressWarnings({"deprecation"})
@Service
public class SmsServiceImpl implements SmsService {


  private String config = "/application.properties";


  public void sendMessage(String busicode, String smsMob, String smsText) {
    this.sendMessage(busicode, smsMob, smsText, true);
  }


  public void sendMessage(String busicode, String smsMob, String smsText, boolean log) {
    try {
    HttpClient client = new HttpClient();
    final Properties properties = new Properties();
    properties.load(getClass().getResourceAsStream(config));
    PostMethod post = new PostMethod(String.valueOf(properties.get("sms_remote_url"))); 
    post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");//在头文件中设置转码
    NameValuePair[] data ={ new NameValuePair("Uid", String.valueOf(properties.get("sms_user_name"))),new NameValuePair("Key", String.valueOf(properties.get("sms_user_mask"))),new NameValuePair("smsMob",busicode),new NameValuePair("smsText",smsText)};
    post.setRequestBody(data);


    client.executeMethod(post);
    Header[] headers = post.getResponseHeaders();
    int statusCode = post.getStatusCode();
    System.out.println("statusCode:"+statusCode);
    for(Header h : headers)
    {
    System.out.println(h.toString());
    }
    String result = new String(post.getResponseBodyAsString().getBytes("utf-8")); 
    System.out.println(result); //打印返回消息状态
    post.releaseConnection();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}


application.properties

#使用sms发送短信:注意字符,GBK
sms_remote_url=http://utf8.api.smschinese.cn/
sms_user_name=*****
sms_user_mask=************



关于sms----http://sms.webchinese.com.cn/api.shtml

注册,得到用户名,短信密钥

有免费的5条短信测试。



第二种发邮件方法:使用spring boot

controller:


  /**
     * 发送邮箱绑定验证码
     * @return
     */
@RequestMapping("/sendMail")
    @ResponseBody
    public String sendmail(TcmsMail form,ModelMap model,HttpServletResponse resp){
//生成6位随机数作为验证码
Random rd = new Random();
int num  = rd.nextInt(1000000);
while(num < 100000){
num  = rd.nextInt(1000000);
}
String pwd = String.valueOf(num);
if(StringUtils.isNotBlank(form.getAae159())&&StringUtils.isNotBlank(pwd)){

mailService.sendSimpleMail(form.getAae159(), "主题:简单邮件", "测试邮件内容");


return "{success:1}";
}
return "{success:-1}";
}


MailService


package com.neusoft.module.web.cms.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.InputStreamSource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@Service
public class MailService {
	private final Logger logger = LoggerFactory.getLogger(this.getClass());
	
	private final JavaMailSender sender;
	
	@Value("${spring.mail.username}")
	private String from;

	public MailService(JavaMailSender sender) {
		this.sender = sender;
	}

	/**
	 * 发送纯文本的简单邮件
	 */
	public void sendSimpleMail(String to, String subject, String content){
		SimpleMailMessage message = new SimpleMailMessage();
		message.setFrom(from);
		message.setTo(to);
		message.setSubject(subject);
		message.setText(content);

		try {
			sender.send(message);
			logger.info("简单邮件已经发送。");
		} catch (Exception e) {
			logger.error("发送简单邮件时发生异常!", e);
		}
	}

	/**
	 * 利用helper设置各种邮件发送相关的信息
	 */
	private MimeMessageHelper setInfoByHelper(String to, String subject, String content, MimeMessage message)
			throws MessagingException {
		//true表示需要创建一个multipart message
		MimeMessageHelper helper = new MimeMessageHelper(message, true);
		helper.setFrom(from);
		helper.setTo(to);
		helper.setSubject(subject);
		helper.setText(content, true);
		return helper;
	}
	
	/**
	 * 发送html格式的邮件
	 */
	public void sendHtmlMail(String to, String subject, String content){
		MimeMessage message = sender.createMimeMessage();

		try {
			MimeMessageHelper helper = setInfoByHelper(to, subject, content, message);

			sender.send(message);
			logger.info("html邮件已经发送。");
		} catch (MessagingException e) {
			logger.error("发送html邮件时发生异常!", e);
		}
	}
	
	/**
	 * 发送带附件的邮件
	 */
	public void sendAttachmentsMail(String to, String subject, String content, String filePath){
		MimeMessage message = sender.createMimeMessage();

		try {
			MimeMessageHelper helper = setInfoByHelper(to, subject, content, message);

			FileSystemResource file = new FileSystemResource(new File(filePath));
			String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
	        helper.addAttachment(fileName, file);
	        
			sender.send(message);
			logger.info("带附件的邮件已经发送。");
		} catch (MessagingException e) {
			logger.error("发送带附件的邮件时发生异常!", e);
		}
	}

	/**
	 * 发送带附件的邮件
	 * @param to 收件人列表
	 * @param subject 邮件标题
	 * @param content 邮件内容
	 * @param file 附件File对象
	 */
	public void sendAttachmentsMail(String to, String subject, String content, File file){
		MimeMessage message = sender.createMimeMessage();

		try {
			MimeMessageHelper helper = setInfoByHelper(to, subject, content, message);

			helper.addAttachment(file.getName(), file);

			sender.send(message);
			logger.debug("带附件的邮件已经发送。");
		} catch (MessagingException e) {
			logger.error("发送带附件的邮件时发生异常!", e);
		}
	}

	/**
	 * 发送带附件的邮件
	 * @param to 收件人列表
	 * @param subject 邮件标题
	 * @param content 邮件内容
	 * @param inputStreamSource 附件streamSource,可以这样获得:new ByteArrayResource(ByteArrayOutputStream.toByteArray());
	 * @param fileName 附件的文件名
	 */
	public void sendAttachmentsMail(String to, String subject, String content, InputStreamSource inputStreamSource, String fileName){
		MimeMessage message = sender.createMimeMessage();

		try {
			MimeMessageHelper helper = setInfoByHelper(to, subject, content, message);

			helper.addAttachment(fileName, inputStreamSource);

			sender.send(message);
			logger.debug("带附件的邮件已经发送。");
		} catch (MessagingException e) {
			logger.error("发送带附件的邮件时发生异常!", e);
		}
	}

	/**
	 * 发送嵌入静态资源(一般是图片)的邮件
	 * @param content 邮件内容,需要包括一个静态资源的id,比如:<img src=\"cid:rscId01\" >
	 * @param rscPath 静态资源路径和文件名
	 * @param rscId 静态资源id
	 */
	public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId){
		MimeMessage message = sender.createMimeMessage();

		try {
			MimeMessageHelper helper = setInfoByHelper(to, subject, content, message);

			FileSystemResource res = new FileSystemResource(new File(rscPath));
			helper.addInline(rscId, res);
	        
			sender.send(message);
			logger.info("嵌入静态资源的邮件已经发送。");
		} catch (MessagingException e) {
			logger.error("发送嵌入静态资源的邮件时发生异常!", e);
		}
	}
}

application.properties

#发邮件
spring.mail.host=smtp.163.com
spring.mail.username=1308413***@163.com
spring.mail.password=******
spring.mail.port=25
spring.mail.default-encoding=UTF-8
spring.mail.smtp.auth=true
pom.xml

		<dependency>
  		    <groupId>org.springframework.boot</groupId>
   		    <artifactId>spring-boot-starter-mail</artifactId>
		</dependency>









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值