美文网首页
Java Web - 邮件发送

Java Web - 邮件发送

作者: 谷鸽不爱吃稻谷 | 来源:发表于2017-01-15 20:11 被阅读124次

    一、实现方法

    邮箱需要先开通 SMTP 服务,以163邮箱为例,如何开启服务可以百度对应的邮箱。开启服务后就可以进行收发邮件,需要的 jar 包百度自行下载。

    二、具体实现

    public class MailTool {
        private String mailSendHost = "smtp.163.com";
        private String fromMail = "xxx@163.com";
        private String toMail = "xxx@qq.com"; //接收邮件的邮箱
        private String ttitle="我是标题";
        private String tcontent="我是内容";
        
        public boolean sendMail(){
            try{
                Properties props = new Properties();
                // 发信的主机
                props.put("mail.smtp.host", mailSendHost);
                props.put("mail.smtp.auth", "true");
                Session s=Session.getInstance(props);
                s.setDebug(true);
                MimeMessage message=new MimeMessage(s);
                //给消息对象设置发件人/收件人/主题/发信时间
                InternetAddress from=new InternetAddress(fromMail); //这里的fromMail改为您发信的邮箱
                message.setFrom(from);
                InternetAddress to=new InternetAddress(toMail);
                message.setRecipient(Message.RecipientType.TO,to);
                message.setSubject(ttitle);
                message.setSentDate(new Date());
                //给消息对象设置内容
                //新建一个存放信件内容的BodyPart对象
                BodyPart mdp=new MimeBodyPart();
                //给BodyPart对象设置内容和格式/编码方式
                mdp.setContent(tcontent,"text/html;charset=gb2312");
                //新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
                Multipart mm=new MimeMultipart();
                //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
                mm.addBodyPart(mdp);
                //把mm作为消息对象的内容
                message.setContent(mm);
                message.saveChanges();
                Transport transport=s.getTransport("smtp");
                // 使用账号与授权码连接邮件服务器
                transport.connect(mailSendHost, "xxx@163.com", "xxx");
                transport.sendMessage(message,message.getAllRecipients());
                transport.close();
                return true;
            } catch(Exception e){
                e.printStackTrace();
                return false;
            }
        }
    }
    

    三、调用

    在需要的地方调用即可,QQ邮箱好像有某些限制,刚开通 SMTP 立刻测试不成功。

    相关文章

      网友评论

          本文标题:Java Web - 邮件发送

          本文链接:https://www.haomeiwen.com/subject/ezqubttx.html