java web邮件收发
1.网上方法要导入两个包
mail.jar&activation.jar
package com.zjh.shopping.util; import java.util.Date;
import java.util.Properties; import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility; public class JavaMailSendUtil { public void sendmail(String subject, String from, String[] to,
String text, String[] filenames, String mimeType) {
try {
Properties props = new Properties(); String smtp = "smtp.163.com"; // 设置发送邮件所用到的smtp
String servername = "*******"; //邮箱账号名
String serverpaswd = "******"; //邮箱密码 javax.mail.Session mailSession = null; // 邮件会话对象
javax.mail.internet.MimeMessage mimeMsg = null; // MIME 邮件对象 props = java.lang.System.getProperties(); // 获得系统属性对象
props.put("mail.smtp.host", smtp); // 设置SMTP主机
props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证
// 到服务器验证发送的用户名和密码是否正确
SmtpAuthenticator myEmailAuther = new SmtpAuthenticator(servername,
serverpaswd);
// 设置邮件会话 注意这里将认证信息放进了Session的创建参数里
mailSession = javax.mail.Session.getInstance(props,
(Authenticator) myEmailAuther);
// 设置传输协议
javax.mail.Transport transport = mailSession.getTransport("smtp");
// 设置from、to等信息
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
if (null != from && !"".equals(from)) {
InternetAddress sentFrom = new InternetAddress(from);
mimeMsg.setFrom(sentFrom); // 设置发送人地址
} InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
System.out.println("发送到:" + to[i]);
sendTo[i] = new InternetAddress(to[i]);
} mimeMsg.setRecipients(
javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
mimeMsg.setSubject(subject, "gb2312"); MimeBodyPart messageBodyPart1 = new MimeBodyPart();
// messageBodyPart.setText(UnicodeToChinese(text));
messageBodyPart1.setContent(text, mimeType); // 附件传输格式
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart1); for (int i = 0; i < filenames.length; i++) {
MimeBodyPart messageBodyPart2 = new MimeBodyPart(); String filename = filenames[i].split(";")[0];
String displayname = filenames[i].split(";")[1];
// 得到数据源
FileDataSource fds = new FileDataSource(filename);
// BodyPart添加附件本身
messageBodyPart2.setDataHandler(new DataHandler(fds));
// BodyPart添加附件文件名
messageBodyPart2.setFileName(MimeUtility
.encodeText(displayname));
multipart.addBodyPart(messageBodyPart2);
}
mimeMsg.setContent(multipart);
// 设置信件头的发送日期
mimeMsg.setSentDate(new Date());
mimeMsg.saveChanges();
// 发送邮件
transport.send(mimeMsg);
transport.close();
System.out.println("发送到成功!!!");
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) throws Exception {
String title = "测试邮件";// 所发送邮件的标题
String from = "************@163.com";// 从那里发送
String sendTo[] = { "********@qq.com" };// 发送到那里
// 邮件的文本内容,可以包含html标记则显示为html页面
String content = "test java send mail !!!!!!<br><a href="http://sjsky.javaeye.com/">My blog</a>";
// 所包含的附件,及附件的重新命名
String fileNames[] = { "d:\\test.jpg;test.jpg" }; JavaMailSendUtil test = new JavaMailSendUtil();
try {
// MailSender mailsender = new MailSender();
test.sendmail(title, from, sendTo, content, fileNames,
"text/html;charset=gb2312");
} catch (Exception ex) {
ex.printStackTrace();
}
} class SmtpAuthenticator extends Authenticator {
String username = null;
String password = null; public SmtpAuthenticator(String username, String password) {
super();
this.username = username;
this.password = password;
} public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.username, this.password);
}
}
}
2.自己用的
package com.gree.mail.mailsend; import java.util.Properties; import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException; import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException; public class Mailsend2 { public static Session getSession() {
Session session = null; // session = (Session)new InitialContext().lookup("MailSession"); Properties props = new Properties();
props.put("mail.smtp.host", "10.1.1.168");
props.put("mail.smtp.auth", "false");
session = Session.getDefaultInstance(props, null); return session;
} public static void sendMessage(String from, String[] to, String[] cc, String subject, String content,
String mimeType) throws javax.mail.MessagingException { Message message = new MimeMessage(getSession());
if (!StringUtils.isEmpty(from)) {
InternetAddress sentFrom = new InternetAddress(from);
message.setFrom(sentFrom);
}
InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
sendTo[i] = new InternetAddress(to[i]+"@gree.com.cn");
}
if ( (cc.length > 0) && (cc[0] != null)) {
InternetAddress[] copyTo = new InternetAddress[cc.length];
for (int i = 0; i < cc.length; i++) {
copyTo[i] = new InternetAddress(cc[i]+"@gree.com.cn");
}
message.setRecipients(Message.RecipientType.CC, copyTo);
}
message.setRecipients(Message.RecipientType.TO, sendTo); //System.out.println("发送人员:"+message.getRecipients(Message.RecipientType.TO));
//System.out.println("抄送人员:"+message.getRecipients(Message.RecipientType.CC)) message.setSubject(subject);
message.setContent(content, mimeType);
Transport.send(message);
} public void sendHTMLMessage(String[] to, String[] cc, String title, String content)throws MessagingException { try {
sendMessage("SCBWEB", to, cc, title+"-模具管理系统信息", content, "text/html;Charset=gb2312");
} catch (javax.mail.MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// System.out.println("2="+content);
} public static void main(String[] args) {
String [] to= new String[] {"180172"};
String [] cc= new String[] {"180158"};
String title="ceshi";
String content="晚上小天请我们吃烤鱼,8号门对面,大概67点左右,等下下班别走开";
try {
Mailsend2.sendMessage("180170@gree.com.cn", to, cc, title, content, "text/html;Charset=utf-8");
} catch (javax.mail.MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
myeclipse中发送邮件出现Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

出现这个问题的原因是jar包版本不统一,解决方法如下:
我在项目导入了jar包
与myeclipse自带jar冲突了
删除Java EE 5 Libraries/javaee.jar/mail里的包有东西.
具体操作:
进入myeclipse的安装目录:我安装的是myeclipse blue 8.5 具体路径如下
E:\development_tools\myeclipse_8.5\install_d\common\plugins\com.genuitec.eclipse.j2eedt.core_8.5.0.me201003231033\data\libraryset\EE_5
找到javaee.jar,打开后删除mail文件夹即可(需要先关闭运行着的myeclipse,否则无法删除)

java web邮件收发的更多相关文章
- 高效 Java Web 开发框架 JessMA v3.5.1
JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...
- 高效 Java Web 开发框架 JessMA v3.4.1
JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...
- java web 之客户关系管理系统
这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...
- Java Web中的中文编码
Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...
- java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化
一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- JAVA WEB WITH IDEA
本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...
随机推荐
- linux下telnet安装与使用
现在管理linux基本都用crt.xshell或者putty,已经没什么人用telnet,因为后续需要讲zabbix免客户端监控只telnet,通过telnet来监控服务器性能. yum安装telne ...
- arcgis engine10.1和arcObjects的一些问题
1.arcengine10.1只支持vs2010 2.10.1以后没有engine runtimes,改成engine了,以前的engine可以理解为Arcobject,就是我们可以只装AO
- JAVA使用JDBC连接MySQL数据库 一
public class JDBCTest { public static void main(String[] args){ String driver = "com.mysql.jdbc ...
- BZOJ4002 [JLOI2015]有意义的字符串 【数学 + 矩乘】
题目链接 BZOJ4002 题解 容易想到\(\frac{b + \sqrt{d}}{2}\)是二次函数\(x^2 - bx + \frac{b^2 - d}{4} = 0\)的其中一根 那么就有 \ ...
- Struts框架详解
1.Struts应用框架介绍 (1)框架 框架最简单的形式是指已开发过并已测试过的软件的程序块,这些程序块可以在多个软件开发工程中重用.框架提供了一个概括的体系结构模版,可以用这个模板来构建特定领域中 ...
- 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE
http://www.crifan.com/how_to_do_python_development_under_windows_environment/ 本文目的 希望对于,如何在Windows下, ...
- 【HDOJ5972】Regular Number(Bitset,ShiftAnd)
题意:给你N位数,接下来有N行,第i行先输入n,表示这个数的第i 位上可以在接下来的n个数中挑选,然后i 行再输n个数. 然后输入需要匹配的母串,让你输出母串中有多少个可行的N位子串. n<=1 ...
- MVC3 中使用 Ajax.ActionLink Ajax.BeginForm
原文发布时间为:2011-05-01 -- 来源于本人的百度文章 [由搬家工具导入] http://msdn.microsoft.com/en-us/library/dd381533%28VS.98% ...
- [LeetCode] Compare Version Numbers 字符串操作
Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...
- 浮点优化选项 -ffast-math:极大地提高浮点运算速度【转】
转自:http://blog.csdn.net/zjujoe/article/details/2604157 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 关于浮点优化选项摘 ...