JAVAMAIL发送邮件方法

在JAVAMAIL中一般要带有ACTIVATION包 也就是JAF框架
我们这里主要记录一下实现文件发送带附件功能的方法,之中就要用多ACTIVATION。
前部很简单为
Properties props = new Properties();
props.put("mail.smtp.host","..");
props.put("mail.smtp.auth","true");
Session session = Session.getDefaultInstance(props);
MimeMessage message = new MimeMessage(session);
message.setFrom(IternetAddress);
message.setRecipient(Message.RecipientType.TO,InternetAddress);
message.setSubject("..");
message.setSendDate(new Data());
在这里就不同了,如果传送文件就以为着是多部分的格式,于是在我们传送内容的时候就要分为多部分来考虑。
建立多部分类:MultiPart mm = new MimeMultiPart();
建立每个部分 并装入多部分内:
BodyPart bp = new MimeBodyPart();
bp.setContent(content,"text/plain;charset=gb2312");
mm.addBodyPart(bp);
 
同样的方法加入各种类型的BODYPART:
附件为文件的情况:
bp = new MimeBodyPart();
FileDataSource fds = new FileDataSource("完整路径");
DataHandler dh = new DataHandler(fds);
给发送的附件文件重新命名
bp.setFileName("new name");
给BODYPART设置数据句柄
bp.setDataHandler(dh);
向多部分设置每个身体部分
mm.addBodyPart(bp);
 
如果文件为远程的URL资源的话,我们仍旧有方法把他作为附件传递:
bp = new BodyPart();
URLDataSource uds = new URLDataSource(url);/*url is a remote resource that you want to send.*/
dh = new DataHandler(uds);
bp.setFileName("your wanted name");
bp.setDataHandler(dh);
mm.addBodyPart(bp);
 
最后把你创建好了的MM给发送出去
message.setContent(mm);
message.saveChanges();
 
Transport t =session.getTransport("smtp");
t.connect(host,user,password);
t.sendMessage(message,message.getAllRecipients());
t.close();
 
当然上面的一切都要在一个try..catch..语句之中 来捕获 messagingException 的异常。
通过上述了解我们发现了传送附件的方法了归纳下来是这样的:
首先要创建多部分,然后分别创建每个BODYPART 然后 在创建 FILEDATASOURCE URLDATASOURCE之类的东东,有了这些数据源,我们就要创建数据句柄 DATAHANDLER 然后把给你传的文件加个名字,盖个章子,最后把你造的句柄放到 BODYPART上 再把BODYPART放到多部分上这样多部分就OVER了 然后记得把多部分当做内容设置到MESSAGE上 最后你的MESSAGE还要记得用TRANSPORT给发送出去,如果要验证 多半是要的 就要CONNECT的时候把你的姓名和密码给带上,最后一切就结束了,再次强调要加TRY CATCH 虽然你不加他会提醒,但是这是个写程序的素质问题,一定要思维严密。OK,THAT‘S ALL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值