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. CentOS下安装netcat

    CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态.在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat ...

  2. AngularJs 特性 之 双向数据绑定

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  3. BZOJ2393 & 1853 [Scoi2010]幸运数字 【搜索 + 容斥】

    题目 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的"幸运号码"是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是" ...

  4. 【HDU 2087 剪花布条】

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  5. idea工具开发注意事项

    pom.xml中不需要有包 <dependency> <groupId>javax</groupId> <artifactId>javaee-api&l ...

  6. C语言位运算符:与、或、异或、取反、左移与右移详细介绍

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...

  7. vue2搭建简易spa

    使用vue-cli来配置webpack,webpack是一个打包工具,使程序模块化 全局安装vue-cli: npm install -g vue-cli 安装好后,使用vue-cli脚手架配置web ...

  8. vs2017 出现“文件中的类都不能进行设计,因此未能为该文件显示设计器”问题处理

    今天拷贝了以前的一个项目.打算出一个新版本. 但是拷贝了sln文件后,去除掉以前的项目,新增了一个  winfrom项目中 出现了:文件中的类都不能进行设计,因此未能为该文件显示设计器.错误 百度了一 ...

  9. codeforces round375(div.2)题解

    首先吐槽一下这套题...为什么EF全是图论QAQ 过了ABCD四个题...F的并查集死磕了好久... 不过似乎rank还算乐观...(因为ABC都是一次过的QAQ) Problem A: 啥都不想说Q ...

  10. js禁用"Backspace"键(即禁止网页倒退)

    项目遇到的一个问题一个普通网页,如果这个网页上没有焦点的话,那么点击"Backspace"键的时候,网页会回退(倒退到上一个网页),这样就会就有一个问题,当我在一个输入框进行输入的 ...