- 浏览: 255423 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (217)
- java 基础 (36)
- flex (1)
- structs 2.0 (5)
- oracle 学习过程 (20)
- j2ee (63)
- c/s java (0)
- javaScript (24)
- jdom (1)
- jquery (1)
- java模式 (1)
- Datebase common konwledge (3)
- JfreeChart (3)
- html (3)
- sql server (6)
- tomcat servlet (4)
- lucene (1)
- Linux (3)
- 常见注意 (6)
- hibernate (2)
- jsp页面 (3)
- effective Java (1)
- spring (2)
- Spark (1)
- json (0)
- JMS (1)
- 电脑故障 (2)
- mysql (1)
- JBPM (2)
- java 线程 (1)
- oracle优化 (1)
- 安全 (1)
- hadoop (0)
- 算法 (1)
- hbase (0)
最新评论
-
mfhappy:
你好,你这个导出的文件中如果有图片你怎么处理??
jsp 导出excel(利用excel本身另存为html) -
丹寺丁:
...
jquery 解析 java 后台的 json数据 -
xurichusheng:
不直接诶生成想要的对象,而是让客户端利用所有必要的参数 ...
重叠构造器、Builder模式 -
wen121221222:
感谢啊!困恼我一个下午的问题终于解决了
java.lang.NoClassDefFoundError: javax/mail/Authenticator异常 -
gaoyanglovejava:
不错。就是这么解决的。多谢
The project is not a myEclipse hibernate project
以下全部copy from http://www.cnblogs.com/liyazhou/archive/2010/08/20/1804927.html
今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题。为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用。呵呵
以下三段代码是我的全部代码,朋友们如果想用,直接复制即可。jar包因为我不知道怎么传到javaeye上,所以朋友们回去自己打吧。
我的代码有三个类:
第一个类:MailSenderInfo.java
- package com.util.mail;
- /**
- * 发送邮件需要使用的基本信息
- */
- import java.util.Properties;
- public class MailSenderInfo {
- // 发送邮件的服务器的IP和端口
- private String mailServerHost;
- private String mailServerPort = "25";
- // 邮件发送者的地址
- private String fromAddress;
- // 邮件接收者的地址
- private String toAddress;
- // 登陆邮件发送服务器的用户名和密码
- private String userName;
- private String password;
- // 是否需要身份验证
- private boolean validate = false;
- // 邮件主题
- private String subject;
- // 邮件的文本内容
- private String content;
- // 邮件附件的文件名
- private String[] attachFileNames;
- /**
- * 获得邮件会话属性
- */
- public Properties getProperties(){
- Properties p = new Properties();
- p.put("mail.smtp.host", this.mailServerHost);
- p.put("mail.smtp.port", this.mailServerPort);
- p.put("mail.smtp.auth", validate ? "true" : "false");
- return p;
- }
- public String getMailServerHost() {
- return mailServerHost;
- }
- public void setMailServerHost(String mailServerHost) {
- this.mailServerHost = mailServerHost;
- }
- public String getMailServerPort() {
- return mailServerPort;
- }
- public void setMailServerPort(String mailServerPort) {
- this.mailServerPort = mailServerPort;
- }
- public boolean isValidate() {
- return validate;
- }
- public void setValidate(boolean validate) {
- this.validate = validate;
- }
- public String[] getAttachFileNames() {
- return attachFileNames;
- }
- public void setAttachFileNames(String[] fileNames) {
- this.attachFileNames = fileNames;
- }
- public String getFromAddress() {
- return fromAddress;
- }
- public void setFromAddress(String fromAddress) {
- this.fromAddress = fromAddress;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getToAddress() {
- return toAddress;
- }
- public void setToAddress(String toAddress) {
- this.toAddress = toAddress;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getSubject() {
- return subject;
- }
- public void setSubject(String subject) {
- this.subject = subject;
- }
- public String getContent() {
- return content;
- }
- public void setContent(String textContent) {
- this.content = textContent;
- }
- }
第二个类:SimpleMailSender.java
- package com.util.mail;
- import java.util.Date;
- import java.util.Properties;
- import javax.mail.Address;
- import javax.mail.BodyPart;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Multipart;
- 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 SimpleMailSender {
- /**
- * 以文本格式发送邮件
- * @param mailInfo 待发送的邮件的信息
- */
- public boolean sendTextMail(MailSenderInfo mailInfo) {
- // 判断是否需要身份认证
- MyAuthenticator authenticator = null;
- Properties pro = mailInfo.getProperties();
- if (mailInfo.isValidate()) {
- // 如果需要身份认证,则创建一个密码验证器
- authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
- }
- // 根据邮件会话属性和密码验证器构造一个发送邮件的session
- Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
- try {
- // 根据session创建一个邮件消息
- Message mailMessage = new MimeMessage(sendMailSession);
- // 创建邮件发送者地址
- Address from = new InternetAddress(mailInfo.getFromAddress());
- // 设置邮件消息的发送者
- mailMessage.setFrom(from);
- // 创建邮件的接收者地址,并设置到邮件消息中
- Address to = new InternetAddress(mailInfo.getToAddress());
- mailMessage.setRecipient(Message.RecipientType.TO,to);
- // 设置邮件消息的主题
- mailMessage.setSubject(mailInfo.getSubject());
- // 设置邮件消息发送的时间
- mailMessage.setSentDate(new Date());
- // 设置邮件消息的主要内容
- String mailContent = mailInfo.getContent();
- mailMessage.setText(mailContent);
- // 发送邮件
- Transport.send(mailMessage);
- return true;
- } catch (MessagingException ex) {
- ex.printStackTrace();
- }
- return false;
- }
- /**
- * 以HTML格式发送邮件
- * @param mailInfo 待发送的邮件信息
- */
- public static boolean sendHtmlMail(MailSenderInfo mailInfo){
- // 判断是否需要身份认证
- MyAuthenticator authenticator = null;
- Properties pro = mailInfo.getProperties();
- //如果需要身份认证,则创建一个密码验证器
- if (mailInfo.isValidate()) {
- authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
- }
- // 根据邮件会话属性和密码验证器构造一个发送邮件的session
- Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
- try {
- // 根据session创建一个邮件消息
- Message mailMessage = new MimeMessage(sendMailSession);
- // 创建邮件发送者地址
- Address from = new InternetAddress(mailInfo.getFromAddress());
- // 设置邮件消息的发送者
- mailMessage.setFrom(from);
- // 创建邮件的接收者地址,并设置到邮件消息中
- Address to = new InternetAddress(mailInfo.getToAddress());
- // Message.RecipientType.TO属性表示接收者的类型为TO
- mailMessage.setRecipient(Message.RecipientType.TO,to);
- // 设置邮件消息的主题
- mailMessage.setSubject(mailInfo.getSubject());
- // 设置邮件消息发送的时间
- mailMessage.setSentDate(new Date());
- // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
- Multipart mainPart = new MimeMultipart();
- // 创建一个包含HTML内容的MimeBodyPart
- BodyPart html = new MimeBodyPart();
- // 设置HTML内容
- html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
- mainPart.addBodyPart(html);
- // 将MiniMultipart对象设置为邮件内容
- mailMessage.setContent(mainPart);
- // 发送邮件
- Transport.send(mailMessage);
- return true;
- } catch (MessagingException ex) {
- ex.printStackTrace();
- }
- return false;
- }
- }
第三个类:MyAuthenticator.java
- package com.util.mail;
- import javax.mail.*;
- public class MyAuthenticator extends Authenticator{
- String userName=null;
- String password=null;
- public MyAuthenticator(){
- }
- public MyAuthenticator(String username, String password) {
- this.userName = username;
- this.password = password;
- }
- protected PasswordAuthentication getPasswordAuthentication(){
- return new PasswordAuthentication(userName, password);
- }
- }
下面给出使用上面三个类的代码:
- public static void main(String[] args){
- //这个类主要是设置邮件
- MailSenderInfo mailInfo = new MailSenderInfo();
- mailInfo.setMailServerHost("smtp.163.com");
- mailInfo.setMailServerPort("25");
- mailInfo.setValidate(true);
- mailInfo.setUserName("han2000lei@163.com");
- mailInfo.setPassword("**********");//您的邮箱密码
- mailInfo.setFromAddress("han2000lei@163.com");
- mailInfo.setToAddress("han2000lei@163.com");
- mailInfo.setSubject("设置邮箱标题");
- mailInfo.setContent("设置邮箱内容");
- //这个类主要来发送邮件
- SimpleMailSender sms = new SimpleMailSender();
- sms.sendTextMail(mailInfo);//发送文体格式
- sms.sendHtmlMail(mailInfo);//发送html格式
- }
最后,给出朋友们几个注意的地方:
1、使用此代码你可以完成你的javamail的邮件发送功能。三个类缺一不可。
2、这三个类我打包是用的com.util.mail包,如果不喜欢,你可以自己改,但三个类文件必须在同一个包中
3、不要使用你刚刚注册过的邮箱在程序中发邮件,如果你的163邮箱是刚注册不久,那你就不要使用“smtp.163.com”。因为你发不出去。刚注册的邮箱是不会给你这种权限的,也就是你不能通过验证。要使用你经常用的邮箱,而且时间比较长的。
4、另一个问题就是mailInfo.setMailServerHost("smtp.163.com");与mailInfo.setFromAddress("han2000lei@163.com");这两句话。即如果你使用163smtp服务器,那么发送邮件地址就必须用163的邮箱,如果不的话,是不会发送成功的。
5、关于javamail验证错误的问题,网上的解释有很多,但我看见的只有一个。就是我的第三个类。你只要复制全了代码,我想是不会有问题的。
发表评论
-
远程调用servlet
2012-09-12 16:26 3982//发起请求、先写发送(out)、然后等待度(in) URL ... -
基于ssh的项目的单元测试
2012-08-01 13:55 977package com.csoft.ta.util; imp ... -
JBPM设计器乱码问题
2012-06-30 13:44 768修改eclipse安装跟目录下的eclipse.ini文件,在 ... -
项目中读取文件
2012-03-13 18:31 811import java.io.BufferedReader;i ... -
项目中配置log4j
2012-03-08 10:26 887<!--如果不定义webAppRootKey参数,那么w ... -
qq album
2012-01-05 23:02 1028此文章完全转自他人博客(用于个人学习记录) 这个功能的实现关 ... -
关于quartz 2.x 一些记录
2011-12-30 14:27 1193功能需要 审计(即对不同规则的定制的东西进行轮巡)如果每一个轮 ... -
JavaScript动态操作表格,添加,删除行、列及单元格
2011-12-27 16:11 797<html> <head> < ... -
jsp 导出excel(利用excel本身另存为html)
2011-12-27 16:06 4513<%@page contentType="ap ... -
jsp 导出excel
2011-11-21 16:09 892<%@page contentType="ap ... -
quartz 在 spring静态、动态配置
2011-09-20 14:55 1177项目要求动态改变配置时间,动态改变quartz的 cron表达 ... -
JMX简单示例
2011-09-02 16:40 899以下文章摘自网络仅供学习用 1.编写一个以MBean ... -
cron表达式
2011-08-01 16:59 830以下文章复制自他出: 一个Cron-表达式是一个由六至七个 ... -
不同数据库的数据库类型及对应的jdbc类型
2011-07-27 12:47 1204public static void main(String ... -
Dom4j的使用
2011-06-15 18:08 758Dom4j 使用简介 作 ... -
SVN update时候报错的解决办法。。Working copy not locked; this is probably a bug, please rep
2011-06-01 09:02 5139今天上午CVS服务器突然坏了。。改用svn,安装完插件,连到我 ... -
hibernate 延迟加载
2011-05-12 17:25 697延迟加载: 延迟加 ... -
hibernate 一级缓存和二级缓存
2011-05-12 17:09 887一级缓存 Hibernate框架一级缓存的特点: 1.它是hi ... -
读取Blob字段图片、并进行缩放放到页面上
2011-03-29 15:15 4165整个流程分为四步,连接oracle数据库 -> 读取bl ... -
James 一
2011-03-09 10:48 923James 邮件服务器的安装和配置 James 邮件服务 ...
相关推荐
Java Mail 是一个开源的 Java API,它允许开发者在 Java 应用程序中处理电子邮件。这个“java mail 1.4.5 jar_source 天涯浪子”资源包含了 Java Mail 1.4.5 版本的 JAR 包、源代码和相关的文档,以及其依赖的 ...
总结起来,Java Mail 是一个功能丰富的Java库,通过其API,开发者可以轻松地在Java应用程序中实现邮件功能,无论是发送简单文本邮件,还是处理复杂的MIME格式的邮件,甚至是管理邮件账户,Java Mail 都能提供全面的...
Java Mail 是一个开源的Java库,它为Java应用程序提供了与各种邮件系统交互的能力。这个"mail-1.4.7.jar"是Java Mail的一个版本,主要用于处理电子邮件的发送和其他相关功能。版本号1.4.7表明这是一个较旧但稳定版本...
在Java应用中,如果你需要构建邮件系统或者集成邮件功能,Java Mail是一个不可或缺的工具。 Java Mail API 包含多个组件,如`javax.mail`和`javax.mail.internet`,它们提供了创建、配置、发送和读取邮件的功能。在...
Java Mail 是一个强大的开源库,用于在Java应用程序中处理电子邮件通信。它提供了API,使得开发者可以方便地发送、接收和管理邮件。这个压缩包文件很可能包含了一组示例代码或工具,帮助我们理解如何使用Java Mail ...
10. **与其他技术集成**:由于其广泛的API支持,Java Mail 可以轻松集成到Spring框架、EJB(Enterprise JavaBeans)或其他Java应用中。 在`dfMail-1.0`这个压缩包中,可能包含了Java Mail库的特定版本,以及相关的...
在“java-mail-1.4”这个版本中,我们主要关注的是 JavaMail 1.4 版本的相关特性、使用方法以及重要概念。 JavaMail 提供了与多种邮件协议(如 SMTP、POP3、IMAP)交互的能力,使得开发者能够轻松地在 Java 应用...
总之,这个“java_mail 1.5.zip”压缩包对于Java开发者来说是一份宝贵的资源,通过学习源代码,不仅可以掌握如何使用JavaMail API发送邮件,还能深入了解邮件处理背后的机制,提高邮件应用的开发能力。
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个工具类的创建旨在简化邮件处理的复杂性,使开发者能够便捷地集成邮件功能。以下是对JavaMail工具类及其相关知识点的详细说明: 1. **...
Java Mail API(Application Programming Interface)是基于Java平台的邮件处理标准,它定义了一组接口,允许开发者创建能够处理SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议)等...
在Java Web开发中,它是一个不可或缺的组件,尤其在构建小型系统时,可以作为邮件模块直接应用,无需大量改动。这个压缩包文件包含了与Java Mail相关的源代码,可能是从郝玉龙编著的《Java EE编程技术》一书中提取的...
这篇文档“Java-Mail应用程序设计.ppt”深入讲解了如何利用Java-Mail API进行邮件处理,包括SMTP协议、邮件发送和POP3邮件接收。 首先,SMTP(Simple Mail Transfer Protocol)是互联网上广泛使用的邮件传输协议。...
Java Mail 是一个开源的 Java API,它为开发者提供了在 Java 应用程序中发送和接收电子邮件的功能。Java Mail 1.4 源码的分析和理解有助于我们深入探究其内部工作原理,优化邮件处理效率,并能根据需求进行定制化...
Java Mail API 是一个广泛使用的Java库,用于处理电子邮件通信,包括发送、接收和管理邮件。在本场景中,我们将深入探讨如何使用Java Mail API来访问Lotus Domino邮箱系统。Lotus Domino是由IBM开发的企业级协作平台...
Java Mail和Spring Mail是Java开发中用于处理电子邮件的两个关键库。它们允许开发者在应用程序中实现发送、接收和处理电子邮件的功能。在这个实例中,我们主要关注如何使用Java Mail API和Spring Mail来实现实时的多...
Java的javax.mail API是用于在Java应用程序中发送和接收电子邮件的标准库。这个API提供了一种与邮件服务器交互的抽象方式,使得开发者无需关心具体的邮件协议(如SMTP、POP3或IMAP)。在Java中,使用javax.mail库...
在Java编程中,发送带有附件的邮件是一项常见的任务,尤其在企业级应用或者自动化脚本中。这个场景通常涉及到JavaMail API的使用,一个强大的库,可以用来处理SMTP(简单邮件传输协议)邮件服务。接下来,我们将深入...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者在Java应用程序中收发邮件。Java Web Mail 是基于Java Mail API的扩展,主要用于Web应用中实现邮件功能。在Web环境中,用户通常希望通过网页来发送、接收和...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者在Java应用程序中发送和接收邮件。在Java Mail API的帮助下,你可以实现各种复杂的邮件功能,比如添加附件、设置HTML内容、发送带有图片的邮件等。本案例将...
Java Mail 是一个开源的 Java API,它为开发者提供了在 Java 应用程序中发送和接收电子邮件的能力。这个 API 遵循 JavaBeans Activation Framework (JAF) 规范,允许处理 MIME 类型的数据,包括电子邮件消息。Java ...