- 浏览: 281730 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
iceblue123:
厉害,太感谢楼主了,第二种方法威武!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
gaozi131:
感谢啊 折腾了一下午搞定
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
yenshen:
找了半天,问题终于解决了,感谢!
spring MVC 3.2中@ResponseBody返回乱码的完美解决方案 -
笑闯天下:
感觉效率不是很高啊 ,如果从数据库中取到的数据 还要去自己拼接 ...
java导出CSV文件 -
ajonjun:
http://viralpatel.net/
解决ckeditor html不显示,ckeditor 自动过滤html
网站发送邮件是一个常用功能,现在有相当一部分网站用户注册都需要通过Email验证合法性,而用javamail比较繁琐,apache又做了一件好事:在javamail的基础上封装java发送邮件业务,让用户可以通过简单的调用几个方法就可以实现邮件发送与接收。
首先,这篇文章的测试环境是:jdk 1.6+MyEclipse 5.5.1 GA+javamail 1.4(在控制台测试的,所以没用到应用服务器)。
然后在apache官网上下载Commons Email,下面是几个用Commons Email发邮件的方法。
java发送邮件的基本方法也就这些,当然还有群发,我看了下,Commons Email好像没提供群发的功能,不过如果你有这个需要可以自己写一个:收信人是多个,用”,”分隔,根据收信人数循环发送邮件,也就是多次调用发邮件的方法。
如果你是按照以上步骤写的代码,却不能发送邮件,看看是不是下面的错误:
Exception in thread “main” java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream或者javax.mail.NoSuchProviderException: smtp
解决方案: JavaEE版本和JavaMail的版本不一致,请将sun公司上下载最新版本.如果还报这个错,找到myeclipse环境中的javaee.jar 包,用winrar或者其他解压缩工具打开,删除mail跟activation包,因为javaee.jar中的mail与javamail冲突。
没问题了。
首先,这篇文章的测试环境是:jdk 1.6+MyEclipse 5.5.1 GA+javamail 1.4(在控制台测试的,所以没用到应用服务器)。
然后在apache官网上下载Commons Email,下面是几个用Commons Email发邮件的方法。
package com.zhutou.email; 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; import org.apache.commons.mail.MultiPartEmail; import org.apache.commons.mail.SimpleEmail; /** * 用apache的Commons Email发送邮件 * * @author www.5ipig.com/blog */ public class JavaMail { /** * 用apache的Commons Email发送不含附件的邮件 * * @return 发送结果,是否发送成功 */ public String sendSingleMail() { String resultmsg = "发信失败!"; SimpleEmail email = new SimpleEmail(); email.setHostName("smtp.163.com"); try { email.addTo("ajonjun@163.com", "ajonjun"); email.setFrom("ajonjun@163.com", "ajonjun"); // 请修改成你的邮箱账号和密码。 email.setAuthentication("username", "password"); email.setSubject("发信测试标题"); email.setMsg("This is a simple test of commons-email"); resultmsg = email.send(); if (resultmsg != null) { resultmsg = "发送成功!"; } } catch (EmailException e) { e.printStackTrace(); } return resultmsg; } /** * 发送单个带附件的邮件 * * @return 发送结果,是否发送成功 */ public String sendAttachmentsMail() { String resultmsg = "发信失败!"; // 创建一个附件对象 EmailAttachment attachment = new EmailAttachment(); // 设置附件的地址,可以是本机地址(包括绝对地址和相对地址), //也可以是internet地址,如:http://www.5ipig.com/blog/attachment.php?fid=2 attachment.setPath("E:\\1.jpg"); attachment.setDisposition(EmailAttachment.ATTACHMENT); attachment.setDescription("Picture of gaylys"); attachment.setName("gaylys"); // 创建多文本邮件对象 MultiPartEmail email = new MultiPartEmail(); email.setHostName("smtp.163.com"); try { email.addTo("ajonjun@163.com", "ajonjun"); email.setFrom("ajonjun@163.com", "ajonjun"); // 请修改成你的邮箱账号和密码。 email.setAuthentication("username", "password"); email.setSubject("带附件的邮件"); email.setMsg("Here is the picture you wanted"); // 将附件添加到邮件 email.attach(attachment); // 发送邮件 resultmsg = email.send(); if (resultmsg != null && !"".equals(resultmsg)) { resultmsg = "发送成功!"; } } catch (EmailException e) { e.printStackTrace(); } return resultmsg; } /** * 发送html邮件 * * @return 发送结果,是否发送成功 */ public String sendHtmlEmail() { String resultmsg = "发信失败!"; // 创建邮件对象 HtmlEmail email = new HtmlEmail(); email.setHostName("smtp.163.com"); try { email.addTo("ajonjun@163.com", "ajonjun"); email.setFrom("ajonjun@163.com", "ajonjun"); // 请修改成你的邮箱账号和密码。 email.setAuthentication("username", "password"); email.setSubject("发送html邮件的测试"); // 嵌入附件地址 URL url = new URL( "http://www.5ipig.com/blog/attachment.php?fid=2"); String cid = email.embed(url, "3D桌面"); // 设置编码格式,不设置会出现中文乱码。 email.setCharset("GB2312"); // 写入html代码 email.setHtmlMsg("3D桌面 - <img src="\" alt="" />"); // 设置替代文字 email .setTextMsg("Your email client does not support HTML messages"); // 发送邮件 resultmsg = email.send(); if (resultmsg != null && !"".equals(resultmsg)) { resultmsg = "发送成功!"; } } catch (EmailException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } return resultmsg; } public static void main(String args[]) { JavaMail mail = new JavaMail(); System.out.println(mail.sendHtmlEmail()); } }
java发送邮件的基本方法也就这些,当然还有群发,我看了下,Commons Email好像没提供群发的功能,不过如果你有这个需要可以自己写一个:收信人是多个,用”,”分隔,根据收信人数循环发送邮件,也就是多次调用发邮件的方法。
如果你是按照以上步骤写的代码,却不能发送邮件,看看是不是下面的错误:
Exception in thread “main” java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream或者javax.mail.NoSuchProviderException: smtp
解决方案: JavaEE版本和JavaMail的版本不一致,请将sun公司上下载最新版本.如果还报这个错,找到myeclipse环境中的javaee.jar 包,用winrar或者其他解压缩工具打开,删除mail跟activation包,因为javaee.jar中的mail与javamail冲突。
没问题了。
评论
1 楼
mianhuatangone
2011-01-06
public static void send(String smtpServer, String to, String form,
String subject, String body) {
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);// smtp.sina.com
props.put("mail.smtp.auth", "true");
Authenticator auth = new PopupAuthenticator();
Session session = Session.getInstance(props, auth);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(form));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
to, false));
msg.setSubject(subject);
msg.setText(body);
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
MimeMultipart mp = new MimeMultipart();
MimeBodyPart contentMbp = new MimeBodyPart();
contentMbp.setContent(body, "text/html;charset=UTF-8");
mp.addBodyPart(contentMbp); // 添加附件
msg.setContent(mp);
Transport.send(msg);
System.out.println("邮件已发送");
} catch (Exception e) {
e.printStackTrace();
}
}
String subject, String body) {
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);// smtp.sina.com
props.put("mail.smtp.auth", "true");
Authenticator auth = new PopupAuthenticator();
Session session = Session.getInstance(props, auth);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(form));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
to, false));
msg.setSubject(subject);
msg.setText(body);
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
MimeMultipart mp = new MimeMultipart();
MimeBodyPart contentMbp = new MimeBodyPart();
contentMbp.setContent(body, "text/html;charset=UTF-8");
mp.addBodyPart(contentMbp); // 添加附件
msg.setContent(mp);
Transport.send(msg);
System.out.println("邮件已发送");
} catch (Exception e) {
e.printStackTrace();
}
}
发表评论
-
自己写的分页实体类
2015-01-04 20:18 945public class Pager implements ... -
解决Spring MVC用AOP处理事务不起作用的问题
2014-10-31 09:50 26211、Spring MVC 和 Spring 整合的时候,Spr ... -
activiti5.14 扩展用户自定义表
2014-04-30 17:26 8592因项目需要需求,在网上找了很多关于activiti扩展用户 ... -
某快递公司的面试题
2013-06-25 10:13 9731. 重写和重载的区 ... -
利用ant编译发布打包jar文件和打包api文档为rar文件
2011-04-15 14:26 1991首先在build.properties文件中配置好发布时的路径 ... -
将输入流InputStream转换为String
2011-04-15 00:21 3800最近项目中用apache的httpclient中get ... -
Ant的配置与测试
2011-04-13 01:02 975Ant是Java平台下非常棒的批处理命令执行程序,能非常 ... -
java导出CSV文件
2010-11-24 22:09 20018最近有个项目要将数据库中查出来的数据导出到CSV文件,晚上抽时 ... -
set、List、map的区别
2010-08-04 23:59 1803List接口对Collection进行了简单的扩充,Lis ... -
有关Java多线程程序设计
2010-07-28 09:41 871一:理解多线程 多线程是这样一种机制,它允许在 ... -
java生成验证码(支持中文)
2010-07-23 00:08 3034PictureCheckCode.java ... -
一个java程序员应该具备的能力和知识
2010-07-23 00:05 1216目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的 ... -
Hibernate+Spring+Struts2整合开发中的一个分页显示方案
2010-03-06 22:39 13591、DAO层接口的设计,在MemberDao接口中定义了如下两 ... -
java 快速排序
2010-02-10 00:02 818public class Qsort{ public ... -
java 插入排序
2010-02-10 00:02 1024public class InsertSort{ p ... -
java希尔排序
2010-02-10 00:01 1254public class InsertSort{ p ... -
打印杨辉三角
2010-02-09 23:59 1129public class Syanghui{ pu ... -
java连接Oracle数据库代码
2010-02-09 23:47 1117public class test { /** * @ ... -
java连接mysql数据库代码
2010-02-09 23:46 1414public class MySQLTest { /** ... -
23种设计模式
2010-02-02 23:43 927设计模的示例,完整的请下载附件. 谢谢
相关推荐
在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个开源的Java库,它为Java应用程序提供了处理邮件的标准API。这个API包含了创建、发送、接收邮件所需的所有组件。为了实现邮件发送,我们需要...
本篇文章将详细讲解如何利用Java实现邮件发送,并结合Apache的相关库来创建邮件发送模板,以提升效率和用户体验。 首先,JavaMail API是Java中用于处理电子邮件的主要库。它提供了丰富的API,可以用来创建、发送和...
以下是如何利用Java实现这一功能的详细步骤和关键知识点: 首先,你需要配置邮件发送的相关属性,这通常通过一个properties文件完成。在示例中,`utils.properties`文件包含了SMTP服务器地址、发件人的邮箱地址和...
总的来说,"JavaMailTest-master"项目是一个实践教程,教你如何利用JavaMail API创建一个能够发送邮件的应用。通过学习和理解这个项目,你将能够熟练掌握Java环境下发送邮件的技术,并能应用于各种实际场景,如自动...
本示例代码及说明适用于希望利用Java Mail API发送包含丰富格式内容邮件的开发者。 ### Java 发送带有附件及多媒体内容的邮件 #### 一、Java Mail API 简介 Java Mail API 是一个强大的工具包,用于发送、接收和...
在Java编程中,发送电子邮件是一项常见的任务,常用于自动化通知、报表发送等场景。要实现这一功能,我们需要利用JavaMail API。本篇文章将详细介绍如何使用Java编写代码来发送邮件,并介绍所需的jar包。 首先,...
如果你有`Java发邮箱(带附件).docx`文档,可以参考其中的示例代码进行学习,同时,`MailSendBean`可能是封装邮件发送逻辑的Java Bean类,包含了上述步骤的各个部分,便于代码组织和重用。 总的来说,理解Java ...
通过上述步骤,开发者可以利用JavaMail API在Java应用程序中轻松地发送邮件。记住,为了确保邮件的稳定发送,需要根据实际的邮件服务器配置调整代码,比如是否使用TLS/SSL,以及相应的端口号和认证方式。
在Java编程中,发送带有模板的邮件是一项常见的任务,尤其对于企业级应用来说,通过电子...通过学习和理解这些知识点,你将能够利用Java实现在各种场景下发送带模板的邮件功能,为你的应用程序添加更丰富的通信手段。
本教程将详细讲解如何利用Java发送邮件,包括所需的库、基本概念以及具体实现步骤。 首先,Java邮件API(JavaMail API)是Java平台中用于处理电子邮件的标准API,它定义了一组接口和类,允许程序员创建和发送电子...
Java基于Socket利用163邮件服务器发送邮件是一个常见的编程任务,尤其在自动化通知、系统报警或者用户服务中广泛应用。在这个项目中,我们将深入探讨如何使用Java的JavaMail API和Socket通信来实现这一功能。 首先...
本文将基于提供的描述及部分代码片段,详细介绍如何利用Java实现邮件发送功能。本教程涉及的关键知识点包括:配置邮件服务器、设置发件人与收件人信息、处理邮件验证以及附件的添加。 #### 配置邮件服务器 在发送...
在Java中利用163邮箱发邮件,很实用的可以看看!!
然后,利用`Session`创建`MimeMessage`实例,设置邮件头信息(如发件人、收件人、主题等),添加正文和附件。最后,通过`Transport.send(message)`方法发送邮件。 7. **异常处理**: 在整个过程中,应充分考虑异常...
Java程序可以利用SMTP服务发送邮件,但需要通过一个API来实现,JavaMail就是这样的工具。 JavaMail API是Java中用于处理邮件的接口库,它提供了创建、发送和接收邮件的功能。要使用JavaMail发送邮件,你需要以下...
以下将详细介绍如何利用Java发送邮件,以及项目中的关键知识点。 首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,允许开发者在Java应用程序中创建和发送电子邮件。为了使用JavaMail API,你需要...
Java邮件系统是一个基于Java Web技术构建的B/S(Browser/Server)架构的应用程序,它允许用户通过网页浏览器发送、接收和管理电子邮件。在本项目中,开发者利用了Java的强大力量,特别是对于网络通信和数据处理的...
这个例子代码将演示如何在Java环境中利用`commons-email-1.0.jar`库来发送带有附件的邮件。Apache Commons Email库提供了丰富的功能,简化了邮件发送过程。 首先,你需要在项目中引入`commons-email-1.0.jar`库。这...