`

电子邮件开发应用

    博客分类:
  • J2EE
阅读更多
1.电子邮件发送
/*
 * html 电子邮件发送
*/
package lesson6;

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class HtmlMessageSender 
{
    String protocol = "smtp";
    String from = "it315_test@sina.com";
    String to = "it315_test@sohu.com ";
    String subject = "HTML测试";
    String body = "<a href=http://www.it315.org>" +
	 				 "欢迎大家访问我们的网站</a></br>" +
    				 "<img src=\"cid:it315_logo_gif\">";
    
    public static void main(String[] args) throws Exception
	{
		String server = "smtp.sina.com.cn";
		String user = "it315_test";
		String pass = "123456";

        HtmlMessageSender sender = new HtmlMessageSender ();
        Session session = sender.createSession();
        MimeMessage message = sender.createMessage(session);
        
        //获得Transport对象,并连接邮件服务器发送邮件
        Transport transport = session.getTransport();
        transport.connect(server, user, pass);
        transport.sendMessage(message,
            message.getRecipients(Message.RecipientType.TO));
        transport.close();
	}

    public Session createSession()
    {
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", protocol);
		/*必须将mail.smtp.auth属性设置为true,SMTPTransport对象才会向
		SMTP服务器提交用户认证信息,这个信息可以从JavaMail的javadocs文档
		中的com.sun.mail.smtp包的帮助页面内查看到。
		*/
        props.setProperty ("mail.smtp.auth","true");
        Session session = Session.getInstance(props);
        session.setDebug(true);
    	return session;
    }

    public MimeMessage createMessage(Session session) throws Exception
    {
        MimeMessage message = new MimeMessage(session);    
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO,
        		InternetAddress.parse(to));
        message.setSubject(subject);

        MimeMultipart multipart = new MimeMultipart("related");

        MimeBodyPart htmlBodyPart = new MimeBodyPart();          
        htmlBodyPart.setContent(body,"text/html;charset=utf-8");
        multipart.addBodyPart(htmlBodyPart); 

        MimeBodyPart gifBodyPart = new MimeBodyPart();
        FileDataSource fds = new FileDataSource("d:\\attach\\logo.gif");
        gifBodyPart.setDataHandler(new DataHandler(fds));
        gifBodyPart.setContentID("it315_logo_gif");
        multipart.addBodyPart(gifBodyPart);

        message.setContent(multipart);
        message.saveChanges();
        return message;
    }
}


2.电子邮件接收
电子邮件注册
<html>
  <head>
    <title>login.html</title>
  </head>
  <body>
	<form action="logon.jsp" method="post">
		主机名:<input name="host" type="text"><br/>
		用户名:<input name="username" type="text"><br/>
		密码:<input name="password" type="password"><br/>
		<input type="submit" value="提交"> 
		<input type="reset" value="重置">
	</form>
  </body>
</html>

列出全部邮件
<%@ page import="javax.mail.*,org.it315.*"
 contentType="text/html;charset=GB2312" %>
<%
	String host = request.getParameter("host");  	
  	String username = request.getParameter("username");
  	String password = request.getParameter("password");
  	String from = "";
  	String subject = "";	
  	Folder folder = POP3Help.getFolder(host,username,password);
  	session.setAttribute("folder",folder);
  	Message [] messages = folder.getMessages();
  	for(int i=0;i<messages.length;i++)
  	{
  		try
  		{
  			from = messages[i].getFrom()[0].toString();
			subject = messages[i].getSubject();
			out.print(i);
%>
			发件人地址:<%=from %>  邮件主题:<%=subject %>				
			<a href="displayMsg.jsp?msgnum=<%=i+1%>">查看邮件</a><br/>
<%
		}
		catch(Exception e){}
  	}
%>

POP3
package org.it315;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Session;
import javax.mail.Store;

public class POP3Help
{		
	public static Folder getFolder(String host,String username,String password)
	{		
	    Properties prop = new Properties();
	    prop.setProperty("mail.store.protocol","pop3");
	    prop.setProperty("mail.pop3.host",host);
	    Session mailSession = Session.getDefaultInstance(prop,null);
	    mailSession.setDebug(false);
	    try
	    {
	        Store store = mailSession.getStore("pop3");
	        store.connect(host,username,password);
			Folder folder = store.getFolder("inbox");
	        folder.open(Folder.READ_WRITE);
	        return folder;
	    }
	    catch(Exception e)
	    {
	    	e.printStackTrace();
	    }
		return null;	
	}	
}

package org.it315;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.internet.MimeUtility;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class DisplayHead extends HttpServlet 
{
	public void doGet(HttpServletRequest request, HttpServletResponse response)
					  throws ServletException, IOException 
	{
		response.setContentType("text/html;charset=gb2312");
		PrintWriter out = response.getWriter();
		HttpSession session = request.getSession();
		int msgnum = Integer.parseInt(request.getParameter("msgnum"));
		Folder folder = (Folder)session.getAttribute("folder");

		try
		{
			Message msg = folder.getMessage(msgnum);
			String from = msg.getFrom()[0].toString();
			String subject = msg.getSubject();
			String sendDate = 
				   DateFormat.getInstance().format(msg.getSentDate());
			out.println("邮件主题:" + subject + "<br/>");
			out.println(" 发件人:"+ from +"<br/>");
			out.println("发送日期:"+ sendDate +"<br/><br/>");
			System.out.println(msg.getContentType());			
			if(msg.isMimeType("multipart/*"))
			{
				Multipart mp = (Multipart)msg.getContent();
				for(int i=0;i<mp.getCount();i++)
				{
					BodyPart bp = mp.getBodyPart(i);
					if(bp.getDisposition()!=null)
					{
						String filename = bp.getFileName();
						System.out.println(filename);
						if(filename.startsWith("=?"))
						{
							filename = MimeUtility.decodeText(filename);
						}
						out.print("附件:");
						out.print("<a href=HandleAttach?msgnum=" + msgnum +
								  "&&bodynum=" + i + "&&filename=" + filename + ">" 
								  + filename + "</a><br/>");
					}
				}
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}

package org.it315;
import java.io.IOException;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class DisplayContent extends HttpServlet 
{
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		ServletOutputStream sos = response.getOutputStream();
		HttpSession session = request.getSession();
		int msgnum = Integer.parseInt(request.getParameter("msgnum"));
		Folder folder = (Folder)session.getAttribute("folder");
		
		try
		{
			Message msg = folder.getMessage(msgnum);
			//邮件类型不是mixed时,表示邮件中不包含附件,直接输出邮件内容
			if(!msg.isMimeType("multipart/mixed"))
			{
				response.setContentType("message/rfc822");
				msg.writeTo(sos);
			}
			else
			{
				//查找并输出邮件中的邮件正文
				Multipart mp = (Multipart)msg.getContent();
				int bodynum = mp.getCount();
				for(int i=0;i<bodynum;i++)
				{
					BodyPart bp = mp.getBodyPart(i);				
					/*
					 * MIME消息头中不包含disposition字段,
					 * 并且MIME消息类型不为mixed时,
					 * 表示当前获得的MIME消息为邮件正文
					 */
					if(!bp.isMimeType("multipart/mixed")
									  &&bp.getDisposition()==null)
					{
						response.setContentType("message/rfc822");
						bp.writeTo(sos);
					}
				}
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
分享到:
评论

相关推荐

    《基于信息隐藏技术的安全电子邮件设计与开发》本科毕业论文一万字.doc

    2.3 信息隐藏技术在电子邮件中的应用 第三章 安全电子邮件设计与开发需求分析 3.1 安全电子邮件的需求概述 3.2 安全电子邮件的功能需求 3.3 安全电子邮件的性能需求 第四章 安全电子邮件设计与开发方案 4.1 安全电子...

    第11章应用程序开发-哈尔滨理工大学电子邮件系统.pptx

    第11章应用程序开发-哈尔滨理工大学电子邮件系统.pptx

    电子邮件收发

    用visual c++开发的基于MFC电子邮件的收发程序

    创建一个Java电子邮件客户端

    在这篇博客中,我们将使用Java语言来设计和实现一个基本的电子邮件客户端应用,具有发送和接收电子邮件的功能。 开发环境 在开始之前,确保你的开发环境中安装了以下工具和技术: Java Development Kit (JDK): ...

    java电子邮件收发系统 java源代码

    java开发的电子邮件收发应用程序。包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人...

    基于AJAX技术开发Web电子邮件客户端之UI篇

    这种构建Web应用程序的新方法—在后台发送http请求而不需要页面重载—已经为当今电子邮件软件(它们原来被作为桌面应用程序设计和开发)的开发提供了若干种可能的实现方案。 你是否也想构建基于Web的在同一网页上...

    第11章应用程序开发哈尔滨理工大学电子邮件系统.pptx

    第11章应用程序开发哈尔滨理工大学电子邮件系统.pptx

    Spring应用开发完全手册 源码

    本书以使用Spring框架技术开发网络应用程序的实用技术为中心,全面、系统地介绍了使用Spring框架技术开发应用程序时必须掌握的基础知识、高级应用技术、方法和开发过程。本书分为四篇,共20章。主要内容包括Spring...

    功能齐全,开源,隐私友好的Android电子邮件应用程序-Android开发

    适用于Android的功能齐全,开源,隐私友好的电子邮件应用程序下载•隐私•支持•许可FairEmail适用于Android FairEmail的功能齐全,开源,面向隐私的电子邮件应用程序易于安装,并且几乎可与所有电子邮件提供商一起...

    C#开发Android应用实战

    后面6-10章介绍的是如何应用手机中文件、网络、应用程序、摄像头设备、电子邮件、通讯录等资料。 11-17章介绍的是后台线程开发服务,自定义图片、画布操作、GPS、Google地图,多语言,平板电脑程序开发技巧。

    基于ASP.NET的Web应用开发技术实用教程[方玉燕][电子教案]项目6:电子邮件.ppt

    基于ASP.NET的Web应用开发技术实用教程[方玉燕][电子教案]项目6:电子邮件.ppt

    Web应用程序开发教程——ASP.NET+SQL Server 课件

    本书首先系统介绍了ASP.NET程序设计和SQL Server 2000数据库管理的基础知识,然后结合几个使用ASP.NET+SQL Server 2000开发Web应用程序的实例(包括用户登录和身份验证、文件上传、发送电子邮件、图文验证、在线教育...

    基于J2EE电子邮件系统的设计与实现

    J2EE 是目前流行且成熟的分布式应用开发模型, 结合J2EE 在开发分布式应用方面的优势, 设计了一种基于J2EE 平台的电子邮件系统, 并利用JavaMail 强大的邮件处理功能, 对系统进行了实现。

    Delphi7网络应用开发(PDG)

    第二篇Delphi 7的网络开发实例,主要包括聊天工具的制作、创建Web浏览器、编写FTP客户端程序、电子邮件系统开发等内容;第三篇Delphi 7的快速网络开发,主要包括Web应用程序开发、用WebSnap开发Web服务器的基本概念...

    基于JSP的电子邮件系统设计与实现

    摘要:J2EE是目前流行且成熟的分布式应用开发模型,结合J2EE在开发分布式应用方面的优势,设计了一种基于J2EE平台的电子邮件系统,并利用JavaMail强大的邮件处理功能,对系统进行了实现。

    基于ASP的在线邮件收发系统研究论文设计

    摘 要:随着Internet迅速发展,电子邮件已经成为信息交换的主要载体,电子邮件成为目前互联网上流行,方便快捷的通讯工具,随着网络发展普及,电子邮件的应用更加广泛。 本文基于ASP技术完成一款简单方便,适合大众...

    电子邮件管理系列产品的技术技术解决方案指南(英文)

    这个解决方案应用了整合业内领先备份软件的IBM TotalStorage DS4000 SATA技术,同时利用和改进了Exchange 2003D2D数据备份技术,拓展了电子邮件管理和备份恢复产品线.

    电子邮件发送程序的设计与实现.doc

    1.2课程设计目的 本课程设计的目的主要是学习在VS平台下围绕着电子邮件发送的编程与开发,应用软 件工程的开发过程,详细论述了SMTP的分析、设计及代码实现,最终实现一个具有能发 送简单邮件,发送带附件的邮件的...

    FlaskWeb开发:基于Python的Web应用开发实战(第2版)

    5. 电子邮件:使用Flask-Mail提供电子邮件支持、在Python shell中发送电子邮件、在应用中集成电子邮件发送功能、异步发送电子邮件等。 6. 大型应用的结构:项目结构、配置选项、应用包、应用脚本、需求文件、单元...

Global site tag (gtag.js) - Google Analytics