`
hanwesley
  • 浏览: 58960 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaMail 入门(收发邮件)

阅读更多
package mail;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
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 javax.mail.internet.MimeMessage.RecipientType;

/*******************************************************************************
 * @author hanwesley java Mail exaple
 */
public class Email {
    private static String context;

    public void setContext(String context) {
	this.context = context;
    }

    public static String getContext() {
	return context;
    }

    public ArrayList<MimeBodyPart> getAttachmentMultipart(String[] ss)
	    throws Exception {
	ArrayList<MimeBodyPart> parts = null;
	if (ss != null && ss.length > 0) {
	    int filesize = 0;
	    for (String s : ss) {
		File f = new File(s);
		filesize += f.length();
		if (filesize > 1 * 1024 * 1024) {
		    throw new Exception("attarch maxed!");
		}
		parts = new ArrayList<MimeBodyPart>();
		for (int i = 0; i < ss.length; i++) {
		    MimeBodyPart mbp = new MimeBodyPart();
		    FileDataSource fds = new FileDataSource(ss[i]);
		    mbp.setDataHandler(new DataHandler(fds));
		    mbp.setFileName(MimeUtility.encodeText(fds.getName(),
			    "GB2312", "B"));
		    parts.add(mbp);
		}
	    }
	}
	return parts;
    }

    public Session getSession() {
	Properties prop = new Properties();
	prop.put("mail.transport.protocol", "smtp");
	prop.put("mail.smtp.host", "smtp.163.com");
	prop.put("mail.smtp.port", 25);
	prop.put("mail.from", "hantx@163.com");
	prop.put("mail.smtp.auth", "true");
	Session session = null;// JavaMail核心类 一个会话
	session = Session.getDefaultInstance(prop, new Authenticator() {
	    protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication("hantx@163.com",
			"123456");
	    }
	});
	// session=Session.getDefaultInstance(prop,null);
	session.setDebug(true);
	return session;
    }

    public void sendMessage(Message msg) throws Exception {

	Transport transport = getSession().getTransport();
	try {
	    // msg.setc
	    transport.connect();
	    // transport.connect("smtp.163.com", 25,
	    // "hantx@163.com","123456");
	    transport.send(msg);
	} catch (MessagingException e) {
	    e.printStackTrace();
	} finally {
	    try {
		transport.close();
	    } catch (MessagingException e) {
		e.printStackTrace();
	    }
	}
    }
    
    public void receiveMessage() throws Exception{
	Session session=getSession();
	Store store=session.getStore("pop3");
	store.connect("pop.163.com", "hantx@163.com", "123456");
	Folder inbox=store.getFolder("INBOX");
	inbox.open(Folder.READ_ONLY);
	Message msg=inbox.getMessage(1);
	System.out.println(msg.getSubject());
    }
    
    public void testSendMessager() throws Exception {
	Session session = getSession();
	
	Message msg = new MimeMessage(session);
	msg.setFrom();
	msg.setSubject("hello,world");
	String s = "hanwesley@163.com,hantx@163.com";
	msg.setRecipients(RecipientType.TO, InternetAddress.parse(s));
	msg.setRecipient(RecipientType.CC, new InternetAddress(
		"hanwesley@gmail.com"));
	// msg.setText("");
	msg.setSentDate(new Date());
	String[] arr = new String[] { "d:\\two.txt" };
	Multipart mp = new MimeMultipart("mixed");
	MimeBodyPart mbp = new MimeBodyPart();
	mbp.setContent("it's a JavaMail example!<br/>hehe",
		"text/html;charset=GB2312");
	mp.addBodyPart(mbp);
	ArrayList<MimeBodyPart> mbparr = getAttachmentMultipart(arr);
	for (MimeBodyPart mb : mbparr) {
	    mp.addBodyPart(mb);
	}
	msg.setContent(mp);
	sendMessage(msg);

    }
    public static void main(String[] args) throws Exception {
	Email email = new Email();
	email.receiveMessage();
    }
}

 

分享到:
评论
2 楼 aa00aa00 2012-01-13  
这个就能收取一封邮件吧,呵呵!!
1 楼 keaixiaozhu7688 2010-09-30  

相关推荐

    基于Javamail的邮件收发系统.zip

    基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...

    JavaMail邮件收发实例_JavaMail_API

    JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API JavaMail邮件收发实例_JavaMail_API

    JavaMail收发Gmail邮件

    ### JavaMail收发Gmail邮件知识点详解 #### 一、JavaMail简介 JavaMail API是Java平台中的一个标准扩展库,用于发送、接收以及管理电子邮件。它提供了丰富的接口来实现邮件的各种操作,如构建复杂的MIME消息、处理...

    javamail 收发电子邮件

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中实现电子邮件的发送和接收。它支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,IMAP(因特网消息访问协议)和POP3(邮局协议)用于接收邮件。在...

    简单的JavaMail的收发邮件程序

    这个简单的JavaMail程序包含了收发邮件的基本功能,对于理解JavaMail的工作原理和使用方法非常有帮助。 首先,让我们从发送邮件的部分开始。在JavaMail中,发送邮件的核心类是`javax.mail.Session`和`javax.mail....

    基于JavaMail的电子邮件收发系统设计说明.doc

    通过深入理解SMTP和POP3等邮件传输协议,设计出一个简化操作、实用性强的系统,使用户能快速收发邮件,不受时间和地点限制。 1.2 国外发展趋势和现状 电子邮件作为互联网基础服务,全球用户基数庞大,中国也不例外...

    javamail收发邮件加密和不加密

    JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。它支持多种协议,包括POP3、IMAP和SMTP,这些协议分别用于接收、检索和发送邮件。在使用JavaMail时,了解如何进行加密和非加密通信对于确保数据...

    (Java毕业设计)基于Javamail的邮件收发系统(系统++开题报告+任务书+外文翻译+文献综述+答辩PPT).rar

    (Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统(Java毕业设计)基于Javamail的邮件收发系统...

    使用javaMail实现收发邮件

    总的来说,JavaMail为Java开发者提供了一个强大的工具,使得收发邮件变得简单。无论是发送简单的文本邮件,还是构建包含多媒体内容的复杂邮件,或者从邮件服务器接收邮件,JavaMail都能胜任。通过合理利用activation...

    Javamail 1.3收发邮件开发教程.pdf

    ### JavaMail 1.3 收发邮件开发教程知识点概览 #### 一、JavaMail API简介 **JavaMail API** 是由SUN公司(现已被Oracle收购)为Java开发者提供的一个公共API框架,用于在Java应用中实现电子邮件功能的支持。它的...

    基于Javamail的邮件收发系统(系统+论文+开题报告+任务书+外文翻译+文献综述+答辩PPT).zip

    基于Javamail的邮件收发系统是一款简单、方便、快捷的邮件系统。它能实现邮件的接收与发送,并能...进入该系统后,首先选择“POP3/SMTP设置”按钮,对收发邮件所需的邮件服务器主机、收发邮件账号及密码信息进行设置。

    javamail收发邮件(带附件,正文带图).doc

    javamail收发邮件(带附件,正文带图).doc

    JavaMail-收发邮件支持包

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。这个库提供了一组丰富的 API,使得开发者能够方便地在 Java 应用程序中实现邮件功能。JavaMail 支持 SMTP、POP3 和 IMAP 协议,涵盖了电子邮件处理的...

    基于Javamail的邮件收发系统

    **基于Javamail的邮件收发系统** JavaMail是一个开放源码的API,它为Java程序员提供了一套全面的接口来处理电子邮件。这个系统的设计目的是使得开发者能够方便地发送和接收邮件,包括附件、HTML内容以及MIME多部分...

    基于Javamail的邮件收发系统软件源码+设计文档说明资料.zip

    本系统利用SMTP协议和POP协议从底层进行开发,利用JavaMail API为收发邮件提供与协议无关的访问。SMTP(简单邮件传输协议)是专门用来发送邮件的。POP(邮局协议)是专门用于接收邮件的。JavaMail API是一种可选的、...

    使用javamail包收发中文邮件的编码,解码问题以及解决方法.pdf

    使用 JavaMail 包收发中文邮件的编码、解码问题以及解决方法 使用 JavaMail 包收发中文邮件时,需要考虑编码和解码的问题。在发送中文邮件时,邮件头需要进行编码,使其只包含 US-ASCII 字符。 JavaMail 包提供了 ...

    javaMail 收发邮件

    在实际开发中,使用 JavaMail 进行邮件收发的步骤大致如下: 1. 创建 Session 对象,配置邮件服务器的相关信息。 2. 使用 Session 创建 Store 对象,连接到邮件服务器。 3. 打开 Folder,读取或管理邮件。 4. 如果...

    JAVA毕设论文-基于Javamail的邮件收发系统软件javamailsystem源码+论文文档资料.zip

    本系统利用SMTP协议和POP协议从底层进行开发,利用JavaMail API为收发邮件提供与协议无关的访问。SMTP(简单邮件传输协议)是专门用来发送邮件的。POP(邮局协议)是专门用于接收邮件的。JavaMail API是一种可选的、...

    javamail收发邮件类库

    JavaMail 是一个强大的开源类库,用于在Java应用程序中实现电子邮件的发送和接收。它提供了对SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等标准的全面支持,使得开发者可以方便地进行...

    james和javamail实现邮件收发(带发送附件)

    在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...

Global site tag (gtag.js) - Google Analytics