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邮件收发的更多相关文章

  1. 高效 Java Web 开发框架 JessMA v3.5.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  2. 高效 Java Web 开发框架 JessMA v3.4.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  3. java web 之客户关系管理系统

    这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...

  4. Java Web中的中文编码

    Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...

  5. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

  6. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  7. JAVA WEB WITH IDEA

    本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程

  8. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

  9. Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用

    问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...

随机推荐

  1. nyoj 题目17 单调递增最长子序列

    单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4   输入 ...

  2. POJ 3678 Katu Puzzle(2-SAT,合取范式大集合)

    Katu Puzzle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9987   Accepted: 3741 Descr ...

  3. [NOI2003][bzoj1507] 文本编辑器 editor [splay]

    其实看明白了就是一道水题 毕竟模板 splay敲一发,插入一个串的时候先把它构建成一棵平衡树,再挂到原来的splay上面去即可 没别的了,上代码 #include<iostream> #i ...

  4. BZOJ2806 [Ctsc2012]Cheat 【后缀自动机 + 二分 + 单调队列优化DP】

    题目 输入格式 第一行两个整数N,M表示待检查的作文数量,和小强的标准作文库 的行数 接下来M行的01串,表示标准作文库 接下来N行的01串,表示N篇作文 输出格式 N行,每行一个整数,表示这篇作文的 ...

  5. 百度地图API 根据地址查询经纬度

    html页面.引用上API: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> ...

  6. 【06】Vue 之 组件化开发

    组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她 ...

  7. poj 1743 Musical Theme 后缀自动机/后缀数组/后缀树

    题目大意 直接用了hzwer的题意 题意:有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题."主题&qu ...

  8. (三)Spring 依赖注入

    一.Spring框架本身有四大原则: 使用POJO进行轻量级和最小侵入式开发. 通过依赖注入和接口变成实现松耦合. 通过AOP和默认习惯进行声明式变成. 使用AOP和模板减少模式化代码. Spring ...

  9. ashx接收参数 ashx传递参数

    原文发布时间为:2009-09-30 -- 来源于本人的百度文章 [由搬家工具导入] Handler.ashx文件: <%@ WebHandler Language="C#" ...

  10. AtCoder Regular Contest 077 E - guruguru 线性函数 前缀和

    题目链接 题意 灯有\(m\)个亮度等级,\(1,2,...,m\),有两种按钮: 每次将亮度等级\(+1\),如\(1\rightarrow 2,2\rightarrow 3,...,m-1\rig ...