编写JavaMai遇到的一些问题l
2011-04-11 08:19
288 查看
首先粘贴下javamail的一个实例,大家参考下:
将修改邮箱服务器地址,再将用户名和密码的信息换为你自己的邮箱,如下代码片段中的红色字体。
property.setProperty("mail.smtp.host ", "smtp.163.com");
property.setProperty("mail.smtp.auth", "true");
Authenticator aut = new Myauth("****@163.com","*******");
在编写javamail过程中遇到的问题:
1.java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream问题
该问题的解决引自:http://blog.csdn.net/liuyxit/archive/2010/01/15/5193802.aspx
2.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
方法一:
这个问题是由于Javaee5中的mail还存在一些问题,和原来的mail.jar和activition.jar存在冲突。
如果你用myEclipse进行开发的话,运行时可能会出现以下的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不统一,解决方法如下:
删除Java EE 5 Libraries/javaee.jar/mail里的包有东西,如果还是不行把activition也删了。
具体方法如下:
用rar打开X:/Program Files/MyEclipse 6.0/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710/data/libraryset/EE_5/javaee.jar
,然后删除mail,一接着把以前的mail.jar和activition.jar导入即可。
(具体是谁的blog我找不到原文了,这个应该和原文是一致的)
方法二:
JavaEE版本和JavaMail的版本不一致,请将sun公司上下载最新版本.
例如:javaMail 1.3以下的如果在javaEE5上就会出现上面的错误,
但如果在javaEE1.4下就正常.(但本人试过,javaEE5+javaMail1.4还是有一样的问题)
因为javaEE5中包含有javaMail的类但是却不全面,所以出本身的JavaMail
包冲突(引自:flatfish2000的http://flatfish2000.iteye.com/blog/437698)
3.Could not connect to SMTP host: localhost, port: 25;nested exception is:
这个问题一般是由于你的smtp服务器的配置错误引起的,比如我的问题是在
property.setProperty("mail.smtp.host ", "smtp.163.com");这句中的"mail.smtp.host "中多加了一个空格导致的问题,去掉后就好了。就是这个问题困绕了我一天。
4.javax.mail.AuthenticationFailedException
很明显是验证失败的问题,
1.就是你使用的邮件服务器是否支持smtp,比如qq的邮箱需要进行开通。
2.你用户名和密码是否正确。
最后给大家说下,就是在使用javamail时最好打开调试功能,这样就能更清楚的看到是哪个环节出了问题。
具体是加如下语句:session.setDebug(true);
解决:
在MyEclipse目录下,找javaee.jar包,用WinRar打包,删除里面的mail目录,然后加入mail.jar和activition.jar
具体下载位置请到网上搜下。
原因:
MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突
import java.util.Date; import java.util.Properties; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class SeconMail { public void sendMail(){ Properties property = System.getProperties(); property.setProperty("mail.smtp.host ", "smtp.163.com"); property.setProperty("mail.smtp.port ", "80"); property.setProperty("mail.smtp.auth", "true"); Authenticator aut = new Myauth("****@163.com","*******"); Session session = Session.getDefaultInstance(property,aut); MimeMessage message = new MimeMessage(session); try { Address fromAddress = new InternetAddress("***@163.com"); Address toAddress = new InternetAddress("***@163.com"); message.setFrom(fromAddress); message.setRecipient(Message.RecipientType.TO, toAddress); message.setSubject("测试javamil"); //message.setText("你好,测试javamail成功!"); //message.saveChanges(); // 设置邮件消息发送的时间 message.setSentDate(new Date()); // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 Multipart mainPart = new MimeMultipart(); // 创建一个包含HTML内容的MimeBodyPart BodyPart body = new MimeBodyPart(); // 设置HTML内容 body.setContent("jkljklj", "text/html; charset=utf-8"); mainPart.addBodyPart(body); // 将MiniMultipart对象设置为邮件内容 message.setContent(mainPart); message.saveChanges(); Transport trans = session.getTransport("smtp"); trans.connect("smtp.163.com", "", ""); trans.sendMessage(message, message.getAllRecipients()); // 发送邮件 // Transport.send(message); trans.close(); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public class Myauth extends Authenticator{ private String user; private String password; public Myauth(String user,String password){ this.user = user; this.password = password; } public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(user, password); } } public static void main(String args[]){ SeconMail testMail = new SeconMail(); testMail.sendMail(); } }
将修改邮箱服务器地址,再将用户名和密码的信息换为你自己的邮箱,如下代码片段中的红色字体。
property.setProperty("mail.smtp.host ", "smtp.163.com");
property.setProperty("mail.smtp.auth", "true");
Authenticator aut = new Myauth("****@163.com","*******");
在编写javamail过程中遇到的问题:
1.java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream问题
该问题的解决引自:http://blog.csdn.net/liuyxit/archive/2010/01/15/5193802.aspx
2.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
方法一:
这个问题是由于Javaee5中的mail还存在一些问题,和原来的mail.jar和activition.jar存在冲突。
如果你用myEclipse进行开发的话,运行时可能会出现以下的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不统一,解决方法如下:
删除Java EE 5 Libraries/javaee.jar/mail里的包有东西,如果还是不行把activition也删了。
具体方法如下:
用rar打开X:/Program Files/MyEclipse 6.0/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710/data/libraryset/EE_5/javaee.jar
,然后删除mail,一接着把以前的mail.jar和activition.jar导入即可。
(具体是谁的blog我找不到原文了,这个应该和原文是一致的)
方法二:
JavaEE版本和JavaMail的版本不一致,请将sun公司上下载最新版本.
例如:javaMail 1.3以下的如果在javaEE5上就会出现上面的错误,
但如果在javaEE1.4下就正常.(但本人试过,javaEE5+javaMail1.4还是有一样的问题)
因为javaEE5中包含有javaMail的类但是却不全面,所以出本身的JavaMail
包冲突(引自:flatfish2000的http://flatfish2000.iteye.com/blog/437698)
3.Could not connect to SMTP host: localhost, port: 25;nested exception is:
这个问题一般是由于你的smtp服务器的配置错误引起的,比如我的问题是在
property.setProperty("mail.smtp.host ", "smtp.163.com");这句中的"mail.smtp.host "中多加了一个空格导致的问题,去掉后就好了。就是这个问题困绕了我一天。
4.javax.mail.AuthenticationFailedException
很明显是验证失败的问题,
1.就是你使用的邮件服务器是否支持smtp,比如qq的邮箱需要进行开通。
2.你用户名和密码是否正确。
最后给大家说下,就是在使用javamail时最好打开调试功能,这样就能更清楚的看到是哪个环节出了问题。
具体是加如下语句:session.setDebug(true);
解决:
在MyEclipse目录下,找javaee.jar包,用WinRar打包,删除里面的mail目录,然后加入mail.jar和activition.jar
具体下载位置请到网上搜下。
原因:
MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突
相关文章推荐
- [JAVA加解密]仿照DH算法编写ECDH算法时遇到的一些问题
- myeclipse中编写小java项目遇到的一些问题(持续更新)
- 用java编写webservice和在tomcat上部署时遇到的一些问题
- 7. 在jsp页面中编写java遇到的问题
- 编写DLL过程中遇到的一些问题
- 关于使用java Optional遇到的一些问题
- Java后台开发过程中遇到的一些问题(基础)
- java 实习遇到的问题和一些小经验(第一个月)
- Java连接mysql中遇到的一些问题及解决方法
- java编写程序遇到的各种乱码问题记录
- java通过JDBC连接SQL Server2017遇到的一些问题
- Java windows项目迁移到linux上,遇到一些跟路径相关的问题
- 想交一些朋友。 特别是刚接触java的初学者,可以给你们解决一些小问题。 最近遇到瓶顶,希望前辈给一些建议
- java在实际过程中遇到的一些小问题( 不断更新)
- 写java代码遇到的一些问题
- java+hibernate开发时遇到的一些问题及解决办法
- 在浏览器运行 java applet时遇到的一些问题及其解决方法
- 关于我遇到的java中编译没错运行出错的一些问题(不定期更新)
- 使用Code Blocks编写C++程序遇到的一些问题
- 学习JAVA一个月来,所遇到的一些问题(不全)