项目源码下载:http://download.csdn.net/detail/liangrui1988/6720047

效果图:

相关代码:

test1

package com.mail;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* com.mail.reference下面的是在网上找的,还没来得级看
* Test 是本人写的,并都测试成功发送了的 邮箱和密码换成你自已的,
* 可能会遇到一个问题, 就是要把你自已myeclipse的javaee.jar文件中的mail包给删掉
* 他们会冲突,自已到网上找一个具体的操作吧!
* @author liangrui
*
*/ public class Test1 { public static void main(String[] args) throws Exception {
System.out.println("hello...."); Properties perps=new Properties();
//认证
perps.setProperty("mail.smtp.auth", "true");
//协议
perps.setProperty("mail.transport.protocol", "smtp"); Session session=Session.getInstance(perps);
Message mes=new MimeMessage(session);
//收件 内容 、 人
mes.setText(" hello worldddddddddddddddddd"); //设置发件人地址
mes.setFrom(new InternetAddress("liangrui_1988@126.com")); //发件信息
Transport transport=session.getTransport();
transport.connect("smtp.126.com",25,"liangrui_1988","******"); //收件人
transport.sendMessage(mes,
new Address[]{new InternetAddress("liangrui_1988@sina.com")}); transport.close(); System.out.println("-----");
} }

test2

package com.mail;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType; public class Test2 { /**
* @param args
* @throws MessagingException
*/
public static void main(String[] args) throws Exception { //邮件Properties设置============================================
Properties pro=new Properties();
//认证
pro.setProperty("mail.smtp.auth", "true");
//协议
pro.setProperty("mail.transport.protocol", "smtp");
//主机 指定服务器 端口默认
pro.setProperty("mail.host", "smtp.sina.com"); //邮件Session设置============================================
Session session= Session.getInstance(pro,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
//用户名密码
return new PasswordAuthentication("liangrui_1988","******"); }
}); //邮件信息设置============================================
Message ms=new MimeMessage(session);
//地址 发件人
ms.setFrom(new InternetAddress("liangrui_1988@sina.com"));
//主题
ms.setSubject("你好吗!这是邮件主题");
//地址 收件人
ms.setRecipients(RecipientType.TO,
InternetAddress.parse("liangrui_1988@126.com,liangrui_1988@sohu.com,liangrui_1988@sohu.com")); //内容
ms.setContent("<span style='color:red'>文本内容 呆呆呆呵呵</span>","text/html;charset=gbk"); //发射=================================
Transport.send(ms);
System.out.println("okkk--------------");
} }

test2222demo

package com.mail;

import java.io.FileInputStream;
import java.util.Properties; import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType; public class Test2Demo { /**
* @param args
* @throws MessagingException
*/
public static void main(String[] args) throws Exception { //邮件Properties设置============================================
Properties pro=new Properties();
//认证
pro.setProperty("mail.smtp.auth", "true");
//协议
pro.setProperty("mail.transport.protocol", "smtp");
//主机 指定服务器 端口默认
pro.setProperty("mail.host", "smtp.sina.com"); //邮件Session设置============================================
Session session= Session.getInstance(pro,
new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
//用户名密码
return new PasswordAuthentication("liangrui_1988","******"); }
}); //邮件信息设置============================================
/*Message ms=new MimeMessage(session);
//地址 发件人
ms.setFrom(new InternetAddress("liangrui_1988@sina.com"));
//主题
ms.setSubject("你好吗!这是邮件主题");
//地址 收件人
ms.setRecipients(RecipientType.TO,
InternetAddress.parse("liangrui_1988@126.com,liangrui_1988@sina.com,liangrui_1988@sohu.com")); //内容
ms.setContent("<span style='color:red'>文本内容 呆呆呆呵呵</span>","text/html;charset=gbk"); //发射=================================
Transport.send(ms);*/ //加载生成好的邮件 Test3 并发送
Message me=new MimeMessage(session,new FileInputStream("F:/juxunDocument/email/demo3.eml"));
Transport.send(me,InternetAddress.parse("liangrui_1988@sohu.com") ); System.out.println("okkk--------------"); }
}

test3

