团队作业4——项目冲刺 Day3

团队作业4——项目冲刺 Day3

一、 昨天已完成的工作

用户登录界面设计、用户登录的后台设计、完成了数据库的初步构建

二、 今天计划完成的工作

用户界面的初步设计、用户登录的后台完善、完善数据库构建

三、 工作中遇到的困难

暂无

四、 发布项目燃尽图

 

五、 代码签入

暂无

六、 最新模块的代码

package SendEmailCode;

import CreateVerificationCode.CreateVerificationCode;

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.security.GeneralSecurityException;

import java.util.Properties;

public class SendEmailCoed implements emailCode {

    //发件人邮箱类

    private class SenderEmail {

        //邮箱

        private String senderEmail;

        //邮箱授权码

        private String senderEmailPassword;

        public SenderEmail(String senderEmail,String senderEmailPassword){

            this.senderEmail = senderEmail;

            this.senderEmailPassword = senderEmailPassword;

        }

        public String getSenderEmail() {

            return senderEmail;

        }

        public String getSenderEmailPassword() {

            return senderEmailPassword;

        }

        public void setSenderEmail(String senderEmail) {

            this.senderEmail = senderEmail;

        }

        public void setSenderEmailPassword(String senderEmailPassword){

            this.senderEmailPassword = senderEmailPassword;

        }

        //设置邮箱主机

        public String getSmtp(){

            String[] get = this.senderEmail.split("@");

            get[1] = "smtp."+get[1];

            return get[1];

        }

    }

    @Override

    public String sendCode(String email) {

        //创建发送人的邮箱

        SenderEmail senderEmail = new SenderEmail("[email protected]","FBIARFCJVHBDGUOY");

        //生成验证码

        CreateVerificationCode code = new CreateVerificationCode();

        code.newVerificationCode();

        //创建一个Properties对象

        Properties pro = new Properties();

        //设置主机

        pro.setProperty("mail.host",senderEmail.getSmtp());

        //设置传输协议

        pro.setProperty("mail.transport.protocol","smtp");

        //设置允许邮箱授权认证

        pro.setProperty("mail.smtp.auth","true");

        //检查邮箱类型

        String[] emailType = email.split("@");

        //QQ邮箱存在一个特性设置SSL加密

        if(emailType[1].equals("qq.com")) {

            try {

                MailSSLSocketFactory sf = new MailSSLSocketFactory();

                sf.setTrustAllHosts(true);

                pro.put("mail.smtp.ssl.enable", "true");

                pro.put("mail.smtp.ssl.socketFactory", sf);

            } catch (GeneralSecurityException e) {

//                e.printStackTrace();

                System.out.println("SSL加密失败");

            }

        }

        //邮箱授权认证

        //创建验证器

        class Auth extends Authenticator{

            @Override

            protected PasswordAuthentication getPasswordAuthentication() {

                return new PasswordAuthentication(senderEmail.getSenderEmail(),senderEmail.getSenderEmailPassword());

            }

        }

        Auth auth = new Auth();

        //获取一个Session会话对象

        Session session = Session.getDefaultInstance(pro, auth);

        try {

            //获取连接

            Transport tra  = session.getTransport();

            //连接服务器

            tra.connect(senderEmail.getSmtp(),senderEmail.getSenderEmail(),senderEmail.getSenderEmailPassword());

            //创建邮件对象

            MimeMessage message = new MimeMessage(session);

            //设置发件人地址

            message.setFrom(new InternetAddress(senderEmail.getSenderEmail()));

            //设置收件人地址(单发)

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

            //设置邮件标题

            message.setSubject("验证码");

            //设置邮件内容

            message.setContent(code.getVerificationCode(),"text/html;charset=utf-8");

            //发送邮件

            tra.sendMessage(message,message.getAllRecipients());

            //关闭连接

            tra.close();

        } catch (NoSuchProviderException e) {

//            e.printStackTrace();

            System.out.println("网络连接不成功");

            return null;

        } catch (MessagingException e) {

//            e.printStackTrace();

            System.out.println("邮件发送失败");

            return null;

        }

        return code.getVerificationCode();

    }

}

七、 运行结果的截图

 

八、 总结

一切按计划进行,尽管慢,但是仍能看见我们的项目一步步构建出来

猜你喜欢

转载自www.cnblogs.com/seven-goose/p/12983178.html