当前位置: 首页 > 编程笔记 >

java邮件收发功能实现代码

夏侯昊明
2023-03-14
本文向大家介绍java邮件收发功能实现代码,包括了java邮件收发功能实现代码的使用技巧和注意事项,需要的朋友参考一下

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

准备工作, 环境搭建:
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("<img src='cid:8.jpg'/> 好哈哈!", "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("<img src='cid:8.jpg'/> 好哈哈!", "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实现发送邮件功能的使用技巧和注意事项,需要的朋友参考一下 前言 前段时间做一个紧急的功能,其中有部分需求是需要发邮件通知;通过查阅以及实验,很快的写了个发送邮件的功能;现在整理一下记录下来。 发送邮件 一、在pom中引入相关依赖 二、发送邮件的工具类 三、遇到的坑 在本地测试没有问题;我们的测试服务在阿里云上,阿里云对发送的时候是失败;追踪日志

  • 本文向大家介绍简单实现python收发邮件功能,包括了简单实现python收发邮件功能的使用技巧和注意事项,需要的朋友参考一下 今天记录一下如何使用python收发邮件,知识要点在python内置的poplib和stmplib模块的使用上。 1. 准备工作 首先,我们需要有一个测试邮箱,我们使用新浪邮箱,而且要进行如下设置: 在新浪邮箱首页的右上角找到设置->更多设置,然后在左边选择“客户端/po

  • 本文向大家介绍python发送邮件功能实现代码,包括了python发送邮件功能实现代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python发邮件精简代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍python实现发送邮件功能代码,包括了python实现发送邮件功能代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现发送邮件功能的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍python实现邮件发送功能,包括了python实现邮件发送功能的使用技巧和注意事项,需要的朋友参考一下 什么是POP3、SMTP和MAP? POP3是Post Office Protocol 3的简称,即邮局协议的第三个版本,他是规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的协议。它是因特网电子邮件的第一个离线协议的标准。POP3允许用户从服务器上把邮件存储

  • 本文向大家介绍JavaWeb实现邮件发送功能,包括了JavaWeb实现邮件发送功能的使用技巧和注意事项,需要的朋友参考一下 基于JavaWeb的邮件发送功能(多附件),供大家参考,具体内容如下 本次学习主要目的是为了测试由QQ邮箱发送到任意一个有效邮箱的功能实现,附带多个附件。学习者可以借鉴其他邮箱的格式,梳理一下要写的内容。项目把文件内容放到了MimeMessage 邮件对象里,其中包含了如发件