- 浏览: 7331235 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
package com.javamail.test;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class TestJavaMail {
public static void main(String[] arge) throws Exception {
String from = "pizza@trendcom.com.cn";
String to = "pizza@trendcom.com.cn";
String subject = "Test mail";
String body = "A text mail";
Properties props = System.getProperties();
// 设置SMTP邮件服务器:
props.put("mail.smtp.host", "mail.trendcom.com.cn");
// SMTP服务器需要验证:
props.put("mail.smtp.auth", "true");
//设置邮件传输协议为:smtp
props.put( "mail.transpost.protocol", "smtp");
//设置邮件服务器端口
props.put("mail.smtp.port", "25");
// 传入用户名和口令:
Session session = Session.getDefaultInstance(props,
new PasswordAuthenticator("pizza@trendcom.com.cn", "pizza"));
// 创建新邮件:
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
msg.setSubject(subject);
msg.setText(body);
msg.setSentDate(new Date());
// 发送:
Transport.send(msg);
}
}
class PasswordAuthenticator extends Authenticator {
private String username;
private String password;
public PasswordAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
package com.javamail.test;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class TestJavaMailFile {
public static void main(String[] args) {
TestJavaMailFile mailFile=new TestJavaMailFile();
mailFile.setHost("mail.trendcom.com.cn");
mailFile.setUser("pizza@trendcom.com.cn");
mailFile.setPassword("pizza");
mailFile.setFrom("pizza@trendcom.com.cn");
mailFile.setTo("pizza@trendcom.com.cn");
mailFile.setSubject("附件邮件");
mailFile.setText("请主意查收附件");
mailFile.attachfile("test.doc");
System.out.println(mailFile.startSend());
}
class PasswordAuthenticator extends Authenticator {
private String username;
private String password;
public PasswordAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
// 定义发件人、收件人、主题等
String user="";
String password="";
String to = "";
String from = "";
String host = "";
String filename = "";
String subject = "";
String text="";
// 用于保存发送附件的文件名的集合
Vector file = new Vector();
public TestJavaMailFile(){
}
// 该方法用于收集附件名
public void attachfile(String fname) {
file.addElement(fname);
}
// 开始发送信件的方法
public boolean startSend() {
// 创建Properties对象
Properties props = System.getProperties();
// 创建信件服务器
props.put("mail.smtp.host", host);
// SMTP服务器需要验证:
props.put("mail.smtp.auth", "true");
//设置邮件传输协议为:smtp
props.put( "mail.transpost.protocol", "smtp");
//设置邮件服务器端口
props.put("mail.smtp.port", "25");
// 得到默认的对话对象
Session session = Session.getDefaultInstance(props,new PasswordAuthenticator(getUser(),getPassword()));
try {
// 创建一个消息,并初始化该消息的各项元素
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
// 后面的BodyPart将加入到此处创建的Multipart中
Multipart mp = new MimeMultipart();
// 利用枚举器方便的遍历集合
Enumeration efile = file.elements();
// 检查序列中是否还有更多的对象
while (efile.hasMoreElements()) {
MimeBodyPart mbp = new MimeBodyPart();
// 选择出每一个附件名
filename = efile.nextElement().toString();
// 得到数据源
FileDataSource fds = new FileDataSource(filename);
// 得到附件本身并至入BodyPart
mbp.setDataHandler(new DataHandler(fds));
// 得到文件名同样至入BodyPart
mbp.setFileName(fds.getName());
mp.addBodyPart(mbp);
}
// 移走集合中的所有元素
file.removeAllElements();
//创建新的MimeBodyPart
MimeBodyPart messageBodyPart = new MimeBodyPart();
//把正文信息附加到MimeBodyPart
messageBodyPart.setText(text);
//Multipart添加正文信息
mp.addBodyPart(messageBodyPart);
// Multipart加入到信件
msg.setContent(mp);
// 设置信件头的发送日期
msg.setSentDate(new Date());
// 发送信件
Transport.send(msg);
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
return false;
}
return true;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
测试了一下,不行呀,报Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: mail.sina.com.cn, port: 25;
解决方案:邮件smtp:服务器不正确
如果新浪邮件服务器:smtp.sina.com
同样的错误可能是邮件服务器不稳定造成的!
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
如果你用myEclipse进行开发的话,运行时可能会出现以下的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因是jar包版本不统一,解决方法如下:
删除Java EE 5 Libraries/javaee.jar/mail里的包有东西.
具体方法如下:
用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,一切就ok了.
发表评论
-
JUnit4.1源代码分析
2013-11-19 17:16 2355用JUnit4进行测试有两种方式分别是: (1)、命令 ... -
TestNG参数化测试之支持数据对象
2013-11-19 12:55 1744Junit4与TestNG对比 ... -
深入JUnit源码之Statement
2013-11-19 10:39 2464转载自: http://www.blogjava.net/ ... -
Junit4参数化测试
2013-11-15 17:25 1878现有这样 ... -
SWTBot中junit4通知RunNotifier的使用
2013-11-15 17:20 1647在junit4中的监听接口为Run ... -
[转] J2EE集群原理
2013-07-23 09:57 4531J2EE集群原理 什么是集群呢?总的来说,集群包括两个概念 ... -
实现ireport的JRDataSource接口的想法
2013-05-02 17:13 9510在使用Ireport的时候, ... -
[转]一次 applet 客户端打印 jasperreport 报表任务笔记
2013-05-02 16:31 2563一次 applet 客户端打印 jasperreport ... -
jasperreports报表Flash展现
2013-05-02 15:44 4653jasperreports在web上的报表展现方式有 ... -
Thrift与其他传输方式的比较
2013-04-03 12:15 27537Thrift 是什么? Thrift源于大名鼎鼎的fac ... -
【转】使用Atomikos Transactions Essentials实现多数据源JTA分布式事务
2013-04-03 12:11 6792Atomikos数据源配置方法有三种 Atomikos数 ... -
【转】Apache Thrift入门1-架构&介绍
2013-04-02 13:26 2032Thrift 是什么? Thrift ... -
【转】Thrift入门试用
2013-04-02 12:39 2175在新的项目中公司在平台内部系统间使用Thrift通讯,都没 ... -
【转】thrift的安装
2013-04-02 12:38 2089一、ubuntu下thrift的安装 1.下载源代码 ... -
[转]EJB3.0中的依赖注入,截获器及其在WebLogic Server 10中的扩展
2013-03-02 13:21 23191 前言 与EJB2.1相比,EJB3.0规范引入了两个重要 ... -
[转]通过struts2-ejb3-plugin把Struts2与EJB3.0整合
2013-03-02 13:01 2283本文是讲述使用struts2- ... -
jna使用入门
2012-12-20 14:39 2578JNA(Java Native Access )提供一 ... -
eclipse相关的问题
2012-12-12 11:01 1574打开eclipse后显示Error: co ... -
java并发编程实践笔记
2012-11-28 15:03 1562java并发编程实践笔记 ... -
java中 避免过多的使用同步
2012-11-22 15:41 2247避免过多的使用同步 ...
相关推荐
《J2EE5_ API_中文版》是一个针对Java企业级应用开发的重要参考资料,它提供了...在实际开发过程中,结合这个文档,开发者可以快速定位所需的方法和类,解决遇到的问题,从而高效地构建出稳定、可靠的J2EE应用程序。
在J2EE项目中,JavaMail是用于发送电子邮件的标准API,但有时开发者会遇到无法成功发送邮件的问题。本文将深入探讨这些常见问题及其解决方案,同时介绍相关资源和库。 首先,JavaMail API允许我们在Java应用程序中...
J2EE_API文档不仅适用于学习,也是IDE如Eclipse、IntelliJ IDEA等进行J2EE开发时的重要参考,帮助开发者理解和使用各种API接口,解决开发过程中遇到的问题。 **英文版与中文版** 虽然J2EE_API是英文版,但对于熟练...
通过"J2EE+Tutorial中文版.chm"这个文档,学习者可以了解到J2EE的完整体系,理解各种组件的作用,掌握如何设计和部署J2EE应用,以及如何解决开发过程中遇到的问题。这个教程还可能包括实际的示例代码和练习,帮助...
J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为解决企业级应用开发中遇到的复杂性和标准化问题而提出的一套解决方案。它基于Java技术,旨在为开发者提供一套标准化的框架,以简化企业级应用的...
5. **稳定的可用性**:对于需要7x24小时不间断服务的应用来说,J2EE提供了强大的支持,确保应用在遇到故障时可以快速恢复,最大程度减少服务中断的时间。 #### 三、J2EE四层模型 J2EE通常被描述为一个四层模型: ...
在IT行业中,J2EE(Java 2 Platform, Enterprise Edition)是Java平台的企业版,用于构建和部署可扩展、安全且高度可靠...实践中遇到的问题和解决方法也将深化对J2EE架构的理解,为未来的企业级项目开发打下坚实基础。
- 遇到问题时学会利用搜索引擎、官方文档及社区资源寻求解决方案。 - 不断积累实践经验,提高解决问题的能力。 综上所述,J2EE的学习是一个系统而漫长的过程,需要从基础知识入手,逐步深入到高级主题,并通过...
8. **JavaMail API**:用于发送和接收电子邮件,常用于系统通知和验证。 9. **Java WebSocket API**:提供全双工、低延迟的客户端-服务器通信,适合实时应用。 这个"企业级j2ee应用开发框架套件"可能还包括了流行...
《J2EE详解:专业Java开发者的进阶之路》 J2EE,全称为Java 2 Platform, Enterprise Edition,是Java平台的企业...同时,了解这些知识点也有助于理解和解决实际工作中遇到的各种问题,提升在企业级项目中的开发能力。
首先,对于Java语言基础,面试官通常会询问关于变量、数据类型、运算符、流程控制、异常处理、面向对象特性(封装、继承、多态)等方面的问题。此外,理解垃圾回收机制、线程并发、集合框架(如ArrayList、...
7. **JAF(Java Activation Framework)**:JAF用于处理不同数据类型的激活和序列化,常与JavaMail一起使用。 8. **JAX-RS(Java API for RESTful Web Services)**:JAX-RS提供了创建RESTful Web服务的API,使得...
在Java的学习旅程中,经常会遇到初学者对如何从基础的J2SE(Java 2 Platform, Standard Edition)过渡到更高级的J2EE(Java 2 Platform, Enterprise Edition)感到困惑。J2ME、J2SE和J2EE是Java平台的三个不同版本,...
12. 面临的问题及解决方法:在开发过程中,会遇到各种问题,文档中提到了博客实现过程中遇到的问题和解决方案。这是项目开发中常见的一环,有效的识别和解决问题是确保项目顺利进行的关键。 上述知识点都是设计和...
- **产品定位**:TongWeb5.0是一款面向企业级用户的应用服务器,它依据JavaEE5标准进行设计与开发,为企业级应用提供了稳定、可扩展、易管理且安全的基础平台。 - **核心特点**:TongWeb5.0支持JavaEE5的新特性,...
- **JCA**:J2EE Connector Architecture,提供与企业信息系统的集成。 3. **管理技术**: - **J2EE Deployment Specification**:部署规范,指导应用程序的部署流程。 - **J2EE Management Specification**:...
在学习Java的过程中,首先需要理解Java的三个主要平台版本:J2ME(Java 2 Platform, Micro Edition),J2SE(Java 2 Platform, Standard Edition),以及J2EE(Java 2 Platform, Enterprise Edition)。J2ME主要用于...
在深入探讨Java学习过程中遇到的关于SSH(Struts、Spring、Hibernate)框架的问题之前,我们先来理解一下这三个框架的基本概念及其在企业级应用开发中的作用。 #### Struts框架 Struts是一个基于MVC(Model-View-...
3. **参与社区**:加入像CSDN论坛、Java研究组等技术社区,不仅可以获取最新的Java资讯,还能在遇到问题时得到及时的帮助。 4. **项目实战**:理论结合实践,寻找Java相关的项目实习或兼职,通过实际项目锻炼自己的...