精华内容
下载资源
问答
  • 本文实例为大家分享了邮件收发功能的具体实现代码,供大家参考,具体内容如下准备工作, 环境搭建:1. 本地搭建一个邮件服务器易邮服务器,eyoumailserversetup.exe2. 新建邮箱账号张三给李四发邮件。步骤1: 新建...

    本文实例为大家分享了邮件收发功能的具体实现代码,供大家参考,具体内容如下

    准备工作, 环境搭建:

    1. 本地搭建一个邮件服务器

    易邮服务器,eyoumailserversetup.exe

    2. 新建邮箱账号

    张三给李四发邮件。

    步骤1: 新建域名: 工具, 服务器设置, 单域名框中输入 itcast.com

    步骤2:

    新建邮箱账号: zhangsan@itcast.com

    lisi@itcast.com

    3. 安装foxmail

    配置邮件发送服务器(smtp): localhost 25

    邮件接收服务器(pop3): localhost 110

    再新建账号,就可以接收邮件了!

    注意

    如果是web项目,因为javaee自带的有邮件功能,可能存在问题!

    我们要用自己的mail.jar文件功能! 需要删除javaee中mail包!

    使用:

    JavaMail开发,先引入jar文件:

    activation.jar 【如果使用jdk1.6或以上版本,可以不用这个jar文件】

    mail.jar 【邮件发送核心包】

    /**

    * 1. 发送一封普通邮件

    * @author Jie.Yuan

    *

    */

    public class App_SendMail {

    @Test

    public void testSend() throws Exception {

    //0. 邮件参数

    Properties prop = new Properties();

    prop.put("mail.transport.protocol", "smtp"); // 指定协议

    prop.put("mail.smtp.host", "localhost"); // 主机 stmp.qq.com

    prop.put("mail.smtp.port", 25); // 端口

    prop.put("mail.smtp.auth", "true"); // 用户密码认证

    prop.put("mail.debug", "true"); // 调试模式

    //1. 创建一个邮件的会话

    Session session = Session.getDefaultInstance(prop);

    //2. 创建邮件体对象 (整封邮件对象)

    MimeMessage message = new MimeMessage(session);

    //3. 设置邮件体参数:

    //3.1 标题

    message.setSubject("我的第一封邮件 ");

    //3.2 邮件发送时间

    message.setSentDate(new Date());

    //3.3 发件人

    message.setSender(new InternetAddress("zhangsan@itcast.com"));

    //3.4 接收人

    message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));

    //3.5内容

    message.setText("你好,已经发送成功! 正文...."); // 简单纯文本邮件

    message.saveChanges(); // 保存邮件(可选)

    //4. 发送

    Transport trans = session.getTransport();

    trans.connect("zhangsan", "888");

    // 发送邮件

    trans.sendMessage(message, message.getAllRecipients());

    trans.close();

    }

    }

    带图片

    /**

    * 带图片资源的邮件

    * @author Jie.Yuan

    *

    */

    public class App_2SendWithImg {

    // 初始化参数

    private static Properties prop;

    // 发件人

    private static InternetAddress sendMan = null;

    static {

    prop = new Properties();

    prop.put("mail.transport.protocol", "smtp"); // 指定协议

    prop.put("mail.smtp.host", "localhost"); // 主机 stmp.qq.com

    prop.put("mail.smtp.port", 25); // 端口

    prop.put("mail.smtp.auth", "true"); // 用户密码认证

    prop.put("mail.debug", "true"); // 调试模式

    try {

    sendMan = new InternetAddress("zhangsan@itcast.com");

    } catch (AddressException e) {

    throw new RuntimeException(e);

    }

    }

    @Test

    public void testSend() throws Exception {

    // 1. 创建邮件会话

    Session session = Session.getDefaultInstance(prop);

    // 2. 创建邮件对象

    MimeMessage message = new MimeMessage(session);

    // 3. 设置参数:标题、发件人、收件人、发送时间、内容

    message.setSubject("带图片邮件");

    message.setSender(sendMan);

    message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));

    message.setSentDate(new Date());

    /***************设置邮件内容: 多功能用户邮件 (related)*******************/

    // 4.1 构建一个多功能邮件块

    MimeMultipart related = new MimeMultipart("related");

    // 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源

    MimeBodyPart content = new MimeBodyPart();

    MimeBodyPart resource = new MimeBodyPart();

    // 设置具体内容: a.资源(图片)

    String filePath = App_2SendWithImg.class.getResource("8.jpg").getPath();

    DataSource ds = new FileDataSource(new File(filePath));

    DataHandler handler = new DataHandler(ds);

    resource.setDataHandler(handler);

    resource.setContentID("8.jpg"); // 设置资源名称,给外键引用

    // 设置具体内容: b.文本

    content.setContent(" 好哈哈!", "text/html;charset=UTF-8");

    related.addBodyPart(content);

    related.addBodyPart(resource);

    /*******4.3 把构建的复杂邮件快,添加到邮件中********/

    message.setContent(related);

    // 5. 发送

    Transport trans = session.getTransport();

    trans.connect("zhangsan", "888");

    trans.sendMessage(message, message.getAllRecipients());

    trans.close();

    }

    }

    图片+附件

    /**

    * 3. 带图片资源以及附件的邮件

    * @author Jie.Yuan

    *

    */

    public class App_3ImgAndAtta {

    // 初始化参数

    private static Properties prop;

    // 发件人

    private static InternetAddress sendMan = null;

    static {

    prop = new Properties();

    prop.put("mail.transport.protocol", "smtp"); // 指定协议

    prop.put("mail.smtp.host", "localhost"); // 主机 stmp.qq.com

    prop.put("mail.smtp.port", 25); // 端口

    prop.put("mail.smtp.auth", "true"); // 用户密码认证

    prop.put("mail.debug", "true"); // 调试模式

    try {

    sendMan = new InternetAddress("zhangsan@itcast.com");

    } catch (AddressException e) {

    throw new RuntimeException(e);

    }

    }

    @Test

    public void testSend() throws Exception {

    // 1. 创建邮件会话

    Session session = Session.getDefaultInstance(prop);

    // 2. 创建邮件对象

    MimeMessage message = new MimeMessage(session);

    // 3. 设置参数:标题、发件人、收件人、发送时间、内容

    message.setSubject("带图片邮件");

    message.setSender(sendMan);

    message.setRecipient(RecipientType.TO, new InternetAddress("lisi@itcast.com"));

    message.setSentDate(new Date());

    /*

    * 带附件(图片)邮件开发

    */

    // 构建一个总的邮件块

    MimeMultipart mixed = new MimeMultipart("mixed");

    // ---> 总邮件快,设置到邮件对象中

    message.setContent(mixed);

    // 左侧: (文本+图片资源)

    MimeBodyPart left = new MimeBodyPart();

    // 右侧: 附件

    MimeBodyPart right = new MimeBodyPart();

    // 设置到总邮件块

    mixed.addBodyPart(left);

    mixed.addBodyPart(right);

    /******附件********/

    String attr_path = this.getClass().getResource("a.docx").getPath();

    DataSource attr_ds = new FileDataSource(new File(attr_path));

    DataHandler attr_handler = new DataHandler(attr_ds);

    right.setDataHandler(attr_handler);

    right.setFileName("a.docx");

    /***************设置邮件内容: 多功能用户邮件 (related)*******************/

    // 4.1 构建一个多功能邮件块

    MimeMultipart related = new MimeMultipart("related");

    // ----> 设置到总邮件快的左侧中

    left.setContent(related);

    // 4.2 构建多功能邮件块内容 = 左侧文本 + 右侧图片资源

    MimeBodyPart content = new MimeBodyPart();

    MimeBodyPart resource = new MimeBodyPart();

    // 设置具体内容: a.资源(图片)

    String filePath = App_3ImgAndAtta.class.getResource("8.jpg").getPath();

    DataSource ds = new FileDataSource(new File(filePath));

    DataHandler handler = new DataHandler(ds);

    resource.setDataHandler(handler);

    resource.setContentID("8.jpg"); // 设置资源名称,给外键引用

    // 设置具体内容: b.文本

    content.setContent(" 好哈哈!", "text/html;charset=UTF-8");

    related.addBodyPart(content);

    related.addBodyPart(resource);

    // 5. 发送

    Transport trans = session.getTransport();

    trans.connect("zhangsan", "888");

    trans.sendMessage(message, message.getAllRecipients());

    trans.close();

    }

    }

    以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。

    展开全文
  • java编写邮件收发程序我想写一个邮件收发程序,不知道应该从那里入手,是不是要有个服务器啊,请各位前辈给点建议.我初学者,没有多少分,谢谢了.------解决方案-----------------------------------------------------...
    用java编写邮件收发程序
    我想写一个邮件收发程序,不知道应该从那里入手,是不是要有个服务器啊,请各位前辈给点建议.我初学者,没有多少分,谢谢了.

    ------解决方案--------------------------------------------------------
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.net.*;
    import java.io.*;
    import javax.swing.*;

    /**
    This program shows how to use sockets to send plain text
    mail messages.
    */
    public class MailTest
    {
    public static void main(String[] args)
    {
    JFrame frame = new MailTestFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    }

    /**
    The frame for the mail GUI.
    */
    class MailTestFrame extends JFrame
    {
    public MailTestFrame()
    {
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    setTitle( "MailTest ");

    setLayout(new GridBagLayout());

    // we use the GBC convenience class of Core Java Volume 1 Chapter 9
    add(new JLabel( "From: "), new GBC(0, 0).setFill(GBC.HORIZONTAL));

    from = new JTextField(20);
    add(from, new GBC(1, 0).setFill(GBC.HORIZONTAL)…………………………………………………………………………

    参考地址:http://www.verydemo.com/demo_c89_i56637.html

    展开全文
  • 概述1、邮件相关的标准厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的...

    概述

    1、邮件相关的标准

    厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:

    SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

    POP3(Post Office Protocol – Version 3) :即邮局协议版本 3 ,用于接收电子邮件的标准协议。

    IMAP(Internet Mail Access Protocol) :即 Internet 邮件访问协议。是 POP3 的替代协议。

    这三种协议都有对应 SSL 加密传输的协议,分别是 SMTPS , POP3S 和 IMAPS 。

    MIME(Multipurpose Internet Mail Extensions) :即多用途因特网邮件扩展标准。它不是邮件传输协议。但对传输内容的消息、附件及其它的内容定义了格式。

    2、JavaMail 简介

    JavaMail 是由 Sun 发布的用来处理 email 的 API 。它并没有包含在 Java SE 中,而是作为 Java EE 的一部分。

    mail.jar :此 JAR 文件包含 JavaMail API 和 Sun 提供的 SMTP 、 IMAP 和 POP3 服务提供程序;

    activation.jar :此 JAR 文件包含 JAF API 和 Sun 的实现。

    JavaMail 包中用于处理电子邮件的核心类是: Properties 、 Session 、 Message 、 Address 、 Authenticator 、 Transport 、 Store 等。

    3、邮件传输过程

    ac6f5630a6c8db0d3cb8310d352e5ea8.png

    如上图,电子邮件的处理步骤如下:

    创建一个 Session 对象。

    Session 对象创建一个 Transport 对象 /Store 对象,用来发送 / 保存邮件。

    Transport 对象 /Store 对象连接邮件服务器。

    Transport 对象 /Store 对象创建一个 Message 对象 ( 也就是邮件内容 ) 。

    Transport 对象发送邮件; Store 对象获取邮箱的邮件。

    4、Message 结构

    MimeMessage 类:代表整封邮件。

    MimeBodyPart 类:代表邮件的一个 MIME 信息。

    MimeMultipart 类:代表一个由多个 MIME 信息组合成的组合 MIME 信息。

    651c1f65612e28f5332c57957e61f728.png

    5、JavaMail 的核心类

    JavaMail 对收发邮件进行了高级的抽象,形成了一些关键的的接口和类,它们构成了程序的基础,下面我们分别来了解一下这些最常见的对象。

    6、java.util.Properties 类 ( 属性对象 )

    java.util.Properties 类代表一组属性集合。

    它的每一个键和值都是 String 类型。

    由于 JavaMail 需要和邮件服务器进行通信,这就要求程序提供许多诸如服务器地址、端口、用户名、密码等信息, JavaMail 通过 Properties 对象封装这些属性信息。

    例: 如下面的代码封装了几个属性信息:

    Properties prop = new Properties();

    prop.setProperty("mail.debug", "true");

    prop.setProperty("mail.host", "[email protected]");

    prop.setProperty("mail.transport.protocol", "smtp");

    prop.setProperty("mail.smtp.auth", "true");

    针对不同的的邮件协议, JavaMail 规定了服务提供者必须支持一系列属性,

    下表是一些常见属性(属性值都以 String 类型进行设置,属性类型栏仅表示属性是如何被解析的):

    9ea99353a72fe7fc450cb586b57be113.png

    7、javax.mail.Session 类 ( 会话对象 )

    Session 表示一个邮件会话。

    Session 的主要作用包括两个方面:

    接收各种配置属性信息:通过 Properties 对象设置的属性信息;

    初始化 JavaMail 环境:根据 JavaMail 的配置文件,初始化 JavaMail 环境,以便通过 Session 对象创建其他重要类的实例。

    JavaMail 在 Jar 包的 META-INF 目录下,通过以下文件提供了基本配置信息,以便 session 能够根据这个配置文件加载提供者的实现类:

    javamail.default.providers ;

    javamail.default.address.map 。

    94d8c9463c8e9f8c2058a7e697872a68.png

    例:

    Properties props = new Properties();

    props.setProperty("mail.transport.protocol", "smtp");

    Session session = Session.getInstance(props);

    8、javax.mail.Transport 类 ( 邮件传输 )

    邮件操作只有发送或接收两种处理方式。

    JavaMail 将这两种不同操作描述为传输( javax.mail.Transport )和存储( javax.mail.Store ),传输对应邮件的发送,而存储对应邮件的接收。

    getTransport : Session 类中的 getTransport () 有多个重载方法,可以用来创建 Transport 对象。

    connect : 如果设置了认证命令—— mail.smtp.auth ,那么使用 Transport 类的 connect 方法连接服务器时,则必须加上用户名和密码。

    sendMessage : Transport 类的 sendMessage 方法用来发送邮件消息。

    close : Transport 类的 close 方法用来关闭和邮件服务器的连接。

    9、javax.mail.Store 类 ( 邮件存储 )

    getStore : Session 类中的 getStore () 有多个重载方法,可以用来创建 Store 对象。

    connect : 如果设置了认证命令—— mail.smtp.auth ,那么使用 Store 类的 connect 方法连接服务器时,则必须加上用户名和密码。

    getFolder : Store 类的 getFolder 方法可以 获取邮箱内的邮件夹 Folder 对象

    close : Store 类的 close 方法用来关闭和邮件服务器的连接。

    10、javax.mail.Message( 消息对象 )

    javax.mail.Message 是个抽象类,只能用子类去实例化,多数情况下为 javax.mail.internet.MimeMessage 。

    MimeMessage 代表 MIME 类型的电子邮件消息。

    要创建一个 Message ,需要将 Session 对象传递给 MimeMessage 构造器:

    MimeMessage message = new MimeMessage(session);

    注意:还存在其它构造器,如用按 RFC822 格式的输入流来创建消息。

    setFrom :设置邮件的发件人

    setRecipient :设置邮件的发送人、抄送人、密送人

    三种预定义的地址类型是:

    Message.RecipientType.TO :收件人

    Message.RecipientType.CC :抄送人

    Message.RecipientType.BCC :密送人

    setSubject :设置邮件的主题

    setContent :设置邮件内容

    setText :如果邮件内容是纯文本,可以使用此接口设置文本内容。

    10、javax.mail.Address( 地址 )

    一旦您创建了 Session 和 Message ,并将内容填入消息后,就可以用 Address 确定信件地址了。和 Message 一样, Address 也是个抽象类。您用的是 javax.mail.internet.InternetAddress 类。

    若创建的地址只包含电子邮件地址,只要传递电子邮件地址到构造器就行了。

    例:

    Address address = new InternetAddress("[email protected]");

    Authenticator :认证者

    与 java.net 类一样, JavaMail API 也可以利用 Authenticator 通过用户名和密码访问受保护的资源。对于 JavaMail API 来说,这些资源就是邮件服务器。 JavaMail Authenticator 在 javax.mail 包中,而且它和 java.net 中同名的类 Authenticator 不同。两者并不共享同一个 Authenticator ,因为 JavaMail API 用于 Java 1.1 ,它没有 java.net 类别。

    要使用 Authenticator ,先创建一个抽象类的子类,并从 getPasswordAuthentication() 方法中返回 PasswordAuthentication 实例。创建完成后,您必需向 session 注册 Authenticator 。然后,在需要认证的时候,就会通知 Authenticator 。您可以弹出窗口,也可以从配置文件中(虽然没有加密是不安全的)读取用户名和密码,将它们作为 PasswordAuthentication 对象返回给调用程序。

    例:

    Properties props = new Properties();

    Authenticator auth = new MyAuthenticator();

    Session session = Session.getDefaultInstance(props, auth);

    实例

    发送文本邮件

    public static void main(String[] args) throws Exception {

    Properties prop = new Properties();

    prop.setProperty("mail.debug", "true");

    prop.setProperty("mail.host", MAIL_SERVER_HOST);

    prop.setProperty("mail.transport.protocol", "smtp");

    prop.setProperty("mail.smtp.auth", "true");

    // 1、创建session

    Session session = Session.getInstance(prop);

    Transport ts = null;

    // 2、通过session得到transport对象

    ts = session.getTransport();

    // 3、连上邮件服务器

    ts.connect(MAIL_SERVER_HOST, USER, PASSWORD);

    // 4、创建邮件

    MimeMessage message = new MimeMessage(session);

    // 邮件消息头

    message.setFrom(new InternetAddress(MAIL_FROM)); // 邮件的发件人

    message.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO)); // 邮件的收件人

    message.setRecipient(Message.RecipientType.CC, new InternetAddress(MAIL_CC)); // 邮件的抄送人

    message.setRecipient(Message.RecipientType.BCC, new InternetAddress(MAIL_BCC)); // 邮件的密送人

    message.setSubject("测试文本邮件"); // 邮件的标题

    // 邮件消息体

    message.setText("天下无双。");

    // 5、发送邮件

    ts.sendMessage(message, message.getAllRecipients());

    ts.close();

    }

    发送 HTML 格式的邮件

    public static void main(String[] args) throws Exception {

    Properties prop = new Properties();

    prop.setProperty("mail.debug", "true");

    prop.setProperty("mail.host", MAIL_SERVER_HOST);

    prop.setProperty("mail.transport.protocol", "smtp");

    prop.setProperty("mail.smtp.auth", "true");

    // 1、创建session

    Session session = Session.getInstance(prop);

    Transport ts = null;

    // 2、通过session得到transport对象

    ts = session.getTransport();

    // 3、连上邮件服务器

    ts.connect(MAIL_SERVER_HOST, USER, PASSWORD);

    // 4、创建邮件

    MimeMessage message = new MimeMessage(session);

    // 邮件消息头

    message.setFrom(new InternetAddress(MAIL_FROM)); // 邮件的发件人

    message.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO)); // 邮件的收件人

    message.setRecipient(Message.RecipientType.CC, new InternetAddress(MAIL_CC)); // 邮件的抄送人

    message.setRecipient(Message.RecipientType.BCC, new InternetAddress(MAIL_BCC)); // 邮件的密送人

    message.setSubject("测试HTML邮件"); // 邮件的标题

    String htmlContent = "

    Hello

    " + "

    显示图片1.jpg

    ";

    MimeBodyPart text = new MimeBodyPart();

    text.setContent(htmlContent, "text/html;charset=UTF-8");

    MimeBodyPart image = new MimeBodyPart();

    DataHandler dh = new DataHandler(new FileDataSource("D://[04]Temp//img//1.jpg"));

    image.setDataHandler(dh);

    image.setContentID("abc.jpg");

    // 描述数据关系

    MimeMultipart mm = new MimeMultipart();

    mm.addBodyPart(text);

    mm.addBodyPart(image);

    mm.setSubType("related");

    message.setContent(mm);

    message.saveChanges();

    // 5、发送邮件

    ts.sendMessage(message, message.getAllRecipients());

    ts.close();

    }

    发送带附件的邮件

    public static void main(String[] args) throws Exception {

    Properties prop = new Properties();

    prop.setProperty("mail.debug", "true");

    prop.setProperty("mail.host", MAIL_SERVER_HOST);

    prop.setProperty("mail.transport.protocol", "smtp");

    prop.setProperty("mail.smtp.auth", "true");

    // 1、创建session

    Session session = Session.getInstance(prop);

    Transport ts = null;

    // 2、通过session得到transport对象

    ts = session.getTransport();

    // 3、连上邮件服务器

    ts.connect(MAIL_SERVER_HOST, USER, PASSWORD);

    // 4、创建邮件

    MimeMessage message = new MimeMessage(session);

    // 邮件消息头

    message.setFrom(new InternetAddress(MAIL_FROM)); // 邮件的发件人

    message.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO)); // 邮件的收件人

    message.setRecipient(Message.RecipientType.CC, new InternetAddress(MAIL_CC)); // 邮件的抄送人

    message.setRecipient(Message.RecipientType.BCC, new InternetAddress(MAIL_BCC)); // 邮件的密送人

    message.setSubject("测试带附件邮件"); // 邮件的标题

    MimeBodyPart text = new MimeBodyPart();

    text.setContent("邮件中有两个附件。", "text/html;charset=UTF-8");

    // 描述数据关系

    MimeMultipart mm = new MimeMultipart();

    mm.setSubType("related");

    mm.addBodyPart(text);

    String[] files = {

    "D://[04]Temp//img//1.jpg", "D://[04]Temp//img//2.jpg"

    };

    // 添加邮件附件

    for (String filename : files) {

    MimeBodyPart attachPart = new MimeBodyPart();

    attachPart.attachFile(filename);

    mm.addBodyPart(attachPart);

    }

    message.setContent(mm);

    message.saveChanges();

    // 5、发送邮件

    ts.sendMessage(message, message.getAllRecipients());

    ts.close();

    }

    获取邮箱中的邮件

    public class StoreMail {

    final static String USER = "robot"; // 用户名

    final static String PASSWORD = "password520"; // 密码

    public final static String MAIL_SERVER_HOST = "mail.***.com"; // 邮箱服务器

    public final static String TYPE_HTML = "text/html;charset=UTF-8"; // 文本内容类型

    public final static String MAIL_FROM = "[email protected]"; // 发件人

    public final static String MAIL_TO = "[email protected]"; // 收件人

    public final static String MAIL_CC = "[email protected]"; // 抄送人

    public final static String MAIL_BCC = "[email protected]"; // 密送人

    public static void main(String[] args) throws Exception {

    // 创建一个有具体连接信息的Properties对象

    Properties prop = new Properties();

    prop.setProperty("mail.debug", "true");

    prop.setProperty("mail.store.protocol", "pop3");

    prop.setProperty("mail.pop3.host", MAIL_SERVER_HOST);

    // 1、创建session

    Session session = Session.getInstance(prop);

    // 2、通过session得到Store对象

    Store store = session.getStore();

    // 3、连上邮件服务器

    store.connect(MAIL_SERVER_HOST, USER, PASSWORD);

    // 4、获得邮箱内的邮件夹

    Folder folder = store.getFolder("inbox");

    folder.open(Folder.READ_ONLY);

    // 获得邮件夹Folder内的所有邮件Message对象

    Message[] messages = folder.getMessages();

    for (int i = 0; i < messages.length; i++) {

    String subject = messages[i].getSubject();

    String from = (messages[i].getFrom()[0]).toString();

    System.out.println("第 " + (i + 1) + "封邮件的主题:" + subject);

    System.out.println("第 " + (i + 1) + "封邮件的发件人地址:" + from);

    }

    // 5、关闭

    folder.close(false);

    store.close();

    }

    }

    转发邮件

    例:获取指定邮件夹下的第一封邮件并转发

    public static void main(String[] args) throws Exception {

    Properties prop = new Properties();

    prop.put("mail.store.protocol", "pop3");

    prop.put("mail.pop3.host", MAIL_SERVER_HOST);

    prop.put("mail.pop3.starttls.enable", "true");

    prop.put("mail.smtp.auth", "true");

    prop.put("mail.smtp.host", MAIL_SERVER_HOST);

    // 1、创建session

    Session session = Session.getDefaultInstance(prop);

    // 2、读取邮件夹

    Store store = session.getStore("pop3");

    store.connect(MAIL_SERVER_HOST, USER, PASSWORD);

    Folder folder = store.getFolder("inbox");

    folder.open(Folder.READ_ONLY);

    // 获取邮件夹中第1封邮件信息

    Message[] messages = folder.getMessages();

    if (messages.length <= 0) {

    return;

    }

    Message message = messages[0];

    // 打印邮件关键信息

    String from = InternetAddress.toString(message.getFrom());

    if (from != null) {

    System.out.println("From: " + from);

    }

    String replyTo = InternetAddress.toString(message.getReplyTo());

    if (replyTo != null) {

    System.out.println("Reply-to: " + replyTo);

    }

    String to = InternetAddress.toString(message.getRecipients(Message.RecipientType.TO));

    if (to != null) {

    System.out.println("To: " + to);

    }

    String subject = message.getSubject();

    if (subject != null) {

    System.out.println("Subject: " + subject);

    }

    Date sent = message.getSentDate();

    if (sent != null) {

    System.out.println("Sent: " + sent);

    }

    // 设置转发邮件信息头

    Message forward = new MimeMessage(session);

    forward.setFrom(new InternetAddress(MAIL_FROM));

    forward.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO));

    forward.setSubject("Fwd: " + message.getSubject());

    // 设置转发邮件内容

    MimeBodyPart bodyPart = new MimeBodyPart();

    bodyPart.setContent(message, "message/rfc822");

    Multipart multipart = new MimeMultipart();

    multipart.addBodyPart(bodyPart);

    forward.setContent(multipart);

    forward.saveChanges();

    Transport ts = session.getTransport("smtp");

    ts.connect(USER, PASSWORD);

    ts.sendMessage(forward, forward.getAllRecipients());

    folder.close(false);

    store.close();

    ts.close();

    System.out.println("message forwarded successfully....");

    }

    以上就是本文的全部内容,希望对大家学习javamail收发邮件的方法有所帮助。

    展开全文
  • 展开全部import javax.mail.*;import javax.mail....import java.util.*;import java.io.*;public class POP3Client {public static void main(String[] args) {Properties props = new Properties();String hos...

    展开全部

    import javax.mail.*;

    import javax.mail.internet.*;

    import java.util.*;

    import java.io.*;

    public class POP3Client {

    public static void main(String[] args) {

    Properties props = new Properties();

    String host = "utopia.poly.edu";

    String username = "eharold";

    String password = "mypassword";

    String provider = "pop3";

    try {

    // Connect to the POP3 server

    Session session = Session.getDefaultInstance(props, null);

    Store store = session.getStore(provider);

    store.connect(host, username, password);

    // Open the folder

    Folder inbox = store.getFolder("INBOX");

    if (inbox == null) {

    System.out.println("No INBOX");

    System.exit(1);

    }

    inbox.open(Folder.READ_ONLY);

    // Get the messages from the server

    Message[] messages = inbox.getMessages();

    for (int i = 0; i < messages.length; i++) {

    System.out.println("------------ Message " + (i+1)

    + " ------------");

    messages[i].writeTo(System.out);

    }

    // Close the connection

    // but don't remove the messages from the server

    inbox.close(false);

    store.close();

    } catch (Exception ex) {

    ex.printStackTrace();

    }

    }

    }

    展开全文
  • java电子邮件收发系统 java源代码(2.2版)

    千次下载 热门讨论 2011-04-24 04:32:21
    java开发的电子邮件收发应用程序。包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人...
  • Java Mail邮件收发功能

    2019-09-15 12:51:19
    JavaMail API 按照功能可以划分为如下三大类:  ①、创建和解析邮件的API ... 以上三种类型的API在JavaMail 中由多个类组成,但是主要有四个核心类,我们在编写程序时,记住这四个核心类,就很容易编写出Java邮件...
  • 请参照如上章节导航进行阅读使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧...
  • 本次毕业设计使用JAVA技术完成邮件收发系统,实现邮件的接受和发送,并完成附件的传输,同时能实现邮件用户登录管理及邮件删除,收件箱,发件箱,草稿箱,垃圾箱,通讯录等功能,开发这个各种功能相对简单实用用邮件...
  • java"] package net.csdn.blog.johnston.mail; import javax.mail.*; public class MailAuthenticator extends Authenticator { //****************************** //...
  • 1、邮件相关的标准厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则...
  • Mail.Jar Activation.Jar//利用JavaMail收/发Gmail邮件(SSL)//Gmail目前已经启用了POP3和SMTP服务//与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,...
  • java收发邮件总结

    2010-08-19 09:50:55
     javamail 是sun 公司提供的一套完整的用于读取,编写和发送由件的API ,利用javamail 可以实现类似 outlook,foxmail 等邮件客户端的程序。javamailAPI 隐藏了邮件底层的各种复杂操作,对邮件的特定协议提供了支持...
  • 邮件收发 序号 文内章节 视频 1 概述 - 2 发送一封简单的邮件 - 3 发送一封HTML邮件 - 4 发送带有附件的邮件 - 5 用户认证 - 请参照如上章节导航进行阅读 1.概述 使用Java应用程序发送 E-mail...
  • java收发html邮件

    千次阅读 2011-11-06 14:09:31
    4.试着编写第一个发送程序 ...首先,我们先写一个撰写邮件的html程序index.htm,如下: ------------------------------------------------------------------------------------------- 撰写邮件
  • java中javamail收发邮件实现方法 这篇文章主要为大家详细介绍了java中javamail收发邮件实现方法,实例分析了javamail的使用方法与相关注意事项,非常具有实用价值,感兴趣的小伙伴们可以参考一下 概述 1、邮件相关...
  • 可以简单实现邮件收发功能,支持126.163邮箱,不支持qq邮箱,新注册的163邮箱不支持。自己修改过的程序代码,经测试能运行。注意:代码里需要改成自己的邮箱和密码就可以运行了!
  • 概述1、邮件相关的标准厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的...
  • 随着网络应用的不断推广,电子邮件越来越多的被大家使用。虽然我们往往将电子邮件与 Foxmail、Outlook...对于这样的需求,我们不能通过已有的邮件客户端而需要自己编写邮件发送或者处理程序。在这里向大家讲解一下如...
  • 初次做这个程序的时候,是仿照着网上别人的程序做的。因为本人比较菜,是一个新手,以前的基础知识没有学好,所以尽管有了别人的代码但是还是不知道怎么在界面上显示出它的效果来,废话不多少,现在就贴出我的参考...
  • 收发邮件Rcp程序笔记no.1

    千次阅读 2006-01-07 14:35:00
    前两天有实验课,没时间编程,昨天终于做完,马上开编:P由于先前已经用Java mai API写了好几个测试程序,加上eclipse里自带了mail rcp 的template.所以很快大致轮廓就出来.已经初步实现了收邮件和发邮件的基本功能:)我...
  • Java 邮件 Mail编程

    2020-07-30 22:53:23
    邮件使用 ...程序通过Java Maik的API能够联系上邮件服务器,进行邮件收发操作 – 需要邮件服务器的支持,需要知道pop服务器和smtp服务器信息 Java Mail工具包 javax.mail包 和jzvzx.mail.inte
  • java开发的电子邮件收发应用程序。包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人...
  • java邮件解析2

    千次阅读 2016-02-03 16:18:44
    Session对象利用了java.util.Properties对象获得了邮件服务器、用户名、密码信息和整个应用程序都要使用到的共享信息。 Properties props = new Properties(); Session session = Session.getDef

空空如也

空空如也

1 2 3 4 5 6
收藏数 114
精华内容 45
关键字:

java邮件收发程序

java 订阅