JAVA中发邮件带附件出现的问题!!
大家好,我是个JAVA初学者,这两天在做一个发邮件的功能,不带附件发送的时候显示正常,带附件发送的时候就会出问题,请各位大侠帮忙下,像这样
<< HEAD>  
<< META content="MSHTML 6.00.2900.5694" name=GENERATOR> < /HEAD>  
<< BODY> < FONT size=3> 您好:< BR> 祝工作顺利。< BR> < BR> < /FONT> < FONT size=2>     hancg< BR>     2009-01-03< BR> < BR> < FONT color=#0033cc>     北京六合华大基因科技股份有限公司北京测序部 < /FONT> < BR>     散样测序: service@genomics.org.cn < BR>     引物合成: order@genomics.org.cn < BR>     电话:86-10-80485559 < BR>     传真:86-10-80485999 < BR>     地 址:北京顺义区空港工业园B区6号楼 < BR>     网 站: < A href="http://www.genomics.com.cn/"> www.genomics.com.cn < /A> < BR> < BR> < /FONT> < /BODY>  
带附件发送和不带附件发送用的是不同的方法 是不是我的方法有问题 带附件的方法代码如下:
	public boolean sendermail(String smtpServer, String[] to, String[] cc,  
			String[] bcc, String from, String subject, String body,  
			String username, String password,String name){
       //获得了邮件服务器信息
		properties.put("mail.smtp.host", smtpServer);
	  //设置发送授权认证为true的缘故,给外部邮箱发信用
		properties.put("mail.smtp.auth", String.valueOf(true));
       //获得了邮件授权
		MailAuthentication ma = new MailAuthentication(username, password);  
       //根据邮件会话属性和密码验证器构造一个发送邮件的session
		Session session = Session.getInstance(properties, ma);
	  //在发送邮件过程中监控mail命令的话
	//	session.setDebug(true);
       //根据session创建一个邮件消息对象
		Message msg = new MimeMessage(session);
         boolean flag=false;
		try {
           //设置邮件消息的发送者  
			setFromAddress(msg, from);
           //设置邮件消息的接收者  
			setAddress(msg, to, Message.RecipientType.TO);
			setAddress(msg, cc, Message.RecipientType.CC);
			setAddress(msg, bcc, Message.RecipientType.BCC);
           //设置邮件消息的主题  
			msg.setSubject(subject);
           //设置邮件消息的主要内容  
			msg.setText(body);
			msg.setHeader("Content-Type","text/html; charset=GBK");
         //设置发送收条
		//	msg.addHeader("Disposition-Notification-To", from);
           //设置邮件消息发送的时间  
			msg.setSentDate(new Date());
			// 发送附件
			BodyPart mdp = new MimeBodyPart();
			Multipart mm = new MimeMultipart();
			BodyPart part = new MimeBodyPart();  
			part.setText(body);
			mm.addBodyPart(part);
			FileDataSource fds = new FileDataSource(name);
			//如果附件大于10M则不发送附件
			  //**********************************************    
			  long   iFileLen=fds.getFile().length();			     
			  System.out.println("FileSize="   +   iFileLen);
			  if(iFileLen<20480000l){
					System.out.println(name);
					if (!fds.getFile().exists()) {
						System.out.println("未发现文件: " + name);
						return false;
					}
					DataHandler dh = new DataHandler(fds);
					String names[]=name.split("/");
					String filename=names[names.length-1];
					mdp.setFileName(filename);// 可以和原文件名不一致
					mdp.setDataHandler(dh);
					mm.addBodyPart(mdp);
					msg.setContent(mm);// 把mm作为消息对象的内容
					msg.saveChanges();
					mdp.setDescription(body);
					msg.setContent(mm);
					this.setFlagAnnex(false);
			  }else{
				    this.setFlagAnnex(true);
				    return true;
			  }
			  //**********************************************    
		 //使用Transport这个类的静态方法send()来发送消息
			Transport.send(msg);
			flag=true;
			System.out.println("发送完成");
		} catch (AddressException ex) {
			System.out.println("Message success");
			ex.printStackTrace();
			System.out.println("请确认发送人地址格式");
		} catch (
MessagingException ex) {
			System.out.println("Messaging fail");