package com.mail;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Properties; import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility; import com.sun.mail.util.MimeUtil; public class Test3 {
public static void main(String[] args) throws Exception { Session session=Session.getInstance(new Properties());
MimeMessage message=new MimeMessage(session);
//发件人 指定别名
message.setFrom(new InternetAddress("\""+MimeUtility.encodeText("国务院")+"\" <liangrui_1988@sina.com>")); message.setSubject("subject Hello world");//标题
//如果收到该邮件 点击回复时,地址是这个邮箱地址 而不是发件人
message.setReplyTo(new Address[]{new InternetAddress("liangrui_1988@sohu.com")});//回复
//收件人
message.setRecipients(RecipientType.TO,
//把字符串转为数组 //转码
InternetAddress.parse(
MimeUtility.encodeText("刘备")+" <liangrui_1988@126.com>,"
+MimeUtility.encodeText("关羽")+ "<liangrui_1988@suho.com>")); //复杂格试文件内容 多部件的/混合
MimeMultipart mutimart=new MimeMultipart("mixed");
//文本
message.setContent(mutimart); //多用途互联网邮件扩展 mime 体部分
MimeBodyPart content =new MimeBodyPart();
MimeBodyPart attach1 =new MimeBodyPart();
MimeBodyPart attach2 =new MimeBodyPart(); //添加文本 和附近
mutimart.addBodyPart(content);
mutimart.addBodyPart(attach1);
mutimart.addBodyPart(attach2); //附近1
DataSource ds=new FileDataSource("E:\\1y2\\context.xml");
DataHandler dh1=new DataHandler(ds);
attach1.setDataHandler(dh1);
attach1.setFileName(MimeUtility.encodeText("中文context.xml"));//附件名称 //附近2
DataSource ds2=new FileDataSource("F:\\ipho\\IMG_0266.JPG");
DataHandler dh2=new DataHandler(ds2);
attach2.setDataHandler(dh2);
attach2.setFileName(
MimeUtility.encodeText("图片img_0266.jpg"));//附件名称 转为中文 //文本 是一个复杂体
MimeMultipart bodyMultipart=new MimeMultipart("related");
content.setContent(bodyMultipart); //构造 体 有两个部分组成 图片和文本
MimeBodyPart thmlPart=new MimeBodyPart();
MimeBodyPart imgPart=new MimeBodyPart(); bodyMultipart.addBodyPart(thmlPart);//html
bodyMultipart.addBodyPart(imgPart);//img //图片数据来源
DataSource dsImg=new FileDataSource("F:/ipho/IMG_0332.JPG");
DataHandler dhImg=new DataHandler(dsImg);
imgPart.setDataHandler(dhImg); //这个图片代表的位置
imgPart.setHeader("Content-location","http://www.aaa.com/img_0332.jpg"); //文本
thmlPart.setContent("<h1>你好呀 </h1><span style=color='red'>yesterday once more</sapn>" +
" <img src='http://www.aaa.com/img_0332.jpg'/>",
"text/html;charset=gbk");
//生成
message.saveChanges(); //保存在本地 测试 输出到本地
OutputStream os=new FileOutputStream("F:\\juxunDocument\\email\\demo3.eml");
message.writeTo(os);
os.close(); } }

servelt

package com.mail.web.servlet;

import java.io.IOException;
import java.io.PrintWriter; 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.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.mail.Test2Demo; public class SendMail extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doPost(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter(); try {
//调用生成好的Test2Demo.jar 类发送邮件 方式一
//Test2Demo.main(new String[]{}); /**
* JNDI 配制方式发送邮件 方式二
* META-INF文件夹中配context.xml信息
* 在web.xml配置相关信息
* 发布到tomcat时
* 需要把lib 的mail.jar拷贝到Tomcat的lib下
* 并且删掉项目中的mail.jar
*/ Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (Session) envCtx.lookup("mail/hello"); Message message = new MimeMessage(session);
//发件人
message.setFrom(new InternetAddress("liangrui_1988@sina.com")); //收件人地址
InternetAddress to[] = new InternetAddress[1];
to[0] = new InternetAddress("liangrui_1988@sohu.com"); message.setRecipients(Message.RecipientType.TO, to);
message.setSubject("测试主题");//主题
message.setText("test email ok---"); //Transport
Transport tran=session.getTransport(); tran.connect("smtp.sina.com","liangrui_1988","*****");//获得连接
tran.sendMessage(message, to); tran.close(); out.print("ok----------------");
} catch (Exception e) {
e.printStackTrace(out);
} out.flush();
out.close();
} }

