首页 > 编程 > Java > 正文

java邮件收发功能实现代码

2019-11-26 14:13:09
字体:
来源:转载
供稿:网友

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

准备工作, 环境搭建:
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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表