alumnus system - myeclipse 8.5环境下 测试邮件发送

本文介绍了一种使用Java发送带有附件的HTML格式电子邮件的方法,并解决了在JavaEE5环境下遇到的NoClassDefFoundError异常问题。

我在想是写一个笔记呢还是写两个呢,我想来想去,还是写成两个吧,以后看的时候也比较方便一点.

第一个如题所示,整理一个发送邮件的方法.

在网上查了很多方式,最后发现了一个不错的小jar包,调试过程中遇到的一些问题通过各种查找资料也解决啦,嘻嘻

在网上大神们的帮助下,终于查到一个发送邮件的不错的jar包:

commons-email-1.1.jar;配合它使用的是mail.jar和activation.jar.这三个是必须的哟.

之后开始程序,其实挺简单的:

package JavaMail;

import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Send {
 /**
  * @param args
 * @throws EmailException 
 * @throws MalformedURLException 
  */
 public static void main(String[] args) throws EmailException, MalformedURLException {
  // TODO Auto-generated method stub
	 /**
	  * 不带附件的
	  */
//  SimpleEmail email = new SimpleEmail();
//  try {
//   email.setHostName("smtp.163.com"); //Yahoo的服务器地址是:smtp.mail.yahoo.com
//   email.addTo("ly_wdfm@yeah.net", "John Doe"); 
//   email.setFrom("quxinlong2008@163.com", "Mr Smith");
//   email.setAuthentication("quxinlong2008", "20081311");
//   email.setSubject("中文");
//   email.setCharset("GB2312");//中文的话,要设置这个属性
//   email.setMsg("中文呢");
//   email.send();
//  } catch (EmailException e) {
//   e.printStackTrace();
//  }
	 
	 /**
	  * 带附件的
	  */
//   创建一个Email附件   
	   
     EmailAttachment emailattachment = new EmailAttachment();   
 
     emailattachment.setPath("biao_05.jpeg");   //这个图片放在项目根目录下
 
     emailattachment.setDisposition(EmailAttachment.ATTACHMENT);   
 
     emailattachment.setDescription("This is Smile picture");   
 
     emailattachment.setName("bulktree");   
 
//   创建一个email   
 
     HtmlEmail multipartemail = new HtmlEmail();   
 
     multipartemail.setHostName("smtp.163.com");   
 
     multipartemail.addTo("songnanmail@126.com", "皮皮");   
 
     multipartemail.setFrom("发件人邮箱", "显示发件人姓名");   
 
     multipartemail.setAuthentication("发件人邮箱(去掉'@163.com')", "这是邮箱的密码");   
 
     multipartemail.setSubject("这是用java程序发送的一个邮件");   
     //设置图片的路径
     URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
     String cid = multipartemail.embed(url, "Apache logo");
     
     // set the html message(以html的形式发送邮件
     multipartemail.setCharset("gb2312");
     multipartemail.setHtmlMsg("<html>这是email发送的文字,html形式的哦 - <img src=\"cid:"+cid+"\"></html>");

     // set the alternative message
     multipartemail.setTextMsg("Your email client does not support HTML messages");
 
     //添加附件   
 
     multipartemail.attach(emailattachment);
 
     //发送邮件   
 
     multipartemail.send();   
 
    System.out.println("Send sucessful.");   
  }
}


按理说,这样的话,就应该能发送了,但是 在Java EE 5环境下遇到异常:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 

这个问题是因为jar包冲突了,查了网上好多解决的办法是去掉myeclipse的j2ee下的mail目录,一般提供的目录是:D:\Program Files\MyEclipse 5.5 GA\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_5.5.0\data\libraryset\EE_5.

同样我也遇到了这样的问题,但是,我用的版本是myeclipse8.5,找了老长时间都没有找到这个路径,晕死...

后来想起chyxion说过的myeclipse的强大功能,那就是查找功能,既然我不知道路径在哪,那就用myeclipse查找吧,哈哈~查什么呢,既然都是引入的包,不妨查一下"library",在myeclipse中,选择"window"--"preferences",然后在框里输入"library", well,还真的出来了呢:


点击"add JAR/ZIP"后,就看到路径啦:



然后就是按照网上说的,用rar打开这个jar包,删除掉mail文件夹就可以啦.


ps:不能忘记,删除myeclipse的struts2中默认引入的系统核心包其中的一个也是这种方法呢,哼哼哼~

另外附上官网的东东:http://commons.apache.org/email/userguide.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值