java邮箱验证测试类的实现

  • 来源:新网
  • 更新日期:2018-03-13

摘要:最近公司开始做新项目了,刚好有做这个邮箱验证功能,不多说,直接上代码: public static final String SMTPSERVER = \"smtp.163.com\";//邮箱服务器地址(用QQ还是网易看需求,我这里 用的是网易邮箱) public static final String SMTPPORT = \"465\"; //邮箱服务器

最近公司开始做新项目了,刚好有做这个邮箱验证功能,不多说,直接上代码:

t0181aac011d729c12b.jpg

 

public static final String SMTPSERVER = "smtp.163.com";//邮箱服务器地址(用QQ还是网易看需求,我这里用的是网易邮箱) public static final String SMTPPORT = "465"; //邮箱服务器默认端口 public static final String ACCOUT = "hgzlgl2017@163.com";//邮箱帐号 public static final String PWD = "******";//这是授权码,并不是邮箱的登录密码

 

 

首先是定义几个重要的变量,其中第一第二个都是官方指定的,一般不能改变,值得注意的是最后一个PWD变量指的是授权码,并不是邮箱的登录密码,也就是你在开通这个smtp服务的时候设置的,至于如何开启这个smtp服务,大家百度一下就行了,很简单的。我刚开始就是把这个授权码写成了邮箱的登录密码,一直连不上,搞了我很久才明白的,希望大家不要步我的后尘。然后:

 

public static void main(String[] args) throws Exception { // 创建邮件配置 Properties props = new Properties(); props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求) props.setProperty("mail.smtp.host", SMTPSERVER); // 发件人的邮箱的 SMTP 服务器地址 props.setProperty("mail.smtp.port", SMTPPORT); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.auth", "true"); // 需要请求认证 props.setProperty("mail.smtp.ssl.enable", "true");// 开启ssl // 根据邮件配置创建会话,注意session别导错包 Session session = Session.getDefaultInstance(props); // 开启debug模式,可以看到更多详细的输入日志 session.setDebug(true); //创建邮件 MimeMessage message = createEmail(session); //获取传输通道 Transport transport = session.getTransport(); transport.connect(SMTPSERVER,ACCOUT, PWD); //连接,并发送邮件 transport.sendMessage(message, message.getAllRecipients()); transport.close(); }

 

 

 

 

 

 

这里需要注意的主要是邮件的配置,其他的照搬代码就可以了,最后:

 

 

public static MimeMessage createEmail(Session session) throws Exception { // 根据会话创建邮件 MimeMessage msg = new MimeMessage(session); // address邮件地址, personal邮件昵称, charset编码方式 InternetAddress fromAddress = new InternetAddress(ACCOUT, "广西宏桂资产租赁有限公司", "utf-8"); // 设置发送邮件方 msg.setFrom(fromAddress); InternetAddress receiveAddress = new InternetAddress( "3386173538@qq.com", "邮箱验证", "utf-8"); // 设置邮件接收方 msg.setRecipient(RecipientType.TO, receiveAddress); // 设置邮件标题 msg.setSubject("邮箱验证", "utf-8"); //msg.setContent(m,"text/html;charset=gb2312"); msg.setText("我是个程序员,一天我坐在路边一边喝水一边苦苦检查程序。 这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱。 然后接着调试程序。他可能生意不好,就无聊的看看我在干什么,然后过了一会,他缓缓地指着我的屏幕说,这里少了个分号"); // 设置显示的发件时间 msg.setSentDate(new Date()); // 保存设置 msg.saveChanges(); return msg; }

 

这个方法是用来创建邮箱的。我之前做的时候遇到了三个问题,一个是我注册的邮箱的smtp服务没有开启,别一个就是授权码弄错了,还有一个就是我用的是Myeclipse8.5开发工具,这个工具不支持javaee6,而这个邮箱验证功能需要用到的是javaee6,所以我用的javaee5就报了异常,于是我把javaee5移除remove掉,自己在工程下创建一个文件夹,然后把javaee6这里面的jar包全复制进去,然后再添加到路径,这样就可以了。