java 发送邮件 email相关操作代码测试,生成复杂格式邮件,发送邮件相关操作
效果图:
相关代码:
test1
- packagecom.mail;
- importjava.util.Properties;
- importjavax.mail.Address;
- importjavax.mail.Message;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- /**
- *com.mail.reference下面的是在网上找的,还没来得级看
- *Test是本人写的,并都测试成功发送了的邮箱和密码换成你自已的,
- *可能会遇到一个问题,就是要把你自已myeclipse的javaee.jar文件中的mail包给删掉
- *他们会冲突,自已到网上找一个具体的操作吧!
- *@authorliangrui
- *
- */
- publicclassTest1{
- publicstaticvoidmain(String[]args)throwsException{
- System.out.println("hello....");
- Propertiesperps=newProperties();
- //认证
- perps.setProperty("mail.smtp.auth","true");
- //协议
- perps.setProperty("mail.transport.protocol","smtp");
- Sessionsession=Session.getInstance(perps);
- Messagemes=newMimeMessage(session);
- //收件内容、人
- mes.setText("helloworldddddddddddddddddd");
- //设置发件人地址
- mes.setFrom(newInternetAddress("[email protected]"));
- //发件信息
- Transporttransport=session.getTransport();
- transport.connect("smtp.126.com",25,"liangrui_1988","******");
- //收件人
- transport.sendMessage(mes,
- newAddress[]{newInternetAddress("[email protected]")});
- transport.close();
- System.out.println("-----");
- }
- }
test2
- packagecom.mail;
- importjava.util.Properties;
- importjavax.mail.Authenticator;
- importjavax.mail.Message;
- importjavax.mail.MessagingException;
- importjavax.mail.PasswordAuthentication;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- importjavax.mail.internet.MimeMessage.RecipientType;
- publicclassTest2{
- /**
- *@paramargs
- *@throwsMessagingException
- */
- publicstaticvoidmain(String[]args)throwsException{
- //邮件Properties设置============================================
- Propertiespro=newProperties();
- //认证
- pro.setProperty("mail.smtp.auth","true");
- //协议
- pro.setProperty("mail.transport.protocol","smtp");
- //主机指定服务器端口默认
- pro.setProperty("mail.host","smtp.sina.com");
- //邮件Session设置============================================
- Sessionsession=Session.getInstance(pro,
- newAuthenticator(){
- protectedPasswordAuthenticationgetPasswordAuthentication(){
- //用户名密码
- returnnewPasswordAuthentication("liangrui_1988","******");
- }
- });
- //邮件信息设置============================================
- Messagems=newMimeMessage(session);
- //地址发件人
- ms.setFrom(newInternetAddress("[email protected]"));
- //主题
- ms.setSubject("你好吗!这是邮件主题");
- //地址收件人
- ms.setRecipients(RecipientType.TO,
- InternetAddress.parse("[email protected],[email protected],[email protected]"));
- //内容
- ms.setContent("<spanstyle='color:red'>文本内容呆呆呆呵呵</span>","text/html;charset=gbk");
- //发射=================================
- Transport.send(ms);
- System.out.println("okkk--------------");
- }
- }
test2222demo
- packagecom.mail;
- importjava.io.FileInputStream;
- importjava.util.Properties;
- importjavax.mail.Authenticator;
- importjavax.mail.Message;
- importjavax.mail.MessagingException;
- importjavax.mail.PasswordAuthentication;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- importjavax.mail.internet.MimeMessage.RecipientType;
- publicclassTest2Demo{
- /**
- *@paramargs
- *@throwsMessagingException
- */
- publicstaticvoidmain(String[]args)throwsException{
- //邮件Properties设置============================================
- Propertiespro=newProperties();
- //认证
- pro.setProperty("mail.smtp.auth","true");
- //协议
- pro.setProperty("mail.transport.protocol","smtp");
- //主机指定服务器端口默认
- pro.setProperty("mail.host","smtp.sina.com");
- //邮件Session设置============================================
- Sessionsession=Session.getInstance(pro,
- newAuthenticator(){
- protectedPasswordAuthenticationgetPasswordAuthentication(){
- //用户名密码
- returnnewPasswordAuthentication("liangrui_1988","******");
- }
- });
- //邮件信息设置============================================
- /*Messagems=newMimeMessage(session);
- //地址发件人
- ms.setFrom(newInternetAddress("[email protected]"));
- //主题
- ms.setSubject("你好吗!这是邮件主题");
- //地址收件人
- ms.setRecipients(RecipientType.TO,
- InternetAddress.parse("[email protected],[email protected],[email protected]"));
- //内容
- ms.setContent("<spanstyle='color:red'>文本内容呆呆呆呵呵</span>","text/html;charset=gbk");
- //发射=================================
- Transport.send(ms);*/
- //加载生成好的邮件Test3并发送
- Messageme=newMimeMessage(session,newFileInputStream("F:/juxunDocument/email/demo3.eml"));
- Transport.send(me,InternetAddress.parse("[email protected]"));
- System.out.println("okkk--------------");
- }
- }
test3
- packagecom.mail;
- importjava.io.FileOutputStream;
- importjava.io.OutputStream;
- importjava.util.Properties;
- importjavax.activation.DataHandler;
- importjavax.activation.DataSource;
- importjavax.activation.FileDataSource;
- importjavax.mail.Address;
- importjavax.mail.BodyPart;
- importjavax.mail.MessagingException;
- importjavax.mail.Session;
- importjavax.mail.Message.RecipientType;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeBodyPart;
- importjavax.mail.internet.MimeMessage;
- importjavax.mail.internet.MimeMultipart;
- importjavax.mail.internet.MimeUtility;
- importcom.sun.mail.util.MimeUtil;
- publicclassTest3{
- publicstaticvoidmain(String[]args)throwsException{
- Sessionsession=Session.getInstance(newProperties());
- MimeMessagemessage=newMimeMessage(session);
- //发件人指定别名
- message.setFrom(newInternetAddress("\""+MimeUtility.encodeText("国务院")+"\"<[email protected]>"));
- message.setSubject("subjectHelloworld");//标题
- //如果收到该邮件点击回复时,地址是这个邮箱地址而不是发件人
- message.setReplyTo(newAddress[]{newInternetAddress("[email protected]")});//回复
- //收件人
- message.setRecipients(RecipientType.TO,
- //把字符串转为数组//转码
- InternetAddress.parse(
- MimeUtility.encodeText("刘备")+"<[email protected]>,"
- +MimeUtility.encodeText("关羽")+"<[email protected]>"));
- //复杂格试文件内容多部件的/混合
- MimeMultipartmutimart=newMimeMultipart("mixed");
- //文本
- message.setContent(mutimart);
- //多用途互联网邮件扩展mime体部分
- MimeBodyPartcontent=newMimeBodyPart();
- MimeBodyPartattach1=newMimeBodyPart();
- MimeBodyPartattach2=newMimeBodyPart();
- //添加文本和附近
- mutimart.addBodyPart(content);
- mutimart.addBodyPart(attach1);
- mutimart.addBodyPart(attach2);
- //附近1
- DataSourceds=newFileDataSource("E:\\1y2\\context.xml");
- DataHandlerdh1=newDataHandler(ds);
- attach1.setDataHandler(dh1);
- attach1.setFileName(MimeUtility.encodeText("中文context.xml"));//附件名称
- //附近2
- DataSourceds2=newFileDataSource("F:\\ipho\\IMG_0266.JPG");
- DataHandlerdh2=newDataHandler(ds2);
- attach2.setDataHandler(dh2);
- attach2.setFileName(
- MimeUtility.encodeText("图片img_0266.jpg"));//附件名称转为中文
- //文本是一个复杂体
- MimeMultipartbodyMultipart=newMimeMultipart("related");
- content.setContent(bodyMultipart);
- //构造体有两个部分组成图片和文本
- MimeBodyPartthmlPart=newMimeBodyPart();
- MimeBodyPartimgPart=newMimeBodyPart();
- bodyMultipart.addBodyPart(thmlPart);//html
- bodyMultipart.addBodyPart(imgPart);//img
- //图片数据来源
- DataSourcedsImg=newFileDataSource("F:/ipho/IMG_0332.JPG");
- DataHandlerdhImg=newDataHandler(dsImg);
- imgPart.setDataHandler(dhImg);
- //这个图片代表的位置
- imgPart.setHeader("Content-location","http://www.aaa.com/img_0332.jpg");
- //文本
- thmlPart.setContent("<h1>你好呀</h1><spanstyle=color='red'>yesterdayoncemore</sapn>"+
- "<imgsrc='http://www.aaa.com/img_0332.jpg'/>",
- "text/html;charset=gbk");
- //生成
- message.saveChanges();
- //保存在本地测试输出到本地
- OutputStreamos=newFileOutputStream("F:\\juxunDocument\\email\\demo3.eml");
- message.writeTo(os);
- os.close();
- }
- }
servelt
- packagecom.mail.web.servlet;
- importjava.io.IOException;
- importjava.io.PrintWriter;
- importjavax.mail.Message;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- importjavax.naming.Context;
- importjavax.naming.InitialContext;
- importjavax.servlet.ServletException;
- importjavax.servlet.http.HttpServlet;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importcom.mail.Test2Demo;
- publicclassSendMailextendsHttpServlet{
- publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException{
- doPost(request,response);
- }
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException{
- response.setContentType("text/html");
- PrintWriterout=response.getWriter();
- try{
- //调用生成好的Test2Demo.jar类发送邮件方式一
- //Test2Demo.main(newString[]{});
- /**
- *JNDI配制方式发送邮件方式二
- *META-INF文件夹中配context.xml信息
- *在web.xml配置相关信息
- *发布到tomcat时
- *需要把lib的mail.jar拷贝到Tomcat的lib下
- *并且删掉项目中的mail.jar
- */
- ContextinitCtx=newInitialContext();
- ContextenvCtx=(Context)initCtx.lookup("java:comp/env");
- Sessionsession=(Session)envCtx.lookup("mail/hello");
- Messagemessage=newMimeMessage(session);
- //发件人
- message.setFrom(newInternetAddress("[email protected]"));
- //收件人地址
- InternetAddressto[]=newInternetAddress[1];
- to[0]=newInternetAddress("[email protected]");
- message.setRecipients(Message.RecipientType.TO,to);
- message.setSubject("测试主题");//主题
- message.setText("testemailok---");
- //Transport
- Transporttran=session.getTransport();
- tran.connect("smtp.sina.com","liangrui_1988","*****");//获得连接
- tran.sendMessage(message,to);
- tran.close();
- out.print("ok----------------");
- }catch(Exceptione){
- e.printStackTrace(out);
- }
- out.flush();
- out.close();
- }
- }
META-INF
context.xml
- <Context>
- <Resourcename="mail/hello"auth="Container"
- type="javax.mail.Session"
- mail.smtp.host="smtp.sina.com"
- mail.smtp.auth="true"
- mail.transport.protocol="smtp"
- />
- </Context>
效果图:
相关代码:
test1
- packagecom.mail;
- importjava.util.Properties;
- importjavax.mail.Address;
- importjavax.mail.Message;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- /**
- *com.mail.reference下面的是在网上找的,还没来得级看
- *Test是本人写的,并都测试成功发送了的邮箱和密码换成你自已的,
- *可能会遇到一个问题,就是要把你自已myeclipse的javaee.jar文件中的mail包给删掉
- *他们会冲突,自已到网上找一个具体的操作吧!
- *@authorliangrui
- *
- */
- publicclassTest1{
- publicstaticvoidmain(String[]args)throwsException{
- System.out.println("hello....");
- Propertiesperps=newProperties();
- //认证
- perps.setProperty("mail.smtp.auth","true");
- //协议
- perps.setProperty("mail.transport.protocol","smtp");
- Sessionsession=Session.getInstance(perps);
- Messagemes=newMimeMessage(session);
- //收件内容、人
- mes.setText("helloworldddddddddddddddddd");
- //设置发件人地址
- mes.setFrom(newInternetAddress("[email protected]"));
- //发件信息
- Transporttransport=session.getTransport();
- transport.connect("smtp.126.com",25,"liangrui_1988","******");
- //收件人
- transport.sendMessage(mes,
- newAddress[]{newInternetAddress("[email protected]")});
- transport.close();
- System.out.println("-----");
- }
- }
test2
- packagecom.mail;
- importjava.util.Properties;
- importjavax.mail.Authenticator;
- importjavax.mail.Message;
- importjavax.mail.MessagingException;
- importjavax.mail.PasswordAuthentication;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- importjavax.mail.internet.MimeMessage.RecipientType;
- publicclassTest2{
- /**
- *@paramargs
- *@throwsMessagingException
- */
- publicstaticvoidmain(String[]args)throwsException{
- //邮件Properties设置============================================
- Propertiespro=newProperties();
- //认证
- pro.setProperty("mail.smtp.auth","true");
- //协议
- pro.setProperty("mail.transport.protocol","smtp");
- //主机指定服务器端口默认
- pro.setProperty("mail.host","smtp.sina.com");
- //邮件Session设置============================================
- Sessionsession=Session.getInstance(pro,
- newAuthenticator(){
- protectedPasswordAuthenticationgetPasswordAuthentication(){
- //用户名密码
- returnnewPasswordAuthentication("liangrui_1988","******");
- }
- });
- //邮件信息设置============================================
- Messagems=newMimeMessage(session);
- //地址发件人
- ms.setFrom(newInternetAddress("[email protected]"));
- //主题
- ms.setSubject("你好吗!这是邮件主题");
- //地址收件人
- ms.setRecipients(RecipientType.TO,
- InternetAddress.parse("[email protected],[email protected],[email protected]"));
- //内容
- ms.setContent("<spanstyle='color:red'>文本内容呆呆呆呵呵</span>","text/html;charset=gbk");
- //发射=================================
- Transport.send(ms);
- System.out.println("okkk--------------");
- }
- }
test2222demo
- packagecom.mail;
- importjava.io.FileInputStream;
- importjava.util.Properties;
- importjavax.mail.Authenticator;
- importjavax.mail.Message;
- importjavax.mail.MessagingException;
- importjavax.mail.PasswordAuthentication;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- importjavax.mail.internet.MimeMessage.RecipientType;
- publicclassTest2Demo{
- /**
- *@paramargs
- *@throwsMessagingException
- */
- publicstaticvoidmain(String[]args)throwsException{
- //邮件Properties设置============================================
- Propertiespro=newProperties();
- //认证
- pro.setProperty("mail.smtp.auth","true");
- //协议
- pro.setProperty("mail.transport.protocol","smtp");
- //主机指定服务器端口默认
- pro.setProperty("mail.host","smtp.sina.com");
- //邮件Session设置============================================
- Sessionsession=Session.getInstance(pro,
- newAuthenticator(){
- protectedPasswordAuthenticationgetPasswordAuthentication(){
- //用户名密码
- returnnewPasswordAuthentication("liangrui_1988","******");
- }
- });
- //邮件信息设置============================================
- /*Messagems=newMimeMessage(session);
- //地址发件人
- ms.setFrom(newInternetAddress("[email protected]"));
- //主题
- ms.setSubject("你好吗!这是邮件主题");
- //地址收件人
- ms.setRecipients(RecipientType.TO,
- InternetAddress.parse("[email protected],[email protected],[email protected]"));
- //内容
- ms.setContent("<spanstyle='color:red'>文本内容呆呆呆呵呵</span>","text/html;charset=gbk");
- //发射=================================
- Transport.send(ms);*/
- //加载生成好的邮件Test3并发送
- Messageme=newMimeMessage(session,newFileInputStream("F:/juxunDocument/email/demo3.eml"));
- Transport.send(me,InternetAddress.parse("[email protected]"));
- System.out.println("okkk--------------");
- }
- }
test3
- packagecom.mail;
- importjava.io.FileOutputStream;
- importjava.io.OutputStream;
- importjava.util.Properties;
- importjavax.activation.DataHandler;
- importjavax.activation.DataSource;
- importjavax.activation.FileDataSource;
- importjavax.mail.Address;
- importjavax.mail.BodyPart;
- importjavax.mail.MessagingException;
- importjavax.mail.Session;
- importjavax.mail.Message.RecipientType;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeBodyPart;
- importjavax.mail.internet.MimeMessage;
- importjavax.mail.internet.MimeMultipart;
- importjavax.mail.internet.MimeUtility;
- importcom.sun.mail.util.MimeUtil;
- publicclassTest3{
- publicstaticvoidmain(String[]args)throwsException{
- Sessionsession=Session.getInstance(newProperties());
- MimeMessagemessage=newMimeMessage(session);
- //发件人指定别名
- message.setFrom(newInternetAddress("\""+MimeUtility.encodeText("国务院")+"\"<[email protected]>"));
- message.setSubject("subjectHelloworld");//标题
- //如果收到该邮件点击回复时,地址是这个邮箱地址而不是发件人
- message.setReplyTo(newAddress[]{newInternetAddress("[email protected]")});//回复
- //收件人
- message.setRecipients(RecipientType.TO,
- //把字符串转为数组//转码
- InternetAddress.parse(
- MimeUtility.encodeText("刘备")+"<[email protected]>,"
- +MimeUtility.encodeText("关羽")+"<[email protected]>"));
- //复杂格试文件内容多部件的/混合
- MimeMultipartmutimart=newMimeMultipart("mixed");
- //文本
- message.setContent(mutimart);
- //多用途互联网邮件扩展mime体部分
- MimeBodyPartcontent=newMimeBodyPart();
- MimeBodyPartattach1=newMimeBodyPart();
- MimeBodyPartattach2=newMimeBodyPart();
- //添加文本和附近
- mutimart.addBodyPart(content);
- mutimart.addBodyPart(attach1);
- mutimart.addBodyPart(attach2);
- //附近1
- DataSourceds=newFileDataSource("E:\\1y2\\context.xml");
- DataHandlerdh1=newDataHandler(ds);
- attach1.setDataHandler(dh1);
- attach1.setFileName(MimeUtility.encodeText("中文context.xml"));//附件名称
- //附近2
- DataSourceds2=newFileDataSource("F:\\ipho\\IMG_0266.JPG");
- DataHandlerdh2=newDataHandler(ds2);
- attach2.setDataHandler(dh2);
- attach2.setFileName(
- MimeUtility.encodeText("图片img_0266.jpg"));//附件名称转为中文
- //文本是一个复杂体
- MimeMultipartbodyMultipart=newMimeMultipart("related");
- content.setContent(bodyMultipart);
- //构造体有两个部分组成图片和文本
- MimeBodyPartthmlPart=newMimeBodyPart();
- MimeBodyPartimgPart=newMimeBodyPart();
- bodyMultipart.addBodyPart(thmlPart);//html
- bodyMultipart.addBodyPart(imgPart);//img
- //图片数据来源
- DataSourcedsImg=newFileDataSource("F:/ipho/IMG_0332.JPG");
- DataHandlerdhImg=newDataHandler(dsImg);
- imgPart.setDataHandler(dhImg);
- //这个图片代表的位置
- imgPart.setHeader("Content-location","http://www.aaa.com/img_0332.jpg");
- //文本
- thmlPart.setContent("<h1>你好呀</h1><spanstyle=color='red'>yesterdayoncemore</sapn>"+
- "<imgsrc='http://www.aaa.com/img_0332.jpg'/>",
- "text/html;charset=gbk");
- //生成
- message.saveChanges();
- //保存在本地测试输出到本地
- OutputStreamos=newFileOutputStream("F:\\juxunDocument\\email\\demo3.eml");
- message.writeTo(os);
- os.close();
- }
- }
servelt
- packagecom.mail.web.servlet;
- importjava.io.IOException;
- importjava.io.PrintWriter;
- importjavax.mail.Message;
- importjavax.mail.Session;
- importjavax.mail.Transport;
- importjavax.mail.internet.InternetAddress;
- importjavax.mail.internet.MimeMessage;
- importjavax.naming.Context;
- importjavax.naming.InitialContext;
- importjavax.servlet.ServletException;
- importjavax.servlet.http.HttpServlet;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importcom.mail.Test2Demo;
- publicclassSendMailextendsHttpServlet{
- publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException{
- doPost(request,response);
- }
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException{
- response.setContentType("text/html");
- PrintWriterout=response.getWriter();
- try{
- //调用生成好的Test2Demo.jar类发送邮件方式一
- //Test2Demo.main(newString[]{});
- /**
- *JNDI配制方式发送邮件方式二
- *META-INF文件夹中配context.xml信息
- *在web.xml配置相关信息
- *发布到tomcat时
- *需要把lib的mail.jar拷贝到Tomcat的lib下
- *并且删掉项目中的mail.jar
- */
- ContextinitCtx=newInitialContext();
- ContextenvCtx=(Context)initCtx.lookup("java:comp/env");
- Sessionsession=(Session)envCtx.lookup("mail/hello");
- Messagemessage=newMimeMessage(session);
- //发件人
- message.setFrom(newInternetAddress("[email protected]"));
- //收件人地址
- InternetAddressto[]=newInternetAddress[1];
- to[0]=newInternetAddress("[email protected]");
- message.setRecipients(Message.RecipientType.TO,to);
- message.setSubject("测试主题");//主题
- message.setText("testemailok---");
- //Transport
- Transporttran=session.getTransport();
- tran.connect("smtp.sina.com","liangrui_1988","*****");//获得连接
- tran.sendMessage(message,to);
- tran.close();
- out.print("ok----------------");
- }catch(Exceptione){
- e.printStackTrace(out);
- }
- out.flush();
- out.close();
- }
- }
META-INF
context.xml
- <Context>
- <Resourcename="mail/hello"auth="Container"
- type="javax.mail.Session"
- mail.smtp.host="smtp.sina.com"
- mail.smtp.auth="true"
- mail.transport.protocol="smtp"
- />
- </Context>