Java实现邮箱登录验证和邮件发送

来源:互联网 发布:阿里云esc远程连接 编辑:程序博客网 时间:2024/05/22 04:55

验证邮箱是否可用:

/**     *      * @param host SMTP服务端地址,如qq邮箱为smtp.qq.com     * @param email 邮箱名     * @param password 邮箱注册码(非登录名,具体需根据邮箱到官网申请)     * @return 如果可用返回true     * @throws MessagingException     */    public Object checkEmail(String host, String email, String password) throws MessagingException {        Properties props = new Properties();        props.setProperty("mail.transport.protocol", "smtp");        props.setProperty("mail.smtp.host", host);        props.setProperty("mail.smtp.auth", "true");        props.setProperty("mail.debug", "true");        final String smtpPort = "465";        props.setProperty("mail.smtp.port", smtpPort);        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");        props.setProperty("mail.smtp.socketFactory.fallback", "false");        props.setProperty("mail.smtp.socketFactory.port", smtpPort);        Session session = Session.getDefaultInstance(props);        session.setDebug(true);        Transport transport = session.getTransport();        try {            transport.connect(email, password);            return true;        } catch (MessagingException e) {            sLog.error("connect to email server error. address=" + email);            return false;        } finally {            transport.close();        }    }

如果验证可用则可发送邮件,可以在return true;行之上增加发送邮件代码:

MimeMessage message = new MimeMessage(session);        message.setFrom(new InternetAddress(sendEmail, "发送人", "UTF-8"));        message.setSentDate(new Date());        message.setSubject("邮件标题", "UTF-8");        message.setContent("邮件内容", "text/html;charset=UTF-8");        message.addRecipient(MimeMessage.RecipientType.TO,                     new InternetAddress("收件人邮箱", "收件人", "UTF-8"));        message.saveChanges();        transport.sendMessage(message, message.getAllRecipients());
原创粉丝点击