META-INF

context.xml

<Context>
<Resource name="mail/hello" auth="Container"
type="javax.mail.Session"
mail.smtp.host="smtp.sina.com"
mail.smtp.auth="true"
mail.transport.protocol="smtp"
/>
</Context>

java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作的更多相关文章

  1. 深入理解Java并发synchronized同步化的代码块不是this对象时的操作

    本文仅仅是为了说明synchronized关键字同步的是对象不是方法,列子的确有失偏颇. 一.明确一点synchronized同步的是对象不是方法也不是代码块  我有关synchronized同步的是 ...

  2. Eclipse+Java+OpenCV246环境搭建和代码测试

    1.首先下载OpenCV2.4.6,下载的时候,选择windows版的.然后安装 2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\buil ...

  3. webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成

    首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...

  4. LibSvm流程及java代码测试

    使用libSvm实现文本分类的基本过程,此文参考 使用libsvm实现文本分类 对前期数据准备及后续的分类测试进行了验证,同时对文中作者的分词组件修改成hanLP分词,对数字进行过滤,仅保留长度大于1 ...

  5. Mybatis代码自动生成(含测试)

    一.建立数据库 create database shixun; use shixun; create table user( id int primary key auto_increment , u ...

  6. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Java 银联支付官网demo测试及项目整合代码

    注:原文来源与 < Java 银联支付官网demo测试及项目整合代码  > 银联支付(网关支付B2C) 一.测试官网demo a)下载官网开发包,导入eclipse等待修改(下载的开发包没 ...

  8. HashMap在JDK1.8中并发操作,代码测试以及源码分析

    HashMap在JDK1.8中并发操作不会出现死循环,只会出现缺数据.测试如下: package JDKSource; import java.util.HashMap; import java.ut ...

  9. Java下的框架编程(反射,泛型,元数据,CGLib,代码动态生成,AOP,动态语言嵌入)

    Java 虽然没有动态语言般暴起,但仍然天连天,水接水的生出好多框架技术---反射(reflection),泛型(generics),元数据(annotation),proxies(proxy/cgl ...

随机推荐

  1. 程序中的Cookie 和Session

    这几天回家休息后,想想放假之前的几天,主要看的一些工作上的东西,发现对Session和Cookie这两个东西,我还是很陌生.恩,趁着有网,看了点相关的资料,打算整理下.一翻博客,发现已经有前辈已经对这 ...

  2. Knockout快速扫盲

    1.Knockout.js是什么?   Knockout是一款很优秀的js库,它可以快速让你使用一个干净整洁的底层数据模型,即可创建一个富文本且具有良好显示和编辑功能的用户界面.任何时候你的ui需要自 ...

  3. 使用命令部署wsp包,并将其部署到不同的web应用程序

    http://www.c-sharpcorner.com/uploadfile/anavijai/how-to-deploy-a-wsp-using-powershell-in-sharepoint- ...

  4. PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等

    页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...

  5. js 特效 手风琴效果

    $(document).ready(function(){ //定义展开的块 var lastBlock = $('#a1'); //展开的块的宽度 var maxWidth = 406; //折叠的 ...

  6. Main function

    Main function A program shall contain a global function named main, which is the designated start of ...

  7. 个人自建网店(WordPress WooCommerce on SAE)集成支付宝支付

    插件: Alipay For WooCommerce 到支付宝账户的商家服务提出申请: https://b.alipay.com/order/serviceIndex.htm 在"在线签约- ...

  8. 4.7 《硬啃设计模式》 第24章 麻烦的多角关系 - 中介者模式(Mediator Pattern)简介

    在Windows程序中,有时候界面控件之间的交互会很麻烦,如:A控件显示什么的时候,B控件要显示什么,另外C控件要不可用,同样其它控件也会有类似的复杂要求.控件与控件之间很容易形成复杂的多角关系了.现 ...

  9. HTML5 总结-地理定位-6

    HTML5 地理定位 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支持 Int ...

  10. IM-即时通讯技术概述

    IM-即时通讯技术概述 简述 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.大多数常用的即时通讯发 ...