这学期的课程是一个j2ee项目,上次老师检查的时候说我们项目在注册的时候,要有一个邮箱验证的功能,不然谁都能去注册,这样会出现恶意注册。于是网上搜了一下大致知道可以用JavaMail给解决问题。不过试了一下,出现了以下异常:
1.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
2.Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
费解,以为自己代码写出问题了。到Oschina的代码共享区搜了一段代码,结果错误依然存在。网上大牛说java EE 5.0同JavaMail冲突,搜到一种解决办法:
将javaee.jar里面avax下有activation与mail两个文件夹删除
具体路径如下:(我们项目用的是 MyEclipse 8.5,其他版本应该也类似)
MyEclipse安装路径\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.5.0.me201003231033\data\libraryset\EE_5\javaee.jar
用winrar 打开javaee.jar,然后找到 activation与mail,将这两个文件夹删除,然后在你的项目里面导入mail.jar与activation.jar这两个包.于是乎,就可以在你的项目中利用JavaMail发送文件了。
发送邮件代码:来自于
http://www.oschina.net/code/snippet_12_1350
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 使用Gmail发送邮件
* @author Winter Lau
*/
public class GmailSender {
public static void main(String[] args) throws AddressException, MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
final String username = "[邮箱帐号]";
final String password = "[邮箱密码]";
Session session = Session.getDefaultInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(username + "@mo168.com"));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("[收件人地址]",false));
msg.setSubject("Hello");
msg.setText("How are you");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("Message sent.");
}
}
下面提供修改后的javaee.jar和需要导入到项目中去的包
另外就是一个示例。示例代码来自于
http://www.oschina.net/code/snippet_12_1350
分享到:
相关推荐
下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...
在 J2EE 网络编程中,JavaMail 是一个不可或缺的工具,尤其对于那些需要进行邮件交互的应用来说。本章节将深入探讨 JavaMail 的基础、安装配置以及核心类的使用。 ### 12.1 JavaMail 基础 #### 12.1.1 邮件协议 ...
在JSP中发送邮件通常涉及到JavaMail API,这是一个强大的库,允许开发者通过SMTP(简单邮件传输协议)发送邮件。 首先,我们需要导入必要的JavaMail包,包括`javax.mail.*`和`javax.mail.internet.*`。这些包包含了...
发送邮件时,客户端应用程序(在这个项目中是我们的JSP程序)需要连接到SMTP服务器,提供发件人和收件人的邮箱地址,以及邮件正文。SMTP服务器验证发件人身份后,会负责将邮件转发到指定的收件人邮箱。 三、...
3. 使用 `Transport` 对象发送邮件,这通常涉及调用 `Transport.send(Message)` 方法。 4. 如果需要接收邮件,可以使用 `Folder` 和 `Store` 对象来连接邮件服务器,打开邮箱并读取邮件。 在实际应用中,JavaMail ...
8. **异常处理**:在发送邮件过程中可能会遇到各种错误,如网络问题、认证失败等,因此需要适当地捕获并处理`MessagingException`和`IOException`。 通过理解并熟练应用这些Java邮件发送包中的类和接口,开发者可以...
- **J2EE.jar**: 包含了JavaMail和JAF库,可以通过安装J2SE EE或直接复制J2EE.jar到项目中。 #### 四、代码解析 以下是对示例代码的主要部分进行详细解析: ##### 4.1 初始化配置 ```java public sendMail() { ...
9. **JavaMail API**:用于创建、发送和接收电子邮件的API,常用于企业级应用中的通知服务。 10. **Java Web Services (JAX-WS, JAX-RS)**:这两套API分别用于创建基于SOAP和RESTful的Web服务,让不同系统间能通过...
《J2EE详解:专业Java开发者的进阶之路》 J2EE,全称为Java 2 Platform, Enterprise Edition,是Java平台的企业...同时,了解这些知识点也有助于理解和解决实际工作中遇到的各种问题,提升在企业级项目中的开发能力。
在学习过程中,可以结合实践项目,逐步消化和理解API手册中的概念和用法,这对于提升个人技能和解决实际问题都大有裨益。同时,也可以借助各种在线翻译工具,辅助理解难以理解的部分,确保学习的顺利进行。 总的来...
Java发送电子邮件是软件开发中的一个常见任务,尤其在企业级应用如Struts、J2EE框架中。这个压缩包可能包含了一个简单的Java程序,用于演示如何使用JavaMail API来发送邮件。下面,我们将深入探讨JavaMail API以及...
8. **JAVAMAIL API**:用于发送和接收电子邮件的API,常用于企业级应用中的通知系统。 **J2EE应用架构** 在J2EE应用中,通常采用三层架构: 1. **表现层(Presentation Layer)**:包括Web客户端,如HTML、JSP、...
- 学习JavaMail API发送电子邮件。 - 了解Java XML API (JAXP) 处理XML文档。 #### 五、实战项目 1. **开源项目**: - 参与开源社区的项目,如Jive论坛、Petstore等。 - 实战经验可以帮助加深对理论知识的理解...
8. **JavaMail API**:JavaMail API提供了在Java应用程序中发送和接收电子邮件的能力。 9. **Java API for XML Processing (JAXP)**:JAXP允许Java程序处理XML数据,包括解析、转换和样式表处理。 10. **Java API ...
9. **JavaMail API**:用于发送和接收电子邮件,支持多种邮件协议如SMTP、POP3和IMAP。 10. **Java Remote Method Invocation (RMI)**:RMI 允许一个Java对象调用另一个Java对象的方法,即使这个对象位于不同的JVM...
6. **邮件协议**:此系统可能使用SMTP(Simple Mail Transfer Protocol)发送邮件,POP3或IMAP(Internet Message Access Protocol)接收邮件。STRUTS框架并不直接处理这些协议,但开发者会使用JavaMail API来实现...