Java 使用mail.jar包发邮件

2017-01-14 08:43:57来源:CSDN作者:liangwenrong人点击

首先导入mail.jar包并buildpath。
这个包主要用到的是 javax.mail.internet.*和 javax.mail.*的内容。
写一个连接qq的服务器(SMTP方式)的发邮件程序:

写一个静态方法sendEmail(){};
第一步:写一个properties并设置各项值等下要用:

        Properties props = System.getProperties();          // 创建信件服务器          props.put("mail.smtp.host", "smtp.qq.com");//主机host,跟邮件发送者必须一致        props.put("mail.smtp.auth", "true"); // 通过验证        props.put("mail.smtp.port", "465");//加密服务端口465        props.put("mail.transport.protocol", "smtp");//方式为smtp        props.put("mail.smtp.ssl.enable", "true");//加密       //props.put("mail.debug", "true");//没什么用

创建一个会话把属性properties放进去:

Session session = Session.getDefaultInstance(props, null);  

创建一个消息把会话放进去:

MimeMessage msg = new MimeMessage(session);

然后把昵称转编码加上发送邮箱,设置from:

 msg.setFrom(new InternetAddress(MimeUtility.encodeText("发送人:") + "<266****848@qq.com>"));  

新建接受方的地址to:

InternetAddress[] address = new InternetAddress[]{"944*9@qq.com","689*8@qq.com}

将地址添加到指定的接受类型:

msg.addRecipients(Message.RecipientType.TO, address); 

设置邮件主题subject:

msg.setSubject(subject);  

然后设置mime类型的Multipart部分,也就是正文:
先新建:

Multipart mp = new MimeMultipart(); 

然后添加附件,多个附件重复多次:

MimeBodyPart mbp = new MimeBodyPart();       // 得到数据源  FileDataSource fds = new FileDataSource(filename);     // 得到附件本身并至入BodyPart  mbp.setDataHandler(new DataHandler(fds));    // 得到文件名同样至入BodyPart  mbp.setFileName(fds.getName());  // 把这个mbp附件add进去  mp.addBodyPart(mbp); 

同理,添加文本:

         MimeBodyPart mbp = new MimeBodyPart();           mbp.setText(body);         mp.addBodyPart(mbp);

然后设置mp为消息正文:

 msg.setContent(mp);  

如果没有附件直接设置消息正文即可:

msg.setText("正文");

设置消息头的日期,更新所有并保存:

 msg.setSentDate(new Date());   msg.saveChanges();  

最后,连接并发送,关闭连接:

Transport transport = session.getTransport("smtp");   transport.connect(username, password); ransport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));   transport.close();  

完毕!

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台