Java 使用mail.jar包发邮件

首先导入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();  

完毕!

